Skip to main content

Why do I have duplicate users?

Written by Alek Toumert


This answer comes from the Intercom Community forum. 👌


I have duplicates of some users, all with the same email address. How did this happen? How can I fix it?

If you have multiple customers in your Intercom workspace with the same email address, it may be because you’re passing a different user_ID for each one. Additionally, Intercom may associate incoming communications with the most recently updated user profile if multiple profiles use the same email address. To avoid confusion, ensure that each user is uniquely identified by a consistent and unique user ID.

Who this applies to: Any workspace admin or teammate with access to Contacts. API-based deduplication requires API credentials. Merging Leads into Users can be done via the Intercom API or directly from the Inbox.

How Intercom identifies users

When you define both an email address and user_ID for a user, Intercom uses the user_ID as a unique identifier. Intercom may also use cookie-based identification to merge profiles without emails, which helps unify Visitor/Lead and User profiles automatically based on device behavior. Avoid changing user_id for an existing email, as this creates a new User profile and can lead to duplicates.

Duplicates caused by CSV imports

In Intercom, a User is an identified contact with a user_id set, and a Lead is an unidentified contact — such as a site visitor who hasn't yet logged in.

A common cause of duplicate user profiles during CSV (comma-separated values) imports occurs when an existing user profile has no user_id set, but the CSV being imported includes both an email and a user_id. Because Intercom identifies contacts in order — Intercom ID, then user_id, then email — it will not fall back to matching on email if a user_id is present in the import. Instead, it creates a new contact, resulting in a duplicate. When importing data via CSV, ensure the Lead's email matches the User's email. Intercom will automatically merge the new Lead into the existing User profile. If the Lead already exists, manual merging is required.

To prevent duplicate user profiles during CSV imports, ensure user_id values are consistent and set for all users before running a CSV import. Use the API to update user_id for any existing users missing one.

Key strategies to prevent duplicates

  • Enable "Merging of unverified Leads into Users" to consolidate historical Leads into Users during identified sessions.

  • For phone-based channels, enable phone matching to merge contacts based on the Phone attribute.

  • Use a single, stable user_id from your system as the primary identifier, paired with an email.

  • Ensure all integrations (e.g., Messenger, API, CSV imports) use the same identifiers.

For example, if you have two users, both with the email address test@example.com, but they have different user_IDs, Intercom will recognize these customers as two unique users.

To see which users have a user_id set, go to Contacts > People > All users and apply the filter User ID has any value. The filtered view shows each user's user_id, as in the example below:

Screenshot of the Intercom Contacts page filtered to show users where 'User ID has any value'. The active filter is highlighted in the top bar, and the results list shows user names alongside their user IDs — a mix of UUID-format strings and short integers — confirming which users have a user_id set.

It's currently not possible to merge two Users in Intercom. You can merge a lead into a user, but you cannot merge two users. When merging a Lead into a User, any data associated with the Lead is attributed to the User, and the Lead profile itself is deleted.

Steps to merge a Lead into a User

  1. Identify the User profile you want to retain.

  2. Convert the Lead into the User profile using the "merge a lead and a user" API endpoint or manually via the Inbox.

  3. If duplicates exist, merge the additional Leads into the User profile.

Once merged, the Lead profile is permanently deleted. The User profile retains all conversation history and data previously associated with the Lead.

How to identify duplicates

You could clean up the users you don't want to keep by archiving them. You'd first have to figure out which of the two records you want to keep, though. There are two ways you could do this:

1. Using our Rest API

You'd want to create a script which would:

  • List Users

  • Find the duplicates

  • For the duplicate that you want to remove, make a request to archive it

2. Using our CSV Export

The other option is to export your contacts as a CSV. Once exported, use a spreadsheet formula such as COUNTIF in Google Sheets or Excel to identify rows with duplicate email addresses. Alternatively, use a deduplication add-on from the Google Workspace Marketplace.

Once you've identified the duplicate user profiles you want to remove, tag them using a CSV import, then archive them from the Contacts page based on that tag.

Archived users are hidden from your Contacts list but are not permanently deleted. You can unarchive them at any time from Contacts > People > All users by removing the archived filter.

Best practices and recommendations

To reduce duplicate user profiles in your Intercom workspace over time, follow these best practices:

  1. Standardize identifiers: Use consistent user_id and email values across all data sources.

  2. Preload data: Ensure imported contacts include attributes like Phone in international format for accurate matching.

  3. Monitor and clean regularly: Export data periodically to identify duplicates and clean up profiles.

  4. Adopt a source-of-truth system: Use a centralized system to issue unique identifiers and ensure all data sources align.

How do I move a conversation to the correct user profile?

If a conversation in your Intercom inbox is associated with the wrong (duplicate) user profile, you can manually reassign it:

  • Add the correct user as a participant in the conversation.

  • Remove the incorrect user profile from the conversation.

Read the whole thread and find out how to clean up duplicates, here in Intercom Community.

When someone visits your site without being logged in, Intercom tracks them as an anonymous visitor using a browser-generated ID. If that visitor submits a lead form or starts a conversation, Intercom promotes them to a Lead contact using that browser ID as their identifier.

Because this ID is tied to a specific browser and session, the same person visiting from a different device or browser will appear as a new contact — there is no way for Intercom to know they are the same person without a verified identity.

The recommended solution is Identity Verification using JWT (JSON Web Token). When enabled, your backend sends Intercom a cryptographically signed token containing your user's real ID. Intercom treats this as the authoritative identifier, so the same person is always recognized as the same contact regardless of device or browser.

Learn how to secure the data you send via the Messenger with JWT.


💡Tip

Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts


Did this answer your question?