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

# Web (Messenger)

> Route Intercom Messenger conversations through OpenCX AI with handoff to your Intercom inbox.

Messenger conversations are the primary channel for the Intercom integration. When a customer opens Intercom's <Tooltip tip="Intercom's embedded chat widget. Lives on your website or app and surfaces conversations in the Intercom inbox.">Messenger</Tooltip> and sends a message, OpenCX picks it up via webhook, generates an AI reply, and posts it back as the AI admin. If the AI can't resolve, it hands off to your team in the same Intercom thread.

## Pre-requisites

<Warning>
  **Connect your Intercom workspace first.** The AI has nothing to respond to until the webhook is active — start with [Connect Intercom](/integrations/intercom/connect) and come back here.
</Warning>

* **Intercom connected and webhook active** — see [Connect Intercom](/integrations/intercom/connect).
* **Default AI admin selected** — see [Connect → Select the default admin](/integrations/intercom/connect#setup).

## How conversations land in Intercom

```mermaid theme={"dark"}
flowchart LR
  A[Visitor opens Messenger] --> B[AI replies in Messenger]
  B --> C{AI can resolve?}
  C -- Yes --> D[Conversation resolved]
  C -- No --> E[Handoff note + unassign]
  E --> F[Rep picks up in Intercom inbox]
  F --> G[Rep replies — lands in Messenger]
```

## Setting up

<Steps>
  <Step title="Confirm the Messenger is live">
    Open a page where Intercom's Messenger is installed and send a test message. You should see the AI respond within a few seconds.
  </Step>

  <Step title="Confirm the webhook is receiving events">
    In your Intercom Developer Hub, check the webhook activity log. Recent deliveries should show `2xx` responses. If you see failures, re-copy the webhook URL from [Settings → Integrations](https://platform.open.cx/settings/integrations).
  </Step>

  <Step title="Trigger a test handoff">
    Send a message like *"I want to talk to a human"* in the Messenger. The AI should hand off the conversation — you'll see an internal handoff note and the conversation moved to your team's queue.
  </Step>

  <Step title="Verify the rep reply loop">
    Pick up the handed-off conversation in your Intercom inbox. Reply as an agent — the message should land in the visitor's Messenger within a couple of seconds.
  </Step>
</Steps>

<Tip>
  If the AI doesn't reply, check that the conversation is assigned to the AI admin and that [Autopilot](https://platform.open.cx/settings/autopilot) is enabled for the web channel.
</Tip>

## What the rep sees

* The conversation appears in their **Intercom inbox** like any other Messenger chat.
* The full AI-to-visitor transcript is already in the thread — no separate tool to check.
* An **internal handoff note** with summary, sentiment, and language.
* `opencx_handed_off` tag on the conversation for filtering views and reports.
* Replies typed in the Intercom inbox land back in the visitor's Messenger within a couple of seconds.

## Channel-specific details

<AccordionGroup>
  <Accordion title="Initial processing delay" icon="clock">
    OpenCX waits approximately **4 seconds** after the first message before processing. This gives Intercom time to finalize the conversation assignment and apply any automation rules. Subsequent messages in the same conversation are processed immediately.
  </Accordion>

  <Accordion title="Inline images from Messenger" icon="image">
    Images customers send in Messenger are extracted from the HTML body, downloaded from Intercom's CDN, and uploaded to OpenCX storage. The AI can reference them in its reasoning. If an image download fails, a placeholder attachment is added instead.
  </Accordion>

  <Accordion title="Custom attribute delay" icon="hourglass">
    If your Intercom workflows set custom attributes on conversations after creation (e.g. via bots or rules), configure the **custom attribute delay** in [settings](/integrations/intercom/connect#settings-reference). OpenCX re-fetches attributes after the configured delay to capture values set by your automations. Max 10 seconds.
  </Accordion>

  <Accordion title="Outbound automations are ignored" icon="filter">
    Conversations initiated by Intercom outbound messages, templates, or bots (where the source is not `customer_initiated`) are skipped. This prevents the AI from responding to your own marketing automations.
  </Accordion>
</AccordionGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Email channel" icon="envelope" href="/integrations/intercom/channels/email">
    Email conversation specifics on top of the shared setup.
  </Card>

  <Card title="Connect Intercom" icon="plug" href="/integrations/intercom/connect">
    Credentials, webhook, and admin selection.
  </Card>

  <Card title="Intercom overview" icon="intercom" href="/integrations/intercom/overview">
    What else the Intercom integration covers.
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/integrations/intercom/troubleshooting">
    AI not replying, webhook errors, handoff not firing.
  </Card>
</CardGroup>
