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.
Plan one person and one related thing
For an account-renewal email, start with Customer as Contact and Account as Object. Customer holds the person's name, email and preferences. Account holds the account name, plan and renewal date. Several Customer records can refer to the same Account.
For a store, use Customer and Order instead: one shopper can have several orders, each with its own amount and status. A schema defines the fields for all those orders; each imported row supplies one actual order. You will connect the records in Connecting records.
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 evaluated attributes 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. Scheduled 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.
Segments, evaluated attributes and generated conditions refer to these stable names and types. If the intended shape changes, create the replacement field or schema, supply its data and update the consuming definitions.
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 evaluated relationship 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.