How to correctly Intercom identify users: A complete guide

Kenneth Pangan
Written by

Kenneth Pangan

Katelin Teen
Reviewed by

Katelin Teen

Last edited October 24, 2025

Expert Verified

If you’re using Intercom, you know that personalizing customer support is the goal. But it all hinges on one simple thing: correctly identifying your users. When it works, conversations are smooth, and your team has all the context they need. When it doesn't, you end up with duplicate profiles, jumbled conversations, and a messy experience for both your customers and your agents.

Lots of teams get tripped up by the same common issues, like mixing up user data, which can throw a wrench in the whole support process. This guide will walk you through everything you need to know about how to "Intercom identify users" the right way, from the basic concepts and technical setup to the common headaches and how to solve them.

What does it mean to Intercom identify users?

Before you can get user identification right, you need to understand how Intercom thinks about the people interacting with your business. It's a journey from a totally anonymous visitor to a known, logged-in user, and each stage is handled a bit differently.

From anonymous visitor to qualified lead: The first step

First, you have a visitor. This is anyone browsing your site who hasn't started a chat yet. Intercom uses a simple browser cookie to keep an eye on them, but at this point, they're just a face in the crowd.

A visitor becomes a lead the moment they start a conversation or reply to a message. Intercom gives them a temporary, sometimes quirky name (like "Blue Cloud from New York") until you can get more info, like their email address. This is where the relationship starts to take shape.

From lead to logged-in user: The final step

The final step is when a lead becomes a user. This happens once they sign up for your product or log into their account. Now, you can finally tie them to a permanent, unique identifier that connects all their past and future conversations. Getting this merge right is what keeps a conversation history intact and gives your support team the context they need.

The core identifiers: User_id vs. email

Intercom has a clear pecking order for matching people to their profiles: "Intercom ID" > "user_id" > "email". Intercom assigns its own internal ID, but the two you'll be working with are "user_id" and "email".

The "user_id" is what you should always aim to use. It should be a stable, unique ID from your own database that never changes, like a primary key in a user table. It's the most reliable way to track someone across different devices, browsers, and sessions.

The "email" is a fallback. It's less dependable because people can change their email addresses. If you rely only on email, you can easily end up with duplicate profiles if a customer signs up with one address and messages support from another.

Here’s a quick comparison:

