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.
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.
A common cause of duplicates during CSV 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.
To prevent this, 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.
For example, if you have two users, both with the email address test@example.com, but they have different user_IDs, Intercom will recognise these customers as two unique users.
Do you use user IDs in your own product? You can check from your Contacts page:
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.
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 use our CSV export. You would then have to use some kind of script or formula to identify duplicate values. You could also try to get the exported users into Google Spreadsheets and use a formula or an add-on to to do it.
Once you have the list of people you want to archive, you can use a CSV import to tag those, and then archive them from the UI based on the tag.
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 (JWT). 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.
Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts

