> ## 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.

# Human Handoff

> Human handoff transfers a live conversation from the AI to a human agent. It happens automatically when the AI decides it cannot resolve the issue, or when the customer explicitly asks for a human.

Human handoff transfers a live conversation from the AI to a human agent. It happens automatically when the AI decides it cannot resolve the issue, or when the customer explicitly asks for a human.

For the full list of configurable behaviors, see [Handoff Settings](/handoff/settings).

## When handoff happens

By default, handoff is triggered in any of these situations:

<CardGroup cols={2}>
  <Card title="Explicit request" icon="user">
    The customer asks to speak with a human agent.
  </Card>

  <Card title="AI decision" icon="robot">
    The AI determines it cannot properly resolve the situation.
  </Card>

  <Card title="Frustration" icon="face-frown">
    The customer shows signs of frustration during the conversation.
  </Card>

  <Card title="Forbidden topic" icon="shield-halved">
    The conversation touches a topic configured for mandatory handoff.
  </Card>
</CardGroup>

Each of these triggers can be tuned or disabled individually. See [Handoff Settings](/handoff/settings).

## Handoff across channels

Handoff works the same way conceptually on every channel — the AI stops responding, a human takes over, and the full conversation history is preserved. The surface differs per channel.

### Web chat

* AI stops responding in the same thread.
* A human agent takes over from the inbox.
* Full history is preserved for the agent and the customer.

You can also listen for the handoff event on the widget and render a custom message, form, or redirect.

```javascript theme={"dark"}
const options = {
  token: 'YOUR_TOKEN',
  onHandoff: (payload) => {
    console.log('Conversation handed off:', payload.summary);
  },
};
```

### Phone calls

* The AI transfers the call to a fallback phone number configured on the phone agent itself.
* Call history and context (including the AI-generated summary) are preserved on the session.

<Note>
  Phone uses a per-agent handoff configuration rather than the org-wide [Handoff Settings](/handoff/settings). The preset levels, office hours, and data collection toggles on that page apply to text-based channels (web, email, WhatsApp, SMS, Slack) — not voice calls.
</Note>

### Email

* The AI assigns complex threads to a human agent.
* A conversation summary and the full thread context are attached.

### Slack

* The AI posts the conversation into your designated Slack support channel.
* Your team replies from Slack and the customer receives the response on their original channel.

### WhatsApp

* The AI stops responding in the same WhatsApp thread.
* A human agent continues the conversation. No additional setup required.

### SMS

* The AI stops responding on the same phone number.
* A human agent takes over the thread seamlessly.

## Next steps

<CardGroup cols={2}>
  <Card title="Handoff Settings" icon="sliders" href="/handoff/settings">
    Configure handoff levels, office hours, data collection, and more.
  </Card>

  <Card title="Forbidden topics" icon="shield-halved" href="/handoff/topics">
    Define topics that always trigger a human handoff.
  </Card>
</CardGroup>
