Resolve duplicate people

Updated

If you inadvertently create duplicate instances of a person, you can merge them and consolidate information to accurately represent a single “person” in your workspace.

How merging people works

You can merge people manually or automatically. When you merge two people, you pick a primary person and a secondary person. The primary person remains after the merge and the secondary is deleted. This process is permanent: you cannot recover the secondary person. Depending on the data type, the primary person may retain its data or inherit the data from the secondary person.

 The primary person might enter new segments and campaigns

When you merge people, the primary person inherits new attributes, events, campaign history, etc, which can cause the person to join segments. The primary person can enter new segment-triggered campaigns, but will not enter new event-triggered campaigns; events inherited from a merge cannot trigger campaigns.

When the primary person inherits the data from the secondary person

The primary person inherits the following information from the secondary person:

  • Attributes that are not set, or are empty, on the primary will be overwritten if the secondary person has values for the attributes.

  • Event history: the most recent 29 days of events are merged immediately. It can take up to an hour to merge older events. Events merged from the secondary person cannot trigger campaigns.

  • Campaign journeys that the primary person has not entered

    A journey is a person’s path through a campaign. If the secondary person has started a journey that the primary person has not, the primary person continues on that campaign journey after the merge.

    If the secondary person has completed journeys that the primary person has not, the primary person gains these historical journeys after the merge. This may be important for determining entry (or re-entry) criteria for subsequent campaigns, segments, etc.

  • Manual segments that the primary person did not already belong to

  • Message deliveryThe instance of a message sent to a person. When you set up a message, you determine an audience for your message. Each individual “send”—the version of a message sent to a single member of your audience—is a delivery. history

  • Conversions

    A conversion happens when a profile performs an action (enters/leaves a segment or sends an event) after interacting with a message (receives, opens, clicks) within a time window. Considering this, it’s possible one of the profiles has performed the action and the other hasn’t. In this situation:

    • If the primary profile performs the action while the secondary only interacts with the message (no action performed), the primary profile will not inherit a conversion. The primary profile will only inherit the interaction from the secondary profile.
    • If the secondary profile performs the action, the primary profile will inherit a conversion AS LONG AS the action is an event OR the primary profile inherits the attribute change that made the secondary profile enter/leave the goal segment.
  • Relationships and relationship attributes that the primary did not have

When the primary person retains its data

When both the primary and secondary people have conflicting data—both people have the same attribute, subscription preference topic, or have experienced the same campaign—we pick a “winner” to resolve the conflict; the “winner” value remains after the merge, and the “loser” is lost with the secondary person. See the sections below to learn more about how we resolve conflicts in the merge process.

Resolving conflicts between attributes

If the primary and secondary people both have the same attribute, and the primary person’s attribute value is not empty, the primary person’s attribute “wins”: it remains on the merged person and the secondary person’s attribute value is lost in the merge.

For example, if both the primary and secondary people have a first_name attribute, the first_name on the primary person remains and the attribute on the secondary person is lost in the merge.

Resolving conflicts between subscription topic preferences

If you’ve enabled a subscription center in your workspace, then people have subscription topic preferences. The subscription topic preferences of the primary person “win” over the secondary profile. These preferences remain on the merged person and the secondary person’s preferences are lost.

For example, if you have a subscription topic “Product Education” and it’s set to TRUE for the primary profile but FALSE for the secondary profile, the merged profile will have a value of TRUE.

Resolving conflicts between relationships

If the primary and secondary people both have the same relationship, the primary person’s relationship attributes “win.” We add relationship attributes from the secondary to the primary if the primary did not have these attributes. We also overwrite empty values in the primary if the value is populated in a relationship attribute in the secondary profile.

Resolving conflicts between campaign journeys

A journey is a person’s path through a campaign. If the primary and secondary people have both started or completed the same campaign, we pick a “winner” journey to remain on the merged person. The “winner” depends on whether the people have completed a journey in the past or are active in a campaign at the time of the merge.

If both people are active in a campaign, the primary person continues its campaign journey. The secondary person exits the campaign early.

If both people have completed a campaign, the merged person keeps the most recently started campaign journey. The history of completed campaigns doesn’t necessarily affect people, but you may use it as re-entry criteria for follow-up campaign or segment membership.

How to identify people

How you identify people to merge depends on your workspace settings. Is email disabled or enabled as an identifier? Go to General Workspace Settings to find out.

If email is enabled, you can identify people by email, cio_id, or id. You can also automatically merge people in this case.

