Contacts FAQs
Matthew Pelyhes avatar
Written by Matthew Pelyhes
Updated over a week ago

Managing contact data

How does my lead's qualification data get updated?

There are three ways to update your lead’s qualification data in Intercom. You can:

  • Manually update lead qualification data in your leads’ profiles.

  • Track lead qualification data captured on your website or product, and send it to Intercom via a ping (just like you would with your custom attributes).

  • Set up a Workflow to automatically collect and update your leads’ data.

What happens when multiple data points are competing?

Manually edited data is the primary data source

Manually edited data is never overwritten by ping or Operator-collected data.

To clear qualification data you’ve manually added, just hover over this qualification data and select the re-sync option. This will allow you to start automatically collecting data again.

If you do a CSV import or update a user via the REST API this will over-ride manually edited data.

Ping data is the secondary data source

Ping data is never overwritten by Operator-collected data.

Operator data is considered tertiary

Operator-collected data is only added to a lead’s profile when the data attribute is empty.

What is qualification data?

Qualification data is a special set of attributes you can update in your lead and user qualification profiles as you qualify them.

You can choose which data appears in your lead and user qualification profiles. Just visit your qualification data settings in Intercom and select ‘Add data’:

There are 2 ways you can add data from here. You can:

You can also ‘Add’ or ‘Remove’ any data you like, and this will change the qualification data that appears in your lead and user profiles.

How do I qualify my customers with qualification data?

There are two ways you can qualify your customers in Intercom. You can:

It’s also possible to update lead qualification data via a ping (just like you would with your custom attributes). And, you can update it via a CSV import or through the REST API.

Check out our best practices on how to choose the right qualification data for your business.

How can I permanently delete users and leads?

Via the UI

If you’d like to permanently remove all data associated with a user/lead so it can’t be retrieved you can do this through the ‘Deleting people data’ tab in your settings.

Enter the user ID or email of the user you want to delete, then select the user. Once you click ‘Permanently delete’, this will remove all of their associated data.


To delete the user via REST API you'll need:

  1. REST API bearer token and

  2. Intercom user ID of the user that you want to permanently delete

If you are deleting a single user, you can use our Delete contact endpoint developer documentation. On this page, you'll need to input your Bearer token and the Intercom User ID in their respective fields:


  • Once a user/lead has been deleted, you cannot view them in the Intercom UI.
    If you delete a user/lead by mistake, contact us within 7 days and we can retrieve the information. After 7 days this data will be permanently destroyed.

  • CSAT ratings and comments from a user will not be deleted.

  • Deleting leads or users will remove all of their conversations from Intercom, but historic conversations from archived or deleted contacts will still be included in your reporting.

  • If you have exported user data, you may also need to delete those files in order to comply with GDPR legislation.

Can I create new users with the same user ID and/or email as a deleted user?

This is only possible after the 7 day grace period, because the deleted users still exist in the database with those user IDs/emails. If you urgently need to create new users with the same user ID/email as those that were deleted in the 7 day grace period you can:

  1. Use our REST API to update the user ID (externnal_id)/email e.g. User ID = 123 -> User ID = 123_delete

  2. Then delete the user(s) again.

  3. Now create the user(s) with the desired user ID/email e.g. User ID = 123.

Can I link directly to a user's profile?

You can create links for user profiles simply by adding the User ID or email address of your user to the URLs below.

User ID:

The User ID here is the ID that you have set for the user. If you do not use User ID's, you will need a slightly different URL where you can use the Intercom ID which all Users have:

The Intercom ID for a User can be found in the URL when viewing their profile page in Intercom:

Email Address:

This URL will only work for unique email addresses - these are email addresses that exist once in your user list.

Regional Workspaces

If you have a regional workspace in the EU or AU regions, make sure to adapt your URLs for this.

You can identify which data region you’re hosted in by looking at your workspace URL:

  • for US customers

  • for EU customers

  • for Australian customers

Why am I missing users that are showing up on my own system?

