How to identify profiles
UpdatedIn Customer.io, profiles are the people you know—your customers, users, subscribers, etc. To add or update profiles in your workspace, you must identify them. Depending on your workspace settings, you can identify unique profiles by ID, email address, or phone number.
How it works
You can identify profiles using values that are unique for each profile, like an email address, a phone number, or a user id. You add and update profiles based on their identifiers.
To identify profiles, you need to first understand your workspace settings. Then you can add or update profiles based on the allowed identifiers:
email: A profile’s email address. You may want to use this identifier to track leads before they become customers.phone: A profile’s phone number, in E.164 format (like+14155552671). You may want to use this identifier for SMS or WhatsApp audiences to ensure that each phone number is unique to a profile in Customer.io.id: A case-sensitive, unique identifier that you assign a profile. Generally, this value represents a profile in your backend systems, like a user ID of someone who has an account with you.cio_id: A unique, immutable identifier that Customer.io generates when you identify a profile. When you identify a profile bycio_id, you can update that profile’s other identifiers.


Typically, you’ll programmatically add or update profiles through one or more integrations; this way your systems stay in sync and you know your automated messaging is sending to the right profiles. Keep in mind that most integrations can’t identifyThe Customer.io operation that adds or updates a person. When you identify a person, Customer.io either adds a person if they don’t exist in your workspace, or updates them if they do. Before you identify someone (by their email address or an ID), you can track them anonymously. profiles by phone; check which sources support the phone identifier before you rely on it.
Sometimes it’s useful to make one-off updates or use automation actions to update profiles though. Here’s how you can identify and modify profiles in our UI:
| Method | Use Case |
|---|---|
| Profiles page | Manually add or update customers. |
| CSV import | Import a file of profiles. |
| Create or update profile action | Create or update a profile from the data available in an automation. |
Case sensitivity of identifiers
id values are case sensitive; email addresses are not. phone numbers are matched verbatim, so they must be in E.164 format (like +14155552671) to identify a profile. Learn more about how this influences the way we identify duplicate profiles below.
You should also review our info on case sensitivity across the platform. This will help you when searching your workspace, adding conditions, and adding liquid logic.
How to handle duplicate identifiers
When your workspace identifies profiles by email, phone, or id, we automatically merge duplicate profiles. Learn more about how we Resolve duplicate profiles.
id values are case sensitive, while email addresses are not. This means that id values of ab100 and AB100 represent two distinct profiles in your workspace.
Identifying with a new ID but an existing email?
email and id as identifiers, and you call identify with id: "new-123" and email: "bob@example.com", but bob@example.com already belongs to another profile, we don’t create a new profile. Instead, we update the existing profile and assign them the new ID. This can be confusing during testing if you generate a new ID for each test but reuse the same email address.Set allowed identifiers in Workspace settings
When you create your workspace, you set which attributes are identifiers. You can always identify profiles by id and cio_id. By default, you can also identify profiles by email and phone—both are optional identifiers. To change which optional identifiers your workspace uses, go to your General Workspace settings.
If you’re not sure which setting is best, we recommend you leave the default setting. It doesn’t require you to add an email or phone number to every profile, just gives you the option to add or update your profiles when you identify them by email or phone. It means you can store leads and existing customers so you can identify a profile first by their email address or phone number and then by an id you add after they become a paying customer. If the customer ever needs to change their email address, you can do so by using their id to identify them.
Learn more about setting identifiers in Workspace settings.
Set profile identifiers
You set identifiers when you create or update profiles. You must include at least one identifier, based on what your workspace settings define as identifiers.
Learn more in Add or update profiles.
Update profile identifiers
If you want to update a profile’s identifiers, you must first understand what your workspace settings are—which of email, phone, and id are allowed identifiers.
This chart shows what it means to update email or id based on these settings. phone follows the same rules as email. Note, cio_id is a permanent id our system generates for each profile. It can be useful when trying to update other identifiers for a profile and is typically needed when you’re programmatically updating profiles:
#40;where id and email are identifiers#41;"] --> f{Is it set?} f -->|yes|h{"Is #quot;cio_id
or id#quot; enabled?"} h -->|yes|j[You can set
email with id] h -->|no|i[You must update
email with cio_id] f -->|no|g[You can update
email with id] a["Update id
#40;where email and id are identifiers#41;"] --> b{Is it set?} b ---> |yes|k[You can update
id with cio_id] b ---> |no|c[You can set
id with email] n["Update id
#40;where id is the only identifier#41;"] --> o{Is it set?} o --> |yes|p{"Is #quot;cio_id
or id#quot; enabled?"} o --> |no|q[Profile does
not exist] p --> |yes|r[You can update
id with cio_id] p --> |no|s[You cannot update id]
If the workspace allows identification by email, phone, and/or id (The first two charts above):
- You can change a profile’s
idwhen you identify them bycio_idthrough the Profiles page, but not CSV imports. - You can change a profile’s
emailorphonewhen you identify them byidorcio_id. If the identifier is enabled but you can only reference bycio_id, then you can only usecio_idto changeemailorphone.
If the workspace is id-only (The third chart above):
- You can’t change
idunless you change your workspace settings. - You can update
emailandphonelike any custom attribute.
Delete profile identifiers
If your workspace lets you identify profiles by email, phone, or id, you can remove identifiers as long as each profile keeps at least one of id, email, or phone. You can’t leave a profile with cio_id as their only identifier. You can always identify profiles by cio_id; you can’t remove that identifier from a profile.
If your workspace lets you identify profiles by id only, you cannot delete id. Whether you can change it depends on your workspace settings.
You cannot delete cio_id, no matter your workspace settings. This id is always needed for CSV imports and ensures each of your profiles have a unique identifier, which can help you and our support team troubleshoot issues.
