How data syncing works between Salesforce and Intercom
You can sync data between accounts in Salesforce and companies in Intercom. You can also define the sync direction for each specific attribute (Salesforce to Intercom or Intercom to Salesforce).
Who this is for: Intercom workspace admins setting up the Salesforce integration. You'll also need admin access in Salesforce to manage Account fields — coordinate with your Salesforce administrator before changing identifier fields like Account Number.
With company and account syncing configured, you’ll be able to:
View the most up-to-date company details.
Use Salesforce account data within Intercom to target outbound messages, segment your customers, and more.
Update Salesforce with company data sent from Intercom.
Syncing accounts in Salesforce with companies in Intercom
Similar to how we sync leads and contacts, you can sync accounts in Salesforce with companies in Intercom.
Note: Currently you can only sync business accounts, not person accounts.
Key terms used in this article
Company ID — a unique identifier you assign to a company when sending it to Intercom via JavaScript or the REST API. You control this value; Intercom does not generate it automatically. (Exception: Qualification Companies, which are created automatically by Intercom and cannot be synced with Salesforce.)
Account Number — a standard field on Salesforce Account records used as the matching identifier. For a match to be established, this field must contain the same value as the Company ID in Intercom.
Identity mapping — the internal link the integration creates between a matched Intercom company and Salesforce account. The integration syncs data across this link but never creates the company or account objects themselves.
How are companies and accounts mapped?
A mapping is established when objects (accounts in Salesforce, companies in Intercom) with the same identifier (a field such as Account Number) are found in Intercom and in Salesforce.
For example, a company in Intercom with the company ID 'abc123' will be matched with an account in Salesforce with the account number 'abc123'.
Note: Intercom doesn’t support the syncing of companies created automatically during qualification. To sync a company with Salesforce, create it with a defined Company ID via the REST API or JavaScript snippet instead.
A mapping between a company in Intercom and an account in Salesforce is unique and persisted (“one-to-one” relationship). In a case where two or more accounts have the same ID, the most recently updated account will be matched.
How does mapping attributes work?
After mapping accounts with companies, you can map and sync their attributes (fields). You can determine in which direction the attribute will be sent during the sync process (from Intercom to Salesforce or vice versa). You can also specify if you don’t want to sync empty values or overwrite existing ones.
Note: Data synced via these mappings is applied directly to the account or company objects in Salesforce or Intercom. For a simple view of live Salesforce data in Intercom, use the Inbox app.
In order to sync attributes between Intercom and Salesforce, their data types need to be compatible between both systems. See which field types are compatible here.
What you need before syncing account data
To sync company and account data between Intercom and Salesforce, you need to:
1. Toggle on “enable company related features” in Settings > Workspace > General:
Before you continue: The integration can only sync company objects that already exist in Intercom — it cannot create them from Salesforce accounts. Complete steps 2 and 3 below before enabling the sync. Skipping step 2 is the most common reason the integration doesn't work as expected.
2. Ensure that you have company objects in Intercom before enabling the sync. The integration matches existing records — it does not create Intercom companies from Salesforce accounts, or Salesforce accounts from Intercom companies. Company objects are sent to Intercom in the intercomSettings JavaScript code snippet (as a JSON object called company) or using the REST API.
Read this article to learn more about companies in Intercom.
3. Check that the company ID you send to Intercom has the same value as the field that identifies your accounts in Salesforce. This guarantees a match between objects in both systems:
You can use any field that identifies an account in Salesforce to match with a company in Intercom. It should be a unique identifier to guarantee a correct match.
We recommend you use Account Number as an identifier. If duplicates exist, the one which was most recently updated will be matched.
Note: "Text Area" type fields are not able to be used as the identifer on the Salesforce side. In this case configure your field to be a "String" instead.
Tip: Check that the Company id in Intercom has the same format as the account identifier (field) that you use in Salesforce:
Note: It's not currently possible to match with Salesforce’s record ID. Use Account Number or another text or integer field as your identifier instead — see step 3 in the prerequisites above.
Important: For Salesforce records to sync with Intercom, the Intercom Company ID field in Salesforce must match the Company ID in Intercom. If this field is not set or mismatched, mapped fields won't sync and no sync will be attempted.
Important: The integration does not create company or account objects. It only creates a link (identity mapping) between records that already exist in both Intercom and Salesforce. If a company doesn't exist in Intercom yet, creating an account in Salesforce will not create it — the company must first be created in Intercom via the JavaScript snippet, API, or Messenger, with a company ID that matches the Salesforce account identifier.
Once you have companies in Intercom which match companies in Salesforce, you are ready to start mapping the fields you want to sync between both systems.
How to configure the mapping
Go to the Salesforce app settings. Open the “Sync account data” tab, where you will find two sections:
Map companies with accounts
Map attributes
How to map Intercom companies with Salesforce accounts
To map companies in Intercom with accounts in Salesforce you can use any text, integer, double or id field that identifies your account objects in Salesforce (with Company ID in Intercom). Find more information on the primitive data types in Salesforce here.
This requires you to have a unique ID that is set in both Intercom and Salesforce for each company. We recommend using a unique identifier as it ensures a unique match between Intercom and Salesforce.
Select the field in Salesforce that you want to use to map companies with accounts:
🌟 Pro tip: Check out this video from Aidan explaining in more detail how to create companies in Intercom and how to match records using company ID. 🎥 🎬
To apply your changes, save your settings. 👌
If you change the field used to map companies with accounts, any established matches between companies in Intercom and accounts in Salesforce will be unmatched, and new ones will be established going forwards.
These changes will be applied to new matches in future, but existing matches will not be updated. This means some Salesforce data shown in Intercom could be out of date until a new match is established
How to map attributes between Intercom and Salesforce
In the second section, you can map attributes between accounts in Salesforce and companies in Intercom. These are the attributes that will be synced directly to or from your companies in Intercom, not the attributes visible in the inbox app (which cannot be edited).
This section explains exactly how and when data is synced between Salesforce and Intercom. It's a good idea to familiarize yourself before you configure your attribute mapping.
Click ‘+ Map new attribute’ at the bottom of the list:
Next, select which attribute from Intercom and which field from Salesforce you want to map. Remember to map attributes with fields that have a compatible data type.
You’ll see the type listed next to each attribute and field in brackets, E.g. (String):
If a field is already used in another attribute or ID mapping, it will be disabled.
We don’t currently support the syncing to Salesforce compound fields. Use the individual component fields instead — for example, use BillingStreet and BillingCity rather than BillingAddress.
We don’t currently support syncing attributes that change very frequently (e.g. last_seen) or formula fields. For live Salesforce data in Intercom without attribute syncing, use the Salesforce Inbox app instead.
Then select in which direction the sync will happen (from Intercom to Salesforce or Salesforce to Intercom):
Then, check the box for any situation where this attribute shouldn’t sync. In this example, since we’re syncing from Salesforce to Intercom, Salesforce is the “Source” and Intercom is the “Destination”. You can choose not to sync:
If the source is empty.
If the destination already has a value.
Click ‘Add’ to save the mapping to the list.
To edit a mapping, hover over it and click 'Edit':
If you no longer want to sync a specific attribute, hover over it and click ‘Remove’:
Removing a mapping stops future syncing for that attribute immediately. Data already synced to either system is not deleted.
To apply your changes, click ‘Save settings’ in the bottom right corner:
Once the changes are saved, you’ll see a confirmation message:
What happens when you enable the sync with existing data?
If you already have company or account data in Intercom or Salesforce, enabling the sync may overwrite existing data. To prevent this, use the "Don't sync if the destination already has a value" option when configuring each attribute mapping. Learn more about when and how data is synced.
Does account sync affect people sync?
It’s not possible to only sync account/company data. With this app installed, some fields required by Salesforce are sent when creating a lead or synced every time it’s updated in Intercom or Salesforce. Read more about how people sync works.
Can I bulk update existing data?
No — syncing starts from when you save your settings and applies only to changes made after that point. Historical records are not automatically backfilled. To trigger a sync for an existing record without waiting for a natural change, make a small edit to the company in Intercom (which syncs to Salesforce immediately) or to the account in Salesforce (which is picked up within 5 minutes).
Importing accounts for account-based marketing?
This app’s account sync functionality keeps your account data in sync between Salesforce and Intercom.
Importing accounts for account-based marketing is a different functionality that is not intended to keep your account data updated between Salesforce and Intercom.
Key recommendations before going live
Communicate with your Salesforce administrator about allocating the correct API limit to Intercom so that all your other integrations can work at the same time. Read this article to find out how to manage your API usage in the Salesforce app in Intercom.
As with any data syncing product integration, there are some data risks involved. To minimise this risk we recommend doing a backup of your Salesforce data beforehand. Read this article to find out how.
Install and test the Salesforce app in a sandbox environment first. Read this article to find out how.
How is data synced between Intercom and Salesforce?
The attributes you map between Intercom and Salesforce are synced when they change in either system. When the change occurs in Intercom, the sync to Salesforce is triggered immediately, while Salesforce is checked every 5 minutes to determine if there are changes to sync to Intercom. See the tables below for details on how data is updated in different situations.
Important: Because data is only synced when there are changes (or new records) in Salesforce or Intercom, historical data is not always in sync. If there hasn’t been a change to trigger an update, data shown in Intercom may not match data shown in the Salesforce inbox app. There is no bulk update of existing historical data when using the Salesforce app.
How data syncs from Intercom to Salesforce
The following triggers in Intercom will cause data to be updated in Salesforce. The behaviour in each of these cases is different depending on whether there's an existing match between an account in Salesforce and a company in Intercom. This match is called an "identity mapping".
Important: An identity mapping is a link between records that already exist in both systems. The integration does not create company objects in Intercom or account objects in Salesforce — it only syncs data between matching records that already exist on both sides.
Each row shows three outcomes: what happens when the two records are already linked (column 2), and what happens when they share a matching ID but have no link yet (column 3). If no matching Salesforce account exists at all for an Intercom company, no sync or mapping is created regardless of the trigger.
Trigger | If identity mapping already exists | If no existing identity mapping found |
Company updated in Intercom | Sync any updated attributes to Salesforce. |
|
Company created in Intercom | Not applicable. | Create new identity mapping (a link between the existing Intercom company and the existing Salesforce account).
Sync all mapped attributes to Salesforce. Note: this does not create a new Salesforce account — it only syncs attributes to an account that already exists and matches. |
Company deleted in Intercom | Delete identity mapping (removes the link between the Intercom company and the Salesforce account; the Salesforce account is not deleted). | Not applicable. |
Note: “Mapped attributes” are any attributes that you have set up to sync between Intercom and Salesforce in your settings.
How data syncs from Salesforce to Intercom
Intercom checks Salesforce for any changes (new or updated accounts) every 5 minutes and when found, updates information in Intercom.
Important: The integration only syncs data between records that already exist in both systems. It does not create new Intercom companies from Salesforce accounts — if a matching Intercom company doesn't already exist, no sync will occur.
Each row shows three outcomes: what happens when the two records are already linked (column 2), and what happens when they share a matching ID but have no link yet (column 3). If no matching Intercom company exists for a Salesforce account, no sync or mapping is created regardless of the trigger.
Trigger | If identity mapping already exists | If matching record already exists in the other system (no mapping yet) |
Account updated in Salesforce | Sync all mapped attributes to Intercom. |
|
Mapping key updated in Salesforce. (For example, the ID used to match a record in Intercom) |
|
|
Account created in Salesforce
| Not applicable. |
|
Account deleted in Salesforce | Delete identity mapping (removes the link between the Salesforce account and the Intercom company; the Intercom company is not deleted). | Not applicable. |
If a person is removed from an Intercom company will they also be removed from the Salesforce account?
No, the Salesforce app does not sync a person's company/account associations between platforms. Leads and users in Intercom that are added to/removed from companies in Intercom will not update a mapped Salesforce lead/contact's account associations in Salesforce. If a person needs to be removed from an Intercom company and a Salesforce account, you must make that change on both platforms.
Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts











