Create your first contact schema
Learn what a contact schema is, which fields come built in, and how to create and set a default schema for your people.
On this page
A contact schema defines the people you want to reach and the fields you keep about them. Customer might contain Sarah, her email and her preferences. Her orders belong in a separate Order object schema, so one person can have many purchases without becoming many recipients.
The first contact schema is usually created during the space setup wizard. This guide explains what that schema contains and how to create another when your business needs more than one.
What a contact schema is
maxclicks stores your business records against schemas. A contact schema describes entities that can receive communication, such as Customer, Subscriber, or Student. It is one of three schema types, alongside objects (any other business entity, like a Product) and events (things that happen, like a Purchase completed). To understand how the three fit together, read understand schemas, contacts, objects, and events.
Start with one contact schema when the same people will share a model. Use segments for audiences such as active customers or recent subscribers. Separate contact schemas have separate identity matching and preferences; putting one person in both does not merge their profiles.
The schema is also a validation gate. When a contact enters maxclicks, from an import, a form, the API, or a workflow, it is checked against the schema. Fields the schema does not know about are dropped rather than stored. That is why defining your schema well, before you bring in data, matters.
Base attributes you get automatically
Every contact schema ships with a fixed set of base attributes that you cannot remove or rename. They cover the fields almost every business needs, so you rarely start from a blank slate.
| Attribute | What it holds |
|---|---|
| The primary email address, used to send and to match contacts. | |
| firstName, lastName | The parts of a person's name. |
| fullName | A single full-name field, useful when you do not split first and last. |
| phone | A phone number. |
| avatarUrl | A link to a profile image. |
| userId | Your own external identifier for the person, such as an ID from your app. |
| notes | Free-form notes about the contact. |
| tags | Plain labels for grouping and filtering. |
| subscriptions | Which channels the contact has consented to. Currently email. |
| topicIds | Which communication topics the contact belongs to. Marketing under a topic only reaches its members. |
| source | How the contact entered: import, api, form, manual, workflow, or integration. Set by maxclicks. |
| createdAt, updatedAt | When the contact was created and last changed. Set by maxclicks. |
Choose a stable identity: platform id when supplied, otherwise userId, then email only without a user ID, then phone only without either. This matching stays within the selected schema. Keep that identity consistent when you import your contacts from a CSV file.
Create a contact schema
If you need a schema beyond the one setup created, you add it from settings.
- Open your schemas
Go to Settings, then Schemas in the left-hand sidebar. You see every schema in your space.
- Add a contact schema
Choose to add a schema and select the Contact type. Give it a clear singular name like Customer.
- Set the name, plural, and slug
Enter a plural form (Customers) and confirm the slug, which maxclicks suggests from the name. The slug is used in URLs and stays fixed, so keep it simple. Add an optional description to explain what the schema is for.
- Create the schema
Save to create the schema. maxclicks adds all the base attributes for you, so it is immediately usable.
Your default contact schema
Your space tracks a default contact schema that pre-fills inputs across the app, for example when a form or a broadcast needs to pick an audience. The first contact schema you create becomes the default automatically.
The Default badge marks it; use Set as default on another contact schema to change it. This does not move records, merge their preferences or override an explicit schema selection.
You must keep at least one contact schema. Deleting another schema permanently removes its records, can be blocked by dependencies and may require background cleanup. Wait for completion before treating the data as removed.
Add your own attributes
Base attributes cover the essentials, but most businesses need more: a plan tier, a signup date, a lifetime value. You add these as custom attributes on your schema, choosing a type such as text, number, date, or a dropdown of options.
Use stored fields for supplied facts, creation-time defaults or AI autofill for missing new-record values, evaluated attributes for on-demand relationships, and scheduled evaluated attributes for scheduled event measures. An evaluated Account relationship can make a shared account's plan available without copying it onto each person. To add them, read add attributes to a schema.
Once your schema has the fields you need, bring in your people. The fastest way for an existing list is to import your contacts from a CSV file.
Did this article answer your question?

