Understanding schemas
A schema defines one part of your customer model, such as Customer, Product or Subscription. Agree on its fields before importing records or connecting a source system: maxclicks saves the properties the schema declares.
Create a schema
Open Settings, then Schemas, then Create schema. You fill in five things:
| Field | What to put in it |
|---|---|
| Type | Contact for people you can email, Object for everything else. Fixed once created. |
| Name | The singular name, without spaces. Customer, Product. |
| Plural name | Suggested for you from the name. Customers, Products. |
| Slug | The URL-safe form, also suggested. This is how the schema is addressed from the API. |
| Description | Optional, but worth writing. maxinja reads it when it builds segments and computed fields for you. |
Event schemas are created in a different place, under Settings, then Events, because they behave differently. They get their own lesson in understanding events.
Once the schema exists, it appears under Records in the top navigation and gets three tabs of its own: Configuration, Attributes, and Import.
Names are unique inside your space, spaces are stripped out of them, and a handful of words are reserved because they name built-in types: string, number, boolean, date, email, phone, url, json, object, event, and similar. The app tells you while you type if a name is unavailable.
The fields you get before you add anything
Every schema ships with fields you do not create and cannot remove. They show up in the Attributes tab marked System.
Contact: Email Address, Phone Number, First Name, Last Name, Full Name, Avatar URL, User ID, Notes, Tags, Subscriptions, Topic IDs, plus ID, Source, Email Statistics, Created At, and Updated At which maxclicks maintains for you.
Object: ID, External ID, Notes, Tags, Created At, Updated At.
Business event: ID, Unique Event ID, occurrence and receipt timestamps, readiness, accepted definition revision, and an optional explicit contact or object subject. Events explains why acceptance and readiness are separate.
Contacts carry the extra consent and email fields because they are the ones you message. Objects are the supporting cast: they never receive an email, but knowing your products and orders is how you personalize the email that people do receive.
Everything past this list is yours to add, on the Attributes tab. See understanding attributes.
Only the fields you declared are saved
Declare a custom field before importing or sending it. Unknown fields can be omitted, and a value that cannot satisfy its declared type is rejected. Some input routes perform conversions first, so inspect the resulting records as well as the success count.
For a business event, use the explicit contactId or objectId field to identify its subject. A custom customerEmail property may be useful context, but it does not automatically create that relationship. Computed event measures need the explicit subject link.
After setting up Customer and Subscription, create one of each with matching source identifiers. Test the evaluated relationship before loading the whole dataset. The schema tells maxinja which fields exist; your sample check establishes that the values connect in the way you intended.
What you cannot change later
You can rename a schema and rewrite its description any time. Three things are fixed:
- The type. A contact schema never becomes an object schema.
- The slug.
- Any attribute's key and type, once that attribute exists.
This is deliberate rather than a gap. Your segments, computed fields, and every condition maxinja writes are all built on the shape of your data. Keeping that shape stable is what makes the audience you defined last month still mean the same thing today.
Deleting a schema
Deleting a schema permanently removes its records and can affect related event and derived data. The app asks you to confirm and follows a deletion operation that may continue in the background. Wait for completion; other workspace processing can be gated while cleanup runs.
maxclicks blocks the delete outright while anything still depends on the schema: another schema's computed field pointing at it, or a segment, broadcast, workflow step, or webhook that references it. Remove those first. It also refuses to delete your last contact schema, because a space always keeps one.
Next
Attributes are the questions on the form. Continue to understanding attributes, or open the schemas reference for the full detail.