Your users might have installed a JavaScript blocking browser plugin/extension that uses the EasyList or similar list. This is especially likely if the number of users missing from Intercom is only a small and infrequently occurring percentage.

Why would an adblocking extension or plugin block Intercom?

While Intercom isn't an ad-provider, adblocking plugins (e.g. uBlock, Ghostery, Adblock, NoScript, and Firefox Privacy Browsing mode) offer options to block JavaScript that includes tracking functionality.

Since Intercom communicates conversation detail as well as offering the ability to submit attributes and events on your Users' behavior, we are included in some of these secondary lists. Though there are many lists, the majority of Intercom blockages are caused by our inclusion in the EasyList list.

What's EasyList?

EasyList is an optional supplementary subscription that completely removes all forms of tracking from the internet, including web bugs, tracking scripts and information collectors, thereby protecting your personal data.

At Intercom, we respect customer privacy where requested so we don't argue against our inclusion here, but you can certainly request that your users disable plugins like this, or add an exception for your site for better performance.

How can I keep data in Intercom synced with my system for these users?

  1. You can ask your users to disable JavaScript blockers. Googling for JavaScript blocker detection or Adblock detection will provide many resources on doing this.

  2. You can sync your backend with the Intercom API. There are several API wrappers that might suit your application well including: Ruby, Node, PHP, Java, Go

If you believe you're missing user detail in Intercom for other reasons, feel free to get in touch to look into potential integration issues.

Can I add a profile picture or avatar image to a lead or user?

You can set a contact's avatar image in Intercom using the REST API by following these steps:​

1. Retrieve the contact's Intercom ID by making a call to the Search for Contacts endpoint

2. Use the Intercom ID to make a call to the Update Contact endpoint, and populate the avatar object with the URL of the contact's image you would like to use.

Understanding contact data

Is Intercom compliant with HIPAA?

What is HIPAA?

The Health Insurance Portability and Accountability Act (HIPAA) is a set of industry-wide standards to safeguard protected health information (PHI) and electronic protected health information (ePHI).

Customers must be able to trust that their health data is being handled securely and their digital privacy respected. HIPAA is one of the standards they rely on for guidance and consistency.

Is Intercom compliant?

Intercom has successfully completed a HIPAA attestation examination, which means that we now help our customers fulfill their ePHI obligations as we store and process data in a manner consistent with HIPAA standards.

If your business is required to be HIPAA compliant, we can enter into a business associate agreement with your organization.

We have a HIPAA attestation report which covers both the HIPAA Security Rule and HITECH Breach Notification Rule that we can share with you. It's confidential, so if you’re not yet an Intercom user, you’ll be required to sign an NDA (Non-disclosure Agreement) before receiving it.

What’s next?

To access our HIPAA attestation report, current Intercom admins can log in to their Intercom workspace to download and view the report, along with other security and compliance documents. These can be found under Security settings.

This report is also available upon request and under NDA for those who don’t currently have access to an Intercom workspace. Get in touch through the Messenger or by emailing

To enter into a BAA (business associate agreement) with Intercom, you can reach out to our support team in the Messenger, or email us at

How is a web session defined?

We increment a user's session count when one of two things happens:

  1. The user has been inactive for more than 30 minutes and then returns.

  2. The user has been active for more than 24 hours.

Visits (for visitors) are incremented in the same way as web sessions.

How is a mobile session defined?

If you are using our iOS SDK, we increment the iOS session count the first time a user is registered and subsequently on every UIApplicationDidBecomeActiveNotification that is triggered by a user opening your app, once they happen twenty seconds apart. Application opens within twenty seconds are not counted.

Our Android SDK is available here which has similar rules.

Mobile web sessions (i.e., Safari and Chrome on mobile) are captured as web sessions, not mobile sessions.

How are company sessions defined?

We increment a company's sessions count whenever a user begins a new session in the context of that company. For example, if a user logs in after 1 day with only user data, this will update the user session.

Then within 30 minutes they ping again with user and company data. This will not increment the user sessions, so it will not increment company sessions either.

So, if while part of a company a particular user has 300 sessions and then that user leaves that company, those 300 sessions will still make up part of the total company sessions, even after they leave.


  • If a user is associated with multiple companies we don't know which company's sessions to update, unless we have a company_id. So in order for the company's sessions to be updated, the user update has to contain the company object.

  • Company data must be sent as part of the user ping in order for the company web session to increase.

  • The “company last seen” value is only updated when there is a ping request with the user. If your user logs in with just user data, then only "last seen" for the user will be updated, and not "company last seen".

How does Intercom track first and last name of my users?

Intercom will automatically split your name attribute into first name and last name. For example:

  • If name is "Joe Bloggs", Intercom tracks it as First name: "Joe", Last name: "Bloggs".

  • If name is "MÁRCIA HELENA MAIA DE LIMA", Intercom tracks it as First name: "MÁRCIA" Last name: "HELENA MAIA DE LIMA"

  • If name is "Dr. Drew Bloggs", Intercom tracks it as First name: "Drew" Last name: "Bloggs"

  • If name is "Joe Bloggs, CBA", Intercom tracks it as First name: "Joe" Last name: "Bloggs" - "CBA" will still be shown in Joe's full name in Intercom.

  • If name is "Bloggs, Joe", Intercom tracks it as First name: "Joe" Last name: "Bloggs"

  • If name is "Dr Bloggs", Intercom tracks First name as "doesn't exist" Last Name "Bloggs"

  • To set a middle name, use the format: "Last name, First name Middle name". If name is "Bloggs, Joe Drew", Intercom tracks First name as: "Joe Drew" Last name: as "Bloggs"

If a user hasn't provided a name, we'll use their email address or user_id to identify them. If these fields are also blank, we'll generate a unique pseudonym for them, in the format: "Color Object from Location" like "Pink Stereo from Atlanta".

How does Intercom track if a user is currently online?

Intercom uses real-time presence to record whether a user is currently online in your app. Real-time presence works based on periodic heartbeat requests coming from the user (via the Messenger).

The user sends those heartbeats every 30 seconds and is marked as offline when we haven't had a heartbeat in 2 minutes. Even at the lowest levels we don't always immediately detect the loss of connection as soon as the user closes the browser - it still often takes the absence of some sort of heartbeat traffic after a timeout interval to declare that the connection has dropped. Users navigating from page to page would flash on and offline constantly if we could reliably detect connections dropping and didn't smooth things out a little.

How does the user list update in real time?

Real-time user presence will update the green dot shown next to a user or lead's profile picture:

When your user list automatically refreshes, it doesn't bring in new people, it just refreshes the online status (the green dot) of who is already there. You will need to manually refresh to bring in new users, or update other values.

How do I create filters for dates in the future?

If you want to create filters for dates in the future, you need to use negative numbers.

For example, if you want to send an auto message to customers 3 days before their subscription ends, you would create a "subscription_ends_at" custom attribute and filter for "more than -3 days ago" and "less than 0 days ago." This will match all users whose subscription is about to end in 3 days time.


  • To ensure this works, the custom attribute must be sent to Intercom as a Unix Timestamp and the type must be set to 'Date'.

  • Custom attributes ending with "_at" are automatically treated as a date, rather than a number. However, if you named your custom attribute differently, you can change the type to 'Date' manually in your app settings under 'People Attributes'.

  • If you're using the 'exactly x days ago' filter we'll find users who match this filter during a 24 hour period. For example, 'signed_up_at exactly -3 days' ago will find users whose signed_up_at date is 2-3 days from now (and not 3-4 days from now).


If I receive a "user already exists" error message due to an existing contact having the same email address or User ID/external_id, how can I locate the existing contact that's referenced?

Using the Intercom ID returned in the error message you can make a GET call to the Get a contact API endpoint to return the existing User profile. For example, if the error message contains "message': 'A contact matching those details already exists with id=65a92b7ee1a4176d9ab8b357", you can makeyou can make a Get a contact request to "".


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?