Featureuser_idemail
StabilityHigh (it shouldn't change)Low (users can change it)
UniquenessGuaranteed by your databaseCan sometimes lead to duplicates
Best PracticeRecommended for all logged-in usersUse as a backup or for leads
Common IssueNeeds a developer to implementCan create duplicate user profiles

How to identify users in Intercom: A practical guide

Getting the technical side of user identification right is the bedrock for everything else. It involves a little bit of code, but the idea behind it is pretty simple. Here’s how to set it up correctly and sidestep common mistakes.

Setting up the JavaScript snippet

The whole process works through the window.intercomSettings object. This is a small piece of JavaScript on your website where you pass user data over to Intercom. For every logged-in user, you need to fill this object with their info.

Here’s a basic example of what that looks like:


window.intercomSettings = {  

  app_id: "YOUR_APP_ID", // Your Intercom workspace ID  

  name: "Jane Doe", // Full name  

  email: "jane.doe@example.com", // Email address  

  user_id: "12345", // A unique ID from your database  

  created_at: 1646870400 // Signup date as a Unix timestamp  

};  

The important part is making sure the name, email, and user_id fields are pulled directly from your application's backend whenever a user is logged in. This tells Intercom exactly who it's talking to at all times.

A screenshot of the Intercom ticket view with customer details in the sidebar, showing how to properly Intercom identify users.
A screenshot of the Intercom ticket view with customer details in the sidebar, showing how to properly Intercom identify users.

Best practices for data integrity

A clean setup will save you a world of hurt later on. Follow these rules to keep your user data accurate:

  • Stick to one "user_id": This is the big one. Always pass the same unique "user_id" for a user across all their sessions and devices. This keeps their entire history neatly tied to a single profile.

  • Don't use placeholder values: Never send generic values like "undefined" or a shared ID for multiple users. That’s a fast track to merging completely different customer profiles into one confusing mess.

  • Clear sessions on logout: Whenever a user logs out, you should call the "Intercom('shutdown')" method. This is especially important for apps used on shared computers (like in a library or office), as it clears the session and stops the next person from accidentally seeing the previous user's chats.

Common challenges with Intercom's user identification

Even with a perfect setup, many teams bump into issues with Intercom's user identification model. These quirks can create frustrating workflows for agents and customers, and they often show why you might need a smarter layer on top of your helpdesk.

The headache of duplicate users

The most common problem is the dreaded duplicate profile. This happens when Intercom gets confused and creates multiple profiles for the same person. For example, if a user emails you for support and later logs into your app with a "user_id", you might end up with two separate records if they aren't merged properly.

This is a real pain for support teams. Agents don't have the full picture of a customer's history, which forces customers to repeat themselves. Your analytics also get skewed, making it impossible to get a clear view of customer interactions.

Security concerns and identity verification

Without the right security measures, someone could potentially impersonate a logged-in user by guessing their email or "user_id". This could give them access to sensitive conversation history.

To stop this, Intercom offers features like JWT authentication. While this is great for protecting your users, it adds another layer of technical work. Your dev team has to set up and maintain a hashing system, which pulls them away from other projects.

Why it's still hard to turn data into personalized support

Here’s the biggest challenge: even with perfect user identification, using that data to provide genuinely helpful, automated support is still a pretty manual job in Intercom. You know who the user is, but the platform doesn't automatically understand their entire history or the context hiding in your other documents and knowledge bases.

This is where tools that sit on top of your helpdesk really shine. You need a system that can connect the dots. For example, an AI tool like eesel AI plugs right into Intercom and uses this user data from day one, pulling context from all your sources without making you switch away from the helpdesk you already know.

Intercom pricing explained

Before going all-in, it helps to understand the costs. Intercom's pricing is mainly based on a per-seat cost for your human agents, plus a usage-based model for its AI features. Their AI agent, Fin, is priced per resolution.

Here's a breakdown of their main plans:

PlanSeat Price (Annual)Fin AI Agent PriceKey Features
Essential$29/seat/mo$0.99/resolutionMessenger, Shared Inbox, Help Center
Advanced$85/seat/mo$0.99/resolutionEverything in Essential + Automation, Multiple Inboxes
Expert$132/seat/mo$0.99/resolutionEverything in Advanced + SSO, HIPAA support, SLAs

While it looks straightforward, that pay-per-resolution model for Fin can lead to unpredictable bills. If you have a busy month with a lot of support tickets, your costs can jump without warning. This makes budgeting tricky and can feel like you're being penalized for growing your support operations.

A better way to leverage user data

So, you've correctly identified your users and you understand the costs. Now what? Instead of getting locked into a native AI that can be complex and expensive, you can add a smart AI layer that makes Intercom better without having to replace it.

eesel AI is built for exactly this. It connects directly to your existing setup and immediately starts helping you deliver more intelligent and efficient support.

Get set up in minutes

You don't need long implementation cycles or a ton of development work. With eesel AI, you get a simple, one-click Intercom integration and a setup process you can handle all on your own. You can connect your helpdesk, train your AI on your knowledge, and go live in minutes, without ever needing to talk to a salesperson.

Unify knowledge beyond Intercom

A user's full story isn't just in their chat history. It's scattered across your knowledge bases, internal docs, and past tickets. eesel AI connects to all of it, integrating with sources like Confluence, Google Docs, and your entire ticket history to give every answer a single, comprehensive source of truth.

A diagram showing how an AI can unify knowledge sources after you Intercom identify users, comparing built-in AI with an agnostic AI.
A diagram showing how an AI can unify knowledge sources after you Intercom identify users, comparing built-in AI with an agnostic AI.

Test with confidence and pay predictably

Worried about unleashing an AI on your customers? eesel AI has a simulation mode that lets you test its performance on thousands of your past Intercom conversations before it ever talks to a live customer. You get a clear forecast of its resolution rate and can tweak its behavior with total confidence.

Best of all, eesel AI offers transparent, predictable pricing with no per-resolution fees. You pay a flat rate that fits your needs, so your costs stay the same no matter how many tickets you resolve. It's a model built for predictable growth, not surprise bills.

Beyond user identification: From tracking to helping

User identification is the foundation of good customer support. Getting Intercom identify users right is a must, but its real power is unlocked when you use that data to drive intelligent, automated, and truly personal conversations.

The goal isn't just to track users, but to help them more effectively. The right tools can turn a simple user profile into a rich source of context that fuels an amazing support experience.

Unlock the power of your data

Ready to turn your identified Intercom users into happier customers? Connect Intercom to eesel AI in minutes and see how our AI agent can automate support, learn from your past conversations, and provide a truly personalized experience. Start your free trial today.

Frequently asked questions

It means connecting anonymous website visitors to known customer profiles, moving them from a "visitor" to a "lead" and finally to a "user" with a permanent identifier. This allows Intercom to tie all past and future interactions to a single, consistent customer record, providing essential context for your support team.

The most reliable method is to use a stable, unique "user_id" from your own database, passed via the "window.intercomSettings" JavaScript object. While email can be used, "user_id" is crucial because it never changes and ensures consistent tracking across sessions and devices, preventing duplicate profiles.

Duplicate profiles often occur when Intercom struggles to match a user across different identifiers, like if they email from one address and then log in with another. Relying solely on email, or not merging leads and users correctly, can lead to separate records for the same person, fragmenting their support history.

Yes, without proper measures, there's a risk of impersonation if someone guesses a "user_id" or email. Intercom addresses this with features like JWT authentication, which adds a layer of encryption to verify user identity. Implementing this requires developer effort to set up and maintain a hashing system.

Once users are identified, you can connect this data to advanced AI tools that integrate with Intercom, like eesel AI. These tools can unify knowledge from all your sources, such as knowledge bases and past tickets, enabling genuinely personalized and automated support without manual effort.

When a user logs out, it's critical to call the "Intercom('shutdown')" method in your JavaScript. This clears the current Intercom session, preventing the next person using the same device from accidentally accessing or continuing the previous user's conversations.

Share this post

Kenneth undefined

Article by

Kenneth Pangan

Writer and marketer for over ten years, Kenneth Pangan splits his time between history, politics, and art with plenty of interruptions from his dogs demanding attention.