# Intercom

Source: https://gokarla.io/docs/guides/resolve/integrations/intercom

# Intercom

:::info

The Intercom integration creates a structured ticket in your Intercom workspace
whenever a customer submits a Resolve claim. Photos, affected items, order
context, and the customer's resolution preference are attached automatically.

:::

## What you need

Before you start, gather:

- **Intercom admin access** — to create a private app and access token in the
  Developer Hub.
- **An Intercom access token** — created under **Settings → Integrations →
  Developer Hub** inside a private app's **Authentication** section. Intercom
  uses **bearer-token authentication**, so unlike Zendesk or Gorgias there is
  no account email or subdomain to provide.
- **Your Intercom data region** — US (`api.intercom.io`), EU
  (`api.eu.intercom.io`), or AU (`api.au.intercom.io`). Karla routes API calls
  to the host that matches your workspace.
- **A ticket type ID** — the Intercom ticket type new claim tickets are created
  with. This is required before you can enable the integration.

Karla authenticates with your access token only — not your Intercom account
password.

## Connect Intercom for ticket creation

### 1. Create an access token in Intercom

In Intercom, open **Settings → Integrations → Developer Hub** and create (or
open) a **private app**.

Under the app's **Authentication** section, copy the **Access token**.

Name the app something recognizable — e.g. `Karla Resolve Integration`.

:::warning
Treat the access token like a password. Do not share it in email or chat —
enter it only in the Karla portal.
:::

The token needs permission to create tickets and attach tags in your Intercom
workspace.

### 2. Note your data region

Intercom workspaces are hosted in one of three regions. Pick the one that matches
your workspace:

| Region | API host             |
| ------ | -------------------- |
| US     | `api.intercom.io`    |
| EU     | `api.eu.intercom.io` |
| AU     | `api.au.intercom.io` |

If you are unsure, check your Intercom workspace settings or ask your Intercom
admin which region your account uses.

### 3. Find your ticket type ID

Intercom creates tickets against a **ticket type**. Karla needs the numeric ID
of the type new claim tickets should use.

Find it in Intercom under your ticket type settings, or list ticket types via
the Intercom API. The value looks like:

```text title="Ticket type ID"
1234567
```

Enter the numeric ID — not the display name.

### 4. Connect Intercom in the Karla portal

In the [Karla portal](https://portal.gokarla.io/), navigate to
**Settings → Integrations** and select **Intercom**.

Under **API Configuration**, paste your **Access Token** and save it. Karla
stores it in a secret manager and shows only a masked preview afterward.

### 5. Configure integration settings

Once the token is saved, the **Integration Settings** unlock:

| Field                           | Value                                                       |
| ------------------------------- | ----------------------------------------------------------- |
| **Data Region**                 | US, EU, or AU — matches your Intercom workspace             |
| **Ticket Type ID**              | The ticket type new claim tickets are created with          |
| **Admin Assignee ID**           | Optional admin to assign new tickets to                     |
| **Team Assignee ID**            | Optional team to assign new tickets to                      |
| **Tag Admin ID**                | Optional admin used when attaching template tags to tickets |
| **Skip Customer Notifications** | When on, Intercom does not notify the customer on creation  |

Save the ticket type ID, then toggle the integration on. New Resolve claims
will create tickets in Intercom automatically.

:::note
The integration cannot be enabled until a ticket type ID is saved — Intercom
creates tickets against a type, so the ID is required.
:::

:::note
If you do not see Intercom under **Settings → Integrations**, contact your
account manager — the integration may need to be enabled for your shop first.
:::

### 6. Optional settings

One optional setting lives alongside the connection:

- **Ticket templates** — customize the subject, body, tags, and attachments
  per claim reason. See
  [Helpdesk integrations → Ticket templates](./overview#ticket-templates).

## What Karla creates in Intercom

When a customer submits a Resolve claim, Karla opens an Intercom ticket with:

- **Subject and message** mapped from the claim reason and customer notes.
- **Customer** matched or created from the order email.
- **Tags** reflecting the Resolve flow type, resolution preference, and
  shipment phase (configured per shop).
- **Attachments** — claim photos and signatures uploaded to the ticket.
- **Order and shipment context** in the ticket — order number, carrier,
  tracking number, affected line items.

Your agents see a complete ticket without looking up the order elsewhere.

## Troubleshooting

**Cannot enable the integration**

- Save a **Ticket Type ID** first — the toggle stays disabled until one is
  stored.

**Tickets not appearing**

- Confirm the integration toggle is enabled in the Karla portal.
- Confirm the ticket type ID matches a real Intercom ticket type.
- Confirm the **Data Region** matches your Intercom workspace.
- Confirm Resolve is enabled and customers are submitting claims through an
  active Resolve flow.

**Authentication failed after saving**

- Confirm the access token was copied in full — no leading or trailing spaces.
- Confirm the token was created in the Developer Hub and is not expired or
  revoked.

**Wrong Intercom workspace or region**

- Double-check the **Data Region** — EU and US workspaces use different API
  hosts. A mismatched region returns authentication or not-found errors.

**Tags not applied**

- If you use template tags, confirm a **Tag Admin ID** is saved. Without it,
  Karla skips tagging.

## Where to next

- [Helpdesk integrations overview](./overview) — other connection options.
- [Zendesk](./zendesk) — native Zendesk integration setup.
- [Gorgias](./gorgias) — native Gorgias integration setup.
- [Dixa](./dixa) — native Dixa integration setup.
- [Kustomer](./kustomer) — native Kustomer integration setup.
- [Webhooks](./webhooks) — push claim events to a custom endpoint instead.
- [Data processing](../data-processing) — the full claim payload shape.
- [Integration and automation](../integration-and-automation) — auto-refunds,
  routing rules, and custom transformations.
- [Integrate in your shop](../integrate-in-your-shop) — embed Resolve on your
  storefront via the Browser SDK.
