> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/integrations/helpdesks/intercom.md).

# Intercom

Invite your AI teammate into Intercom so it replies to conversations in your team's tone, tags and routes the rest, and learns from your help center, macros and past conversations.

Intercom conversations tend to run more casual than a typical support ticket, and your AI teammate learns that tone. It reads your help center, your macros and your past conversations, so it already sounds like your team before it touches a real conversation. Then it picks up conversations the way you tell it to: writing replies for a human to check, answering the routine ones itself, tagging and routing the rest.

You stay in control the whole way. Nothing runs until you create an automation. For each action you then choose: run on its own, ask you first, or stay off.

In this example the agent read the conversation and two of your macros, then drafted the reply as an internal note.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-23b90d5c2bb60ca17afc73984000eaf078516aec%2Fintercom-hero.png?alt=media" alt="An Intercom inbox conversation about upgrading to the Growth plan, with eesel AI posting an internal note that drafts the reply for review after reading the conversation and two macros"><figcaption><p>Your agent works inside your Intercom inbox, reading the conversation and drafting the reply before anything reaches the customer.</p></figcaption></figure>

## Quick start

{% stepper %}
{% step %}

### Ask your agent to connect Intercom

Open the chat in your dashboard and ask it to connect Intercom. It lays out the options and asks for whatever it needs. Prefer to click? **Integrations** in the left sidebar has the same options.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-42bb576885ed331feaa65e2ada6df056e7a06084%2Fintercom-connect-chat.png?alt=media" alt="The dashboard chat where the user asks to connect Intercom and the agent lays out the Quick start and Full connection options"><figcaption><p>The agent offers two ways to connect Intercom.</p></figcaption></figure>
{% endstep %}

{% step %}

### Choose Quick start or Full connection

* **Quick start.** Give your public help center URL (for example `https://intercom.help/your-company/en`) and it reads your articles. No sign-in, but no conversations, macros, triggers or actions.
* **Full connection.** Your agent sends you a link to approve in Intercom, and everything unlocks: past conversations and macros as knowledge, triggers, and actions.

Start with either. Moving to a full connection later keeps your help center and adds past conversations, macros, triggers and actions.

<details>

<summary>Connecting more than one Intercom account</summary>

You can connect several Intercom accounts to one workspace. Connect each one the same way. When more than one is connected, your agent asks which account you mean, or you name it in the request. Each automation belongs to one account.

</details>
{% endstep %}

{% step %}

### Approve it in Intercom

Your agent hands you a link. Open it and you land on Intercom's own authorize screen.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-4f8cc452856a2bfad12c1a8c099b50b27e295c7c%2Fintercom-approval-link.png?alt=media" alt="The dashboard chat showing the approval link for the Intercom full connection, with the agent explaining what happens after approval"><figcaption><p>The agent posts the approval link in the chat.</p></figcaption></figure>

Intercom names the app. It lists what the app can read and do, from conversations and contacts to tags and tickets. Review it and approve. The window closes itself.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-df74c65a8d8a7a815910a69641b11b981816927b%2Fintercom-authorize.png?alt=media" alt="The Intercom authorization screen listing the access eesel is asking for, with Cancel and Authorize access buttons"><figcaption><p>The Intercom approval screen, listing the access eesel asks for.</p></figcaption></figure>

{% hint style="info" %}
**If the app shows as Airbot.** Airbot is the name eesel's app is registered under in Intercom, so that's the name Intercom shows you. The permissions are the same.
{% endhint %}

This approval is the one step a person has to do in the browser. If an AI agent is doing the setup for you, it hands you the link and waits.
{% endstep %}

{% step %}

### Check what it can read

Back in the dashboard, **Integrations > Intercom** shows the connection and its sources, each with its own toggle. Help Center shows 0 documents if your Intercom plan has no help center, or you have not published one. Macros and past conversations still sync. From a terminal, `eesel status` lists the integration as connected with its source counts.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-eabc681c91f474431dacb6b2095c06d17fda222f%2Fintercom-integration-page.png?alt=media" alt="The connected Intercom integration page in eesel, listing Help Center, Macros and Past Conversations as sources with counts and toggles"><figcaption><p>Each source has its own toggle and its own document count.</p></figcaption></figure>
{% endstep %}

{% step %}

### Create your first automation

Connecting alone does not start your agent. It needs an automation first. Tell it what to handle and it creates an [automation](/automations-and-schedules/automations-and-schedules.md). An automation is an Intercom trigger plus instructions. In the instructions you describe which conversations it should handle and what to do with them. It leaves the rest alone.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-23ef7c53329622f05f7902339ef12626a4c9868f%2Fintercom-automation-chat.png?alt=media" alt="The dashboard chat where the user asks for internal-note reply drafts on every new conversation, and the agent reports the trigger and action it enabled"><figcaption><p>Ask in chat for the automation you want, and the agent builds it.</p></figcaption></figure>

It shows up on your Automations page, switched on and ready. From a terminal, `eesel automations` lists it as on.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-3624363de692ad1281a2a93361f7f0017d7ecd47%2Fintercom-automation-live.png?alt=media" alt="The Automations page in eesel with the Intercom rule listed and toggled on"><figcaption><p>The new automation on your Automations page, switched on.</p></figcaption></figure>

Open the automation to see or change what it does. The trigger event is fixed when the automation is created. So a new automation is required for each different trigger event.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-f5b3393e0b41b6ca93467d1d043158c6f84d7202%2Fintercom-automation-editor.png?alt=media" alt="The automation editor showing its name, the Intercom event it runs on, and the instructions telling the agent to draft a reply as an internal note"><figcaption><p>The automation editor, where you change the instructions it follows.</p></figcaption></figure>
{% endstep %}

{% step %}

### Check automation work in Intercom

Open Intercom and look at the next conversation that comes in to see what the automation did there. In this example it left a drafted reply as an internal note, signed by eesel AI, for a teammate to review and send.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-178e726e721d0efe3b3e0c0f8366f02e386066b1%2Fintercom-note-on-conversation.png?alt=media" alt="An Intercom conversation where eesel AI has left its drafted reply as an internal note, ending with a line saying it was left by eesel AI"><figcaption><p>The drafted reply waiting as an internal note on the conversation.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**From Claude Code, Cursor or a terminal.** The same setup works as commands: `eesel login`, then `eesel integrations connect intercom` (a person approves it in the browser; if the receipt has no link, ask `eesel chat` for one), `eesel integrations download start` to copy your sources in, and `eesel automations` to see and switch on the automations. Trigger keys for this page are in the Triggers table below. Full command reference: [The eesel CLI](/apis-and-developer-resources/cli.md). Step-by-step: [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md). From an MCP client: [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).
{% endhint %}

## Sources, triggers and actions

### Sources

Sources are what it learns from:

| Source                 | Description                                                                                                                                                               | Requires                       |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| **Help Center**        | Your published Intercom help center articles                                                                                                                              | Quick start or Full connection |
| **Macros**             | Your team's saved replies. Choose which ones it learns from                                                                                                               | Full connection                |
| **Past Conversations** | Your past Intercom conversations. The first import takes closed conversations from the last 90 days, up to 1,000 of them. Ask your agent, or set a filter, to import more | Full connection                |

Every other integration on the agent is also a source, so an Intercom reply can draw on Confluence, your website, and your files at once. See [Integrations](/integrations/overview.md).

### Triggers

Triggers are the Intercom events an automation can run on:

| Trigger                                     | Fires when                                                     | Best for          | Key                             |
| ------------------------------------------- | -------------------------------------------------------------- | ----------------- | ------------------------------- |
| **When a customer sends a message**         | A customer sends any message, on a new conversation or a reply | Full automation   | `intercom_conversation_replied` |
| **When a tag is applied to a conversation** | A tag is added to a conversation                               | Tag-based routing | `intercom_conversation_tagged`  |
| **Call @eesel in an internal note**         | A teammate mentions @eesel in an internal note                 | On-demand help    | `intercom_eesel_mentioned`      |

Beyond the instructions every automation has, Intercom triggers can also filter by **tags**: limit to conversations carrying any of a set of tags, exactly that set, or exclude them. Tag matching ignores capitalization, and a tag renamed in Intercom needs updating on the trigger too.

### Actions

Actions are what it can do, each set to run on its own, ask you first, or stay off:

|             | Action                                                        | What it does                                                                                                                                                                    |
| ----------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Respond** | Send reply                                                    | Sends a reply to the customer                                                                                                                                                   |
|             | Leave internal note                                           | Adds a private note only your team sees. Start here: the agent drafts, a human sends. Every note ends with a short "Left by eesel AI" line linking to the run in your dashboard |
|             | Draft reply                                                   | Writes a reply and holds it for a person to approve. Nothing reaches the customer until someone approves it in the dashboard                                                    |
| **Manage**  | Add tags                                                      | Adds tags to the conversation                                                                                                                                                   |
|             | Assign to teammate / Unassign                                 | Assigns the conversation, or returns it to the queue                                                                                                                            |
|             | Close conversation                                            | Marks the conversation as closed                                                                                                                                                |
|             | Snooze conversation                                           | Pauses the conversation until a time you pick. It comes back then, or as soon as the customer replies                                                                           |
|             | Update conversation                                           | Changes attributes like status or title                                                                                                                                         |
| **Look up** | Read conversation / Search conversations / List conversations | Reads and finds conversations                                                                                                                                                   |
|             | Get conversation attributes / Get ticket attributes           | Reads conversation and ticket attributes                                                                                                                                        |
|             | Look up customer / Get contact attributes                     | Finds a customer and reads their custom attributes, like plan tier                                                                                                              |
|             | Find people by email or domain                                | Finds contacts and returns the IDs other actions need                                                                                                                           |
|             | List teammates and teams                                      | Lists teammates and teams, with the IDs assignment needs                                                                                                                        |

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-fe86a458102f616433d28e45e7e82b54aa7c588d%2Fintercom-approval-card.png?alt=media" alt="The eesel activity feed showing a reply the agent prepared for an Intercom conversation, with Approve, Always Allow, and Deny buttons underneath"><figcaption><p>With an action on approval, the agent prepares the full reply and waits. Approve it, always allow that action from then on, or deny it.</p></figcaption></figure>

## Troubleshooting

<details>

<summary>Agent not responding to conversations?</summary>

Check the automation is enabled on the agent's **Automations** page, the Intercom connection is still authorized, and at least one action is enabled. If you set a tag limit on the trigger, check it isn't excluding the conversations you expect. Internal teammate messages don't count as customer messages.

</details>

<details>

<summary>Macros or Past Conversations greyed out?</summary>

These sources need a full connection. If you connected with Quick start (help center URL only), switch to a full connection to unlock macros, past conversations, and actions.

</details>

<details>

<summary>Connection failing, or the setup form keeps reappearing?</summary>

Make sure you have admin or owner rights in Intercom, then re-run the connection and grant every requested permission; a dropped permission leaves the connection incomplete.

</details>

<details>

<summary>Help center not syncing?</summary>

Make sure your help center URL is correct and publicly accessible, and that articles are published rather than drafts.

</details>

## FAQ

<details>

<summary>How do I keep a human in the loop?</summary>

Two ways, and you can use both. Turn on **Leave internal note** instead of **Send reply**, so the agent writes a private note your team reads, edits and sends. Or turn on **Draft reply**, which writes the reply and holds it until a person approves it. Or set any action to ask you first, so the agent shows you exactly what it wants to send and waits. Start with internal notes, then move to sending replies once you're happy. When an action is set to ask you first, the prepared reply shows up in the dashboard with three buttons: Approve runs it once, Always allow stops asking for that action, and Deny discards it.

</details>

<details>

<summary>Does connecting Intercom start replying to customers automatically?</summary>

No. Connecting only gives your agent access to your sources. It won't act until you enable a trigger and an action, so you can test with a human in the loop first.

</details>

<details>

<summary>Can I limit which conversations the agent handles?</summary>

Yes, two ways that stack: describe the conversations you want in the automation's instructions and it skips the rest. Or use tags: limit **When a customer sends a message** to tagged conversations, or use **When a tag is applied to a conversation** so the agent only acts once someone tags it. The automation's activity shows every conversation it skipped, with the reason.

</details>

<details>

<summary>Can I train the agent on past conversations and macros?</summary>

Yes, with a full connection. Toggle the Past Conversations and Macros sources and choose which ones it learns from. Past conversations are what teach it Intercom's shorter, more casual reply style.

</details>

<details>

<summary>Can it see screenshots and attachments?</summary>

Yes. When a customer attaches an image or a PDF, a screenshot or a receipt for example, your agent reads it along with the conversation. It looks at up to five attachments per turn. Videos, zip files and other formats are ignored.

</details>

<details>

<summary>Why does it wait a moment before replying?</summary>

On a customer's first message your agent waits about 15 seconds before it acts, and about 5 seconds on follow-ups. Each new message restarts the wait. This gives your Intercom workflows time to finish tagging and routing, and lets a customer who is still typing finish, so your agent answers the whole message once instead of in pieces.

</details>

<details>

<summary>Whose name do replies appear under?</summary>

Replies and internal notes post as the Intercom teammate the connection was approved with, which is usually the eesel AI seat you set up. To change the name customers see, change that teammate's name in Intercom.

</details>

<details>

<summary>How is this billed?</summary>

Pay-as-you-go: a conversation your agent handles is one task, however many replies happen on it, and chats you run yourself from the eesel dashboard are free. See [Pricing](/pricing/overview.md) for rates, the annual commitment, and Enterprise.

</details>

## Related pages

* [Helpdesk](/use-cases/helpdesk.md) for the job your teammate takes on in a ticket queue
* [Automations and Schedules](/automations-and-schedules/automations-and-schedules.md) for triggers, instructions and schedules
* [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md) for setting each action to run on its own, ask you first, or stay off
* [Integrations overview](/integrations/overview.md) for how sources, triggers and actions fit together
* [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eesel.ai/integrations/helpdesks/intercom.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