Within general workspace settings, the name of the workspace is at the top: workspace 6. Under that is a table titled: the identifiers your workspace supports. There are three identifiers listed: cio_id, id, and email. Beside email is a link to disable it.
Within general workspace settings, the name of the workspace is at the top: workspace 6. Under that is a table titled: the identifiers your workspace supports. There are three identifiers listed: cio_id, id, and email. Beside email is a link to disable it.

If email is disabled, you can identify people only by cio_id or id. You must also ensure id is set to “Reference people by cio_id” to make the merge possible.

Within general workspace settings, the name of the workspace is at the top: workspace 7. Under that is a table titled: the identifiers your workspace supports. There are three identifiers listed: cio_id, id, and email. Beside email is a link to enable it.
Within general workspace settings, the name of the workspace is at the top: workspace 7. Under that is a table titled: the identifiers your workspace supports. There are three identifiers listed: cio_id, id, and email. Beside email is a link to enable it.

Merge two people together

 This operation is permanent

You cannot undo a merge, nor can you stop it after it starts. Make sure that you’re ready to merge people before you begin this process.

When you merge two people, you pick a primary person and merge a secondary person into it. The primary person remains after the merge and the secondary is deleted.

Merging people may cause the primary person to enter or exit segments and campaigns based on information you merge from the secondary person. Make sure that you understand how a merge will impact the primary person before you initiate a merge.

  1. Go to the People page.
  2. Click Merge. You can pick people before you click merge.
    Select people and click merge to start the process
    Select people and click merge to start the process
  3. Select your Primary and Secondary people and click Next.

    If you already selected people, you can click Swap to reverse your primary and secondary people. Remember, when you merge people, the primary gains some information from the secondary person, and any data that is not merged to the primary person is lost.

    Review the attribute changes that occur in the merge
    Review the attribute changes that occur in the merge
  4. Review your changes one last time. When you’re sure you want to merge people, click Confirm and merge.

    You can search for attributes on the primary person, ensuring that the values on the primary person are correct before you finish your merge.

    You’ll also see a count of the attributes, events, and deliveriesThe instance of a message sent to a person. When you set up a message, you determine an audience for your message. Each individual “send”—the version of a message sent to a single member of your audience—is a delivery. on each person. Items remaining on the Secondary person are lost.

When you confirm a merge, you’ll go to the newly merged person’s page. Attribute changes take effect immediately, but event history may take a moment.

Merge people via the API

You can also merge people using the Track API. The payload contains primary and secondary profile objects. As when you merge people from the People page, the primary profile remains after the merge. The secondary profile’s information is merged into the primary, and then it is deleted.

 Primary profile must exist

The primary profile must already exist in Customer.io for the merge API call to work. If the primary profile doesn’t exist, the merge request won’t do anything.

  curl --request POST \
  --url https://track.customer.io/api/v1/merge_customers \
  --header "Authorization: Basic $(echo -n site_id:api_key | base64)" \
  --header 'content-type: application/json' \
  --data '{"primary":{"email":"cool.person@company.com"}, "secondary":{"email":"cperson@gmail.com"}}'

Automatically merge people

By default, new workspaces use both email and id as identifiersThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace.. While this makes it easy to identify people, there are some situations where you can inadvertently create duplicate profiles—two profiles with different identifiers for the same person. Customer.io can automatically merge these duplicates for you if you turn on the following settings:

  • Multi-identifier profile merge merges people whose identifiers are complementary—each person has identifier values the other doesn’t.
  • Auto-merge on update merges people when an identify call tries to set an identifier to a value that already belongs to a different person, as long as the two profiles are complementary on every other identifier.

You can enable Multi-identifier profile merge on its own, but Auto-merge on update requires you to enable Multi-identifier profile merge as well. If your incoming identifier data is reliable, you should enable both settings to reduce duplicate profiles and Failed Attribute Change errors. See Enable auto-merge for your workspace below for instructions.

The merge options panel showing the Multi-identifier profile merge and Auto-merge on update toggles
The merge options panel showing the Multi-identifier profile merge and Auto-merge on update toggles

Multi-identifier profile merge

If your workspace supports email or ID as identifiers, and you created your workspace after September 24, 2021, you can enable Multi-identifier profile merge. With this setting on, Customer.io merges two profilesAn instance of a person. Generally, a person is synonymous with their profile; there should be a one-to-one relationship between a real person and their profile in Customer.io. You reference a person’s profile attributes in liquid using customer—e.g. {{customer.email}}. when you send an identify call with an id and email that belong to different people—provided all of the following are true:

  • The id and email in the request match different people.
  • The id and email in the request match exactly one person each.
  • The profile matched by id doesn’t have an email.
  • The profile matched by email doesn’t have an id.

