# Intercom Destination

## About this integration

Intercom provides insight into your users, helping you communicate with them through targeted content, behavior-driven messages, and conversational support so you connect with people on a personal level at scale. With this integration, we load Intercom’s JavaScript library for you, allowing you to easily identify your users, track their activity, and interact with them through the Intercom Messenger.

[Mode How we forward source data to the destination: through Customer.io's servers or directly from our JavaScript client.](/cdp/destinations/getting-started/#connection-mode)

[Web sources Indicates whether or not this integration supports our the JavaScript client.](/cdp/sources/getting-started/#types-of-sources)

[API sources Indicates whether or not this integration supports our server libraries (Go, NodeJS, Python), API, Mobile SDK, and other data sources.](/cdp/sources/getting-started/#types-of-sources)

[Supported calls The API methods this integration supports.](/cdp/sources/source-spec/source-events/)

[Integration name The name of this integration if you want to enable or disable it in the `integrations` object.](/cdp/sources/source-spec/common-fields/#the-integrations-object)

Standard

[identify](/api/cdp/#operation/identify), [group](/api/cdp/#operation/group), and [track](/api/cdp/#operation/track)

Intercom Cloud Mode (Actions)

Web

[track](/api/cdp/#operation/track), [identify](/api/cdp/#operation/identify), and [group](/api/cdp/#operation/group)

intercom-web

## There are two versions of this integration[](#there-are-two-versions-of-this-integration)

You’ll see two entries for Intercom in our [integration catalog](https://fly.customer.io/workspaces/last/journeys/integrations/all/directory), with one labeled *Web*. We typically recommend that you use the standard integration, the one *not* labeled “Web” when possible. The *web* version of this integration only works with our JavaScript client and does not pass data through Customer.io’s servers, which can make it hard to debug your integration, capture a history of events sent to the integration, and so on. Learn more about [Web integrations](/integrations/data-out/getting-started/#connection-modes).

## Getting started[](#getting-started)

1.  Go to **[Data & Integrations > Integrations](https://fly.customer.io/workspaces/last/journeys/integrations/all/directory)** and select the **Intercom** entry in the *Directory* tab.
    
2.  (Optional) Select the data sources that you want to connect to your outbound integration. You can always connect data sources later. We’ll only show you data sources that work with your integration.
    
3.  Configure your integration.
    
4.  Click **Enable Destination**.
    

### Actions[](#actions)

When you’re done setting things up, you can go to the *Actions* tab to see how we map incoming data to your integration.

You may need to add actions for this integration

While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your integration. See our [actions](/integrations/data-out/actions/) page for help setting up actions.

Action

Default Trigger

Description

Identify Contact

`type = “identify”`

Create or update a contact in Intercom

Identify Company

`type = “group”`

Create or update a company in Intercom and attach a contact.

Track Event

`type = “track”`

Submit an event to Intercom.

## Getting started: web integration[](#getting-started-web-integration)

1.  Go to **[Data & Integrations > Integrations](https://fly.customer.io/workspaces/last/journeys/integrations/all/directory)** and select the **Intercom** entry in the *Directory* tab.
    
2.  (Optional) Select the data sources that you want to connect to your outbound integration. You can always connect data sources later. We’ll only show you data sources that work with your integration.
    
3.  Configure your integration.
    
    1.  **App Id**: The app\_id of your Intercom app which will indicate where to store any data.
        
    2.  **Activator**: By default, Intercom will inject their own inbox button onto the page, but you can choose to use your own custom button instead by providing a CSS selector, e.g. #my-button. You must have the "Show the Intercom Inbox" setting enabled for this to work. The default value is #IntercomDefaultWidget.
        
    3.  **Rich Link Properties**: A list of rich link property keys.
        
    4.  **Api Base**: The regional API to use for processing the data
        
4.  Click **Enable Destination**.
    

### Web integration actions[](#web-integration-actions)

When you’re done setting things up, you can go to the *Actions* tab to see how we map incoming data to your integration.

You may need to add actions for this integration

While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your integration. See our [actions](/integrations/data-out/actions/) page for help setting up actions.

Action

Default Trigger

Description

Track Event

`type = “track”`

Submit an event to Intercom.

Identify User

`type = “identify”` or  
`type = “page”`

Create or update a user in Intercom.

Identify Company

`type = “group”`

Create or update a company in Intercom.

## FAQ and Troubleshooting[](#faq-and-troubleshooting)

### Why is my company not in my Intercom dashboard?[](#why-is-my-company-not-in-my-intercom-dashboard)

If you create a company without an assigning user (using the `group` method), the company will not appear on Intercom’s dashboard. This is expected functionality in Intercom. When you associate a person with the company, it will appear in your list of companies in Intercom.

### Why isn’t a user getting attached to a company?[](#why-isnt-a-user-getting-attached-to-a-company)

When you use the *Identify Company* action (`group` calls in your incoming data), we create or update a company’s information. In the same action, We also attach the user in your `group` call to that company. If the user doesn’t exist in Intercom yet, we’ll create or update the company but can’t attach the user. You should `identify` a user before you try to attach them to a company with a `group` call.