> ## Documentation Index
> Fetch the complete documentation index at: /help/llms.txt
> Use this file to discover all available pages before exploring further.

# Intercom

> Create an Intercom lead for a replying LinkedIn contact, so your team knows them when they open your site's chat.

> [!NOTE]
>
> **Pro plan.** Intercom works through a connection and HTTP steps, which are part of Pro and Agency (and the free trial). Anything you already have keeps working on every plan. See [Plans and billing](/help/account/billing.md).

A contact who replies leaves the campaign (the **When the contact replies** box). Add **Send to another campaign** in that box and pick a follow-up campaign. There, a **Webhook / HTTP** step creates them as a lead in Intercom.

> [!NOTE]
>
> **How it connects:** Intercom's REST API with an access token. See Intercom's [Create a contact](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/contacts/createcontact) docs. The request and answer below follow Intercom's docs.

## Before you start

* **An access token:** in Intercom, open the **Developer Hub**, create an app for your workspace and copy its access token.

## 1. Connect Intercom

In Kerux, open **Integrations > Connections**, click **Connect** on **Custom API** (under **Developers**):

* **How it signs in:** **Bearer token**, paste the token.
* **Base URL:** `https://api.intercom.io`

Click **Save**, then **Test connection**.

## 2. Create the Intercom lead

In the follow-up campaign, add a **Webhook / HTTP** step named `intercom`:

```json theme={null}
{
  "method": "POST",
  "url": "/contacts",
  "bodyType": "json",
  "body": {
    "role": "lead",
    "email": "{{email}}",
    "name": "{{contact.full_name}}",
    "custom_attributes": { "linkedin_url": "{{contact.linkedin_url}}" }
  }
}
```

`custom_attributes` must already exist in Intercom (create `linkedin_url` as a people data attribute), or leave it out. Intercom answers with the contact (trimmed):

```json theme={null}
{ "type": "contact", "id": "6762f0d...", "role": "lead", "email": "maria@acme.com" }
```

Use `role: "user"` with your own `external_id` for customers instead.

To avoid a second contact for the same person, search Intercom's contacts by email first and branch.

## Test with one contact

In the follow-up campaign's **Builder**, click **Test** to open **Test on one contact** and find the contact in Intercom.

## Common errors

> [accordion] 401 Unauthorized
>
> The token is wrong or belongs to another workspace. Copy it again from the Developer Hub.

> [accordion] 409 conflict
>
> A contact with that email already exists. Search first and update it instead.

> [accordion] 400 with a custom attribute error
>
> The attribute doesn't exist in Intercom. Create it, or remove `custom_attributes`.

Related: [Webhook steps](/help/integrations/webhook-steps.md), [Slack](/help/integrations/slack.md), [Google Chat](/help/integration-guides/google-chat.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.