When Customer.io merges these people, the older profile is the Primary and the younger profile is the secondary.

Example of auto merging profiles with complementary identifiers
Example of auto merging profiles with complementary identifiers

Auto-merge on update

Auto-merge on update extends the Multi-identifier profile merge feature to cover cases in which an identify call tries to change an identifier to a value that already belongs to a different profile.

Without this setting, Customer.io silently drops the identifier change and records a Failed Attribute Change. With this setting on, Customer.io merges the two profiles automatically—as long as the profiles are clearly the same person.

When we merge profiles

In general, we only merge when the identifier being updated is the only overlap between the profiles. All other identifiers must be complementary: one profile has a value and the other doesn’t.

Specifically, we merge profiles when all of the following are true:

  • Both Multi-identifier profile merge and Auto-merge on update are enabled for the workspace.
  • The identify call is eligible to update the identifier in question, according to the rules for updating identifiers.
  • An identifier attribute in the request body (for example, email) belongs to a different profile than the one in the identify request.
  • The two profiles are complementary on every identifier except the one being updated. That means:
    • Neither profile has a conflicting identifier value other than the one being updated. For example, if the request references a profile by id and the conflicting profile has a different id, we can’t automatically merge the profiles.
    • Neither profile has an identifier value that isn’t in the request.
Example of auto merging profiles when an identifier is updated
Example of auto merging profiles when an identifier is updated

What happens when profiles merge

When we merge profiles, we merge the secondary profile’s attributes into the primary profile and delete the secondary profile. If the primary profile and secondary profile both have an attribute with different values, the primary profile’s value wins.

The merged profile also keeps:

When we can’t merge profiles automatically

If we can’t merge profiles under the rules above, Customer.io records a Failed Attribute Change for the identifier in the request. You need to resolve the conflict yourself, either by merging the profiles manually or by correcting your data pipeline.

Example: both profiles have an id:

  • Profile A: id=12345, email=ami-home@example.com
  • Profile B: id=67890, email=ami-work@example.com
  • Request: identifier id=12345, attribute email=ami-work@example.com

Both profiles have an id, and the values differ. Customer.io can’t tell which id is correct, so we can’t automatically merge the profiles. You need to merge these profiles yourself.

Enable auto-merge for your workspace

You can enable Multi-identifier profile merge on its own, or enable both settings. Auto-merge on update requires Multi-identifier profile merge, so you can’t turn it on by itself.

  1. Go to Settings > Workspace Settings.
  2. Click Settings next to Merge options.
  3. Enable Multi-identifier profile merge.
  4. (Optional) Enable Auto-merge on update.

 Auto-merges are permanent

Enabling auto-merge means trusting the accuracy of your incoming identifier data. Merges can’t be undone. If your data pipeline sends incorrect identifier associations, profiles can be merged that shouldn’t be. You can monitor merges in the activity log and via the profile_merge event.

 Enabling these settings doesn’t backfill

Both auto-merge settings only affect new identify calls. Existing profiles with conflicting or complementary identifiers aren’t retroactively merged—you’ll need to resolve those by merging them manually or via the merge API.

Merged people in the activity log

When you merge people, the activity log reports a People merged activity on the primary person. The activity Source shows how the merge was performed, through the People page, the API, or automatically (if your workspace has the setting enabled).

a merge results in an attribute change in the activity log.
a merge results in an attribute change in the activity log.

Merged people in data warehouse sync

Like the Activity Log, person merges are represented in your data warehouse as attribute changes and a deleted person.

  • In the People table, the secondary person is deleted.
  • In the Attributes table, the primary person shows new entries for each attribute inherited from the secondary person in the merge.

Segment membership and campaign triggers after a merge

When you merge people, you may cause the primary person to enter or exit segments and campaigns. In many cases, these changes are easy to understand—the primary person directly inherits a manual segment membership or an attribute that adds the person to a data-driven segment.

However, it’s important to remember that the primary person also inherits campaign and delivery history from the secondary person, both of which can affect segment membership and campaign filters. For example, if both the primary and secondary people received the same message, the merged person will become a member of a data-driven segmentA group of people who match a series of conditions. People enter and exit the segment automatically when they match or stop matching conditions. of people who received that message more than once.

Copied to clipboard!