Contacts Data Model

circle-check

Overview

Contact Objects are a special kind of Object used when you want to represent people within the platform’s data model. While Contacts share many structural characteristics with standard Objects (fields, associations, permissions, APIs), they also introduce system-level behaviors specific to communication, consent, and messaging.

The Contacts data model exists to support:

  • Person-level identity and de-duplication

  • Communication workflows (email and SMS)

  • Consent and compliance logic

  • Relationship modeling between people and other Records

  • API and automation behaviors that depend on person-specific rules

Understanding the Contacts data model is critical for building reliable integrations, designing scalable schemas, and avoiding unintended communication or compliance issues.

How Contacts Are Identified

Contacts use a different identification model than standard Objects. This differs from standard Objects, where the Record name is the primary identifier.

  • Primary Identifier is different: The email address functions as the unique identifier for Contacts across the platform.

    • Two Contacts cannot share the same email address

  • Email is not required: The email address is not required to create a Contact, but:

    • At least one of the following must be present to create a contact: first name, last name, email, or mobile phone

    • Contacts created without email are more likely to produce duplicates during imports and integrations

    • Many Contact features such as emailing, subscription management, identification via API rely on having an email address

  • Email is editable: The email address can be edited even though it is a unique identifier. It works similar to renaming a Record name on an Object.


How Contacts Are Used

Use Contacts to model individual people within the data model.

Contacts support person-specific capabilities that are not available on standard Objects, including communication workflows, consent management, and identity-based behaviors. Contacts are appropriate when Records must be addressable by email, participate in messaging, trigger communication-based automations, or be referenced externally via APIs using person-level identifiers.

Modeling people as custom Objects instead of Contacts removes access to system features such as email and SMS delivery, subscription management, email status enforcement, Contact-specific automation triggers, and message history.

Practical Modeling Examples

Scenario
Use Contacts?
Why

Applicants

Yes

Applicants often need email communication, reminders, consent tracking, and follow-up automations.

Policyholders

Yes

Policyholders require communication, identity matching, and history across multiple policies.

Internal Roles (e.g., Underwriter role on a policy)

No

Represents a role or function, not a person you communicate with externally.

System-only entities (e.g., Scoring Profile, Risk Persona)

No

These represent data structures, not real people.


Data Structure

Contacts follow the same foundational data structure as standard Objects. Every Contact is composed of the same three core elements: fields, Records, and relationships. Together, these define both the structure of Contact data and how that data behaves across the system.

Contact Fields

Contact fields define the schema of the Contact Object. They determine what data can be stored on Contact Records and how that data is validated and used across the platform.

Contact Fields specify:

  • The type of data (text, number, date, select, relationship, etc.)

  • Whether the data is required, read-only, or conditional

  • How the data participates in automation, reporting, messaging, and integrations

Fields belong to the Contact Object, not to individual Records. Like standard Objects, Contacts rely on flexible, business-defined schemas rather than fixed predefined structures.

In addition to supporting all standard custom field types, Contacts also include system-managed fields that introduce specialized behavior, such as:

  • Email (unique identifier)

  • Email Status (consent and deliverability logic)

  • Tags (with tag manager behavior)

  • Messaging-related fields

  • Time zone

These fields affect not only validation but also how Contacts behave in communication workflows.

For more information, see Custom Fields.

Records

Contact Records are the actual instances of data created using the Contact schema.

Each Contact Record:

  • Stores field values

  • Represents a real person

  • Can be related to other Contacts and other Objects

  • Can participate in messaging, automations, APIs, and permissions

While the Contact Object defines structure and fields define validation rules, Contact Records contain the actual stored data.

Schema changes affect how future updates are validated but do not retroactively modify existing Contact data unless explicitly written by an automation, integration, or user action.

For more information, see Records.

Relationships

Contacts use the same relationship model as standard Objects.

Relationships define how Contact Records connect to:

  • Other Contacts

  • Records in other Objects

They are implemented as a specialized field type and always connect Record to Record, not Object to Object.

Relationships enable:

  • Linking people to accounts, cases, applications, or other business data

  • Cross-record automation behavior

  • Reporting across connected Records

  • Collaboration without relying on ownership

A relationship is defined at the Object level as a field, but its value is stored on individual Contact Records as a reference to another Record.

When a relationship field is created, an inverse relationship field is automatically created on the related Object. Updates are reflected on both sides, enabling bi-directional navigation between related Records.

Contacts intentionally do not support an Owner field. Visibility and collaboration are managed through relationships and permissions rather than ownership.

For more information, see Object Relationships.

How These Pieces Work Together

Contacts follow the same structural model as standard Objects:

  • Objects define schema

  • Fields and relationships define structure and rules

  • Records store actual values that conform to that schema

The difference is not in structure, but in behavior. Contacts introduce additional system-level logic on top of this shared model to support communication, identity, consent, and compliance.

This allows Contacts to remain fully compatible with the platform’s data model, APIs, automations, and integrations while safely supporting person-specific workflows.


Schemas

Contacts use the same schema model as standard Objects. They support the same combination of system fields, default fields, and admin-defined custom fields. This schema determines what data can exist on a Contact, how that data behaves across the platform, what information is available to automations and APIs, and which fields appear throughout the UI and integrations.

For a detailed explanation of how these schemas are defined and managed, see the Schema section of the Objects Data Model topic.


Contact Relationships

Contacts use the same relationship system as standard Objects, which means they can be connected to other Records in meaningful, structured ways rather than existing in isolation.

Contacts can be related to:

  • Other Contacts (for example, spouses, coworkers, household members)

  • Records in other Objects (such as Accounts, Policies, Tickets, Applications, or Projects)

These relationships are not just visual links. They directly influence:

  • What data users can see

  • How Records appear in timelines and dashboards

  • How automations behave across connected Records

  • How reporting works across related data

Because Contacts do not have an Owner field, relationships and permissions are the primary mechanisms for collaboration and visibility. Instead of assigning a person to a single owner, organizations model real-world structure through associations.

This makes it possible to model patterns like:

  • A household with multiple related Contacts

  • A single Contact linked to multiple Accounts or Policies

  • A Contact holding multiple roles across different Records

  • Complex many-to-many relationships between people and business data

In practice, this means Contacts behave like first-class Records in your data model, fully connected to the rest of your system rather than siloed as standalone profiles.

For more information on Relationships and Associations, see Object Relationships.


Contact Fields

Contacts support the same field model as standard Objects, including system fields, default fields, and custom fields.

For general field behavior, creation, and configuration, see Custom Fields. This section focuses only on fields that have Contact-specific behavior.

Contact-Specific Fields

Some fields on Contacts introduce platform behavior that does not exist on standard Objects:

  • First Name: Used for personalization in communications, greetings, and templates. This field supports dynamic merge values and improves readability across the UI and reporting.

  • Last Name: Used alongside First Name to identify Contacts in the UI, search results, and reporting. This field is commonly required for communication workflows and external integrations.

  • Titles: Stores a Contact’s role or job title. This field is informational and commonly used for segmentation, reporting, and personalization in communications.

  • Email: Acts as the unique identifier for Contacts. Two Contacts cannot share the same email address. This affects imports, API lookups, de-duplication, and communication behavior.

  • Email Status: Controls consent and deliverability. Values such as Not Opted In, Opted In, Unsubscribed, and Suppressed directly affect whether a Contact can receive email. Suppressed status cannot be manually overridden.

  • Tags: Contacts include a system-promoted Tags field with a built-in Tag Manager. Tags can also trigger Contact-specific automation behavior.

  • Home Phone: Stores a personal phone number for reference or reporting. This field does not drive messaging or automation behavior.

  • Business Phone: Stores a work phone number for reference or reporting. This field is informational and does not support SMS delivery.

  • Mobile Phone: Used specifically for SMS messaging when texting is enabled. Other phone fields are informational only.

  • Time Zone: Stores a Contact’s time zone for use in time-aware messaging and scheduling behavior.

These fields do not just store data. They actively influence messaging, automation, compliance, and system behavior for Contacts.


Contact Rules

Contacts enforce several system-level rules that do not apply to standard Objects. These rules exist to support identity management, communication, and compliance.

System-Enforced Constraints

Rule
What It Means
Why It Matters

Email must be unique

Two Contacts cannot share the same email address.

Email functions as the Contact’s unique identifier for imports, APIs, de-duplication, and communication workflows.

Suppressed email is irreversible

Once an email is marked as Suppressed (e.g., due to spam complaints or repeated bounces), it cannot be re-enabled for that email address.

Prevents accidental violations of deliverability and compliance rules. This is a permanent state for that email value.

Restricted system fields

Certain system-managed fields (such as Email Status) cannot always be edited and may be locked by platform logic.

Ensures that consent, deliverability, and communication behavior cannot be bypassed manually.

Communication-gated permissions

Specific permissions control who can send email, send SMS, or manage subscriptions.

Protects against unauthorized messaging and enforces operational governance.

Fixed API identity

The Contacts Object API name cannot be changed, even via API.

Ensures consistent identity behavior across integrations and prevents breaking communication logic.

circle-exclamation

For details on how permissions control access and messaging behavior, see Contact Permissions.


Additional Information

chevron-rightSupported APIshashtag

Supported APIs

Contacts use the same API patterns as standard Object. For API information on Standard Objects, see the Object APIs topic.

chevron-rightError Stateshashtag

Error States

Common Contact-specific error conditions include:

  • Attempting to create a Contact with an email that already exists

  • Import failures caused by missing identifiers

  • Messaging failures due to suppressed or unsubscribed status

  • API lookup failures when identifier does not resolve

  • Permission-based errors when accessing messaging features

These errors are not simply validation issues; many are caused by Contact-specific system rules.


What’s Next

Next, review Custom Fields to understand how individual field types, system fields, and custom fields can affect Contact behavior across the platform.

Last updated

Was this helpful?