Data Model for Contacts
Understanding Bird’s Data Model for Unified Contacts
Bird’s data model is designed to unify all customer information into a single contact profile. This profile consolidates identifiers, attributes, events, objects, and lists so you can segment, analyze, and personalize communications effectively.
The Contact: Central Object
The contact is the central object in Bird’s data model. Every contact has a Contact ID (visible in the profile URL), which uniquely identifies it within Bird.

Identifiers
Identifiers are unique values that Bird uses to recognize and unify a contact across multiple channels.
Standard identifiers (provided by Bird):
Email: This identifier makes the contact eligible for email communication
Phone: This identifier makes the contact eligible for SMS, RCS and WhatsApp communication
Push token: This identifier makes the contact eligible for Mobile Push communication
Visitor ID: This identifier is created when tracking page or form viewed events using Bird SDK
Chat ID: This identifier is created when tracking live chat interaction on website using Bird SDK
Custom identifiers (user-defined):
Any unique ID from your systems (e.g., CRM ID, loyalty ID)
Must be unique per contact (no duplicates across profiles)
Attributes
Contacts can have one or more attributes—data fields that store descriptive information.
Attributes can be of type:
String: Text, Arrays, Single or Multiselect options
Boolean
Number
Date and Time
Standard attributes: These are predefined by Bird which can be used for storing contact details
Display name
First name
Last name
Age
Birthday
Country
City
Province
Postal code
Locale
Timezone
Platform Subscription are also boolean attributes which are similar to other attributes which help indicate the user consent to receiving communication from a platform. Any platform attribute not set as Subscribed will be filtered out when sending communication on that platform from Campaigns.
Email Subscription
SMS Subscription
WhatsApp Subscription
RCS Subscription
Push Subscription
Custom attributes: created by users to store any additional information
Suppressions: Note that contact identifiers can be suppressed such as Email or Phone number for specific platforms due to reason like unsubscribed or invalid email/phone. You can learn more about consent and subscriptions.
Updating attributes and identifiers:
Via Contacts API
CSV import
Manual creation and updates
Integration syncs
Data flows
Lists
Contacts can optionally be added to one or more lists.
Being in a list allows you to group contacts for targeting.
A contact can be removed from a list, which marks them as Unsubscribed from that list.
Removal can happen manually or when a user clicks a list unsubscribe link in an email.
Adding contacts to lists:
Via Contacts API
CSV import
Manual updates
Journeys or Flows Actions
Events
Events represent actions or interactions associated with a contact. They appear as a timeline on the contact profile.
Standard (semantic) events: These are pre-defined by Bird, such as:
Placed an order
Updated cart
Message sent
Clicked message link
Custom events: user-defined actions that fit your specific use cases e.g. Opened an account, Made a transaction etc.
Creating or Updating events:
Standard events: API, SDK, integration sync, or data flows
Custom events: API, SDK, or data flows
Objects
Objects represent related entities that can be connected to contacts.
Standard object: Company
Custom objects: created by users to model business-specific entities
One or more custom objects records or one or more custom objects can be associated to a contact
Examples of custom objects:
Accounts
Subscriptions
Bookings
Key points:
Objects can exist standalone but can also be linked to contacts in a one-to-many relationship.
Custom objects act like relational tables associated with contacts.
Each object can have its own custom attributes.
Creating or Updating events:
Company Object: API, CSV Import, or data flows
Custom Objects: API or data flows
Using the Data Model
Segmentation
You can build segments using:
Identifiers and attributes
Events (standard or custom)
Company or any related custom objects
Content Personalization
When sending campaigns or journeys, you can personalize content using:
Identifiers and attributes: available in all communications from Campaigns and Journeys
Event properties: available only in Journeys, when the trigger is that same event
Related custom object properties: available only in Journeys, when the trigger is the same related object
How to use discounts or coupons or offers for personalization?
Note that discounts are not associated with contact object directly in any way. Discounts can be stored separately under Content > Discounts by uploading a csv of discount codes in a discount object or by creating a discount code directly syncing with Shopify integration.
Uploaded or created Discounts can be used for unique discount codes only in Emails
Contacts will get Discount code assigned and Discount code failed events associated with them if a discount code is sent or failed to send for them
How to use adhoc data such as unique links for personalization?
Users can upload a csv file with adhoc data columns mapped to contact identifiers under Advanced > Additional data section.
The columns in the Additional data csv can then be used for mapping content variables in campaigns.
Summary
Bird’s unified contact profile brings together all customer data into a single view, including:
Identifiers for unique recognition
Attributes for descriptive context
Lists for subscription management
Events for behavioral tracking
Objects for relational data modeling
This structure allows you to create precise segments, automate customer journeys, and deliver deeply personalized experiences at scale.
Last updated
Was this helpful?