Skip to content

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.

AttributeWhat it holds
emailThe primary email address, used to send and to match contacts.
firstName, lastNameThe parts of a person's name.
fullNameA single full-name field, useful when you do not split first and last.
phoneA phone number.
avatarUrlA link to a profile image.
userIdYour own external identifier for the person, such as an ID from your app.
notesFree-form notes about the contact.
tagsPlain labels for grouping and filtering.
subscriptionsWhich channels the contact has consented to. Currently email.
topicIdsWhich communication topics the contact belongs to. Marketing under a topic only reaches its members.
sourceHow the contact entered: import, api, form, manual, workflow, or integration. Set by maxclicks.
createdAt, updatedAtWhen 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.

  1. Open your schemas

    Go to Settings, then Schemas in the left-hand sidebar. You see every schema in your space.

  2. Add a contact schema

    Choose to add a schema and select the Contact type. Give it a clear singular name like Customer.

  3. 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.

  4. Create the schema

    Save to create the schema. maxclicks adds all the base attributes for you, so it is immediately usable.

Create schema pane with Contact selected and fields for name, plural name, slug and description

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.

Halden schema settings listing Customer as the default contact schema and Product and Order as object schemas

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.