
Amplitude Activation's Intercom streaming integration lets you forward your Amplitude events and users to [Intercom](https://www.intercom.com/) in a few clicks.

## Set up the integration

### Prerequisites

#### Create a new Intercom app

1. From the [Intercom Developer Hub](https://developers.intercom.com/), click **Your Apps**.
2. Click **New App**.
3. Enter a name and select a workspace.
4. Click **Create App**.

Refer to [Intercom's documentation](https://developers.intercom.com/building-apps/docs/get-started-developing-on-intercom#create-an-app) for more detailed instructions on creating an app.

#### Required information

To configure streaming from Amplitude to Intercom, you need the following information from Intercom.

**Intercom Access Token**: The Intercom Access Token for your Intercom app.

1. From the [Intercom Developer Hub](https://developers.intercom.com/), click **Your Apps**.
2. Click your app.
3. Navigate to the **Authentication** page.
4. The **Intercom Access Token** appears immediately below the workspace name under **Access Token**.

### Create a new sync

1. In Amplitude Data, click **Catalog** and select the **Destinations** tab.
2. In the Event Streaming section, click **Intercom**.
3. Enter a sync name, then click **Create Sync**.

### Enter credentials

1. Select your **Intercom API Endpoint**.
2. Enter your **Intercom Access Token**.

### Configure mappings

_This applies to both event and user forwarding._

1. From the left dropdown, select an Amplitude user property that corresponds to your Intercom user ID.
2. From the right dropdown, select the type of your Intercom user ID.
    - **User ID**: Any unique identifier for each user in Intercom.
    - **Email**

### Configure event forwarding

Under **Send Events**, enable the toggle ("Events are sent to Intercom") to stream events to Intercom. When enabled, Amplitude automatically forwards events to Intercom as Amplitude ingests them. This integration doesn't send events on a schedule or on-demand. Amplitude sends events to Intercom as [Intercom data events](https://developers.intercom.com/intercom-api-reference/reference/the-data-event-model). Intercom has a limit of 120 event types.

Intercom triggers an `[Intercom] event.created` event when Intercom creates events, including events from Amplitude's Event Streaming integration. If you don't want Amplitude to store these events, use Amplitude's [block or drop filters](https://help.amplitude.com/hc/en-us/articles/16805784778907-Remove-invalid-or-incorrect-data) to remove this data.

1. In **Select and filter events**, choose the events to send. Choose only the events you need in Intercom.

{% callout type="warning" title="Anonymous user event streaming" %}
Intercom requires that all events have a user ID present. If you selected any events that may not have a user ID, add a filter to send only events where the user ID is present. Amplitude streams events only for users that already exist in Intercom. Otherwise, your delivery metrics may be affected.
{% /callout %}

2. (Optional) In **Select additional properties**, select any more event and user properties to send to Intercom. If you don't select any properties here, Amplitude doesn't send any. Amplitude sends these properties to Intercom as [Intercom event metadata](https://developers.intercom.com/intercom-api-reference/reference/the-data-event-model#metadata-object). Intercom has a limit of 20 metadata values per event.

### Configure user forwarding

To stream user and property updates to Intercom, enable **Send Users**. This setting creates or updates users in Intercom when you update them in Amplitude with the [HTTP V2 API](/docs/apis/analytics/http-v2) or [Identify API](/docs/apis/analytics/identify). This integration doesn't support scheduled or on-demand updates. Amplitude creates each user as an [Intercom contact](https://developers.intercom.com/intercom-api-reference/reference/the-contact-model).

Optionally, select user properties to send to Intercom in the **Select additional properties** field. Amplitude sends only the properties you select and only when one of them is updated. Amplitude sends these properties as [Intercom custom attributes](https://www.intercom.com/help/en/articles/179-send-custom-user-attributes-to-intercom/).

### Enable sync

When the configuration looks correct, toggle the Status at the top of the page to **Enabled** and click **Save**.
