# Support handoff

Escalate a conversation from the agent to your support team, with context, when the agent reaches its limits.

Support handoff lets the agent escalate a conversation to your support team when it reaches its limits: the user asks for a person, an issue can't be resolved, or sentiment turns frustrated. The handoff carries a one-line summary of the problem so it arrives with context.

This is distinct from embedding the agent in your product. For that, see [Setup & embed](/user-guides/setup/).

## When it triggers

The agent offers a handoff when:

- The user explicitly asks for a human.
- An issue can't be resolved from Knowledge or actions.
- Sentiment turns frustrated.

## Two ways to hand off

| Mode | What happens | Destinations | Code |
| :--- | :--- | :--- | :--- |
| **Forward** | Foldspace sends the summary and context to your support channel and someone picks it up there. Asynchronous. | [Email](/user-guides/support-handoff/email/) mailbox, [HubSpot](/user-guides/support-handoff/hubspot/) ticket, Webhook | None — server-side, **Offer support handoff** ON |
| **Live handoff** | The agent opens your support widget seeded with the summary and steps aside; the user keeps talking in the same session. | [Intercom](/guides/intercom-handoff/), [Zendesk](/guides/zendesk-handoff/), or any custom support agent | Front-end `support_handoff` handler, **Offer support handoff** OFF |

Any support product with a JavaScript widget can be a live destination — Intercom and Zendesk are walked through in full, and the same pattern works for a custom one.

**Email is the simplest and the usual starting point:** turn one toggle on, point it at an address, done. See [Email handoff](/user-guides/support-handoff/email/).

## What each destination requires

**Email is a Foldspace core tool — no code.** Escalation runs server-side: turn **Offer support handoff** ON in [Style & behavior](/user-guides/building-your-agent/) → Data Access & Handoff, and configure the **Email** integration with a destination address. Foldspace sends the summary and context from there; there is nothing to implement in your front end.

**In-app handoff to Intercom or Zendesk is code, and the toggle stays OFF.** You register a `support_handoff` action handler in your front end; it opens the Intercom Messenger or the Zendesk widget seeded with the agent's one-line summary, and the user continues the conversation there. Leave **Offer support handoff** OFF so escalation runs through your action rather than the built-in ticket channel.

**For Intercom and Zendesk it's one path or the other.** Use the in-app path where you staff live chat, and email where you work asynchronously. The toggle follows from that choice: ON for email, OFF for the in-app code path.

## Enable support handoff

### Email handoff (no code)

Turn **Offer support handoff** ON, point the **Email** destination at an address, and test. Full walkthrough, including how to choose the address: [Email handoff](/user-guides/support-handoff/email/).

### In-app handoff to Intercom or Zendesk (code)

1. Leave **Offer support handoff** OFF in [Style & behavior](/user-guides/building-your-agent/) → Data Access & Handoff.

2. Create the `support_handoff` action so the agent knows when to escalate.

3. Add the action handler in your front end ([Intercom handoff](/guides/intercom-handoff/) · [Zendesk handoff](/guides/zendesk-handoff/)).

4. Test a conversation that should escalate and confirm the Messenger or widget opens with the summary.

## Related

- [Integrations overview](/user-guides/integrations/): all third-party connections.
- [Email handoff](/user-guides/support-handoff/email/): the no-code path, in full.
- [Intercom](/user-guides/integrations-intercom/) and [Zendesk](/user-guides/integrations-zendesk/): destination setup.
- [HubSpot](/user-guides/integrations-hubspot/): CRM sync and the native ticket destination.
- [Style & behavior](/user-guides/building-your-agent/): the toggle that offers a handoff.
