> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://poly-ai.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://poly-ai.ferndocs.com/_mcp/server.

# Chat handoff integrations

> Hand off webchat and SMS conversations from your PolyAI agent to a live agent in your CCaaS or CRM.

Use a chat handoff integration to escalate a webchat or SMS conversation from your PolyAI agent to a live agent in your existing CCaaS or CRM. PolyAI continues to proxy messages between the end user and the live agent, so the conversation stays in the same widget the user started in.

> **Note**
>
> All chat handoff integrations are configured from **Integrations** in Agent Studio. The handoff is triggered from a Python tool returning a `handoff` payload, then assigned to the Knowledge topic (or flow step) that should escalate.

## Available integrations

#### [Salesforce](/agent-studio/integrations/chat-handoffs/salesforce)

Hand off to Salesforce Service Cloud Messaging.

#### [Zendesk](/agent-studio/integrations/chat-handoffs/zendesk)

Hand off to Zendesk Messaging through a Conversations Integration.

#### [NICE CXone](/agent-studio/integrations/chat-handoffs/nice-c-xone)

Hand off to NICE CXone Digital using Brand ID and Channel ID.

#### [Amazon Connect](/agent-studio/integrations/chat-handoffs/amazon-connect)

Hand off to an Amazon Connect chat contact flow via `StartChatContact`.

#### [Genesys Cloud](/agent-studio/integrations/chat-handoffs/genesys-cloud)

Hand off through Genesys Open Messaging.

#### [Webex by Cisco](/agent-studio/integrations/chat-handoffs/webex-by-cisco)

Hand off to Webex Contact Center.

## How it works

1. **Set up the integration on the CCaaS or CRM side.** Each platform expects a webhook, channel, or messaging app to be created so PolyAI has a place to deliver the conversation.
2. **Connect from Studio.** Go to **Integrations**, click **Connect** on the relevant tile, and paste the IDs and secrets generated in step 1.
3. **Write a handoff function.** Return a structured `handoff` payload from a Python tool – the payload tells PolyAI which integration to hand off to.
4. **Assign the function to a topic.** Add the tool to the Knowledge topic (or flow step) that should trigger the handoff. When that topic fires, PolyAI announces the transfer, sends the conversation to the live agent, and continues to proxy turns.

## The handoff payload

All chat handoff integrations share the same payload shape. Replace `<integration>` with the integration key (e.g. `salesforce_integration`, `nice_integration`, `amazon_connect_integration`, `genesys_integration`, `zendesk_integration`, `webex_integration`):

```python
def transfer_to_agent(conv: Conversation):
    return {
        "utterance": "No problem, I'll transfer you to a live agent now.",
        "handoff": {
            "text_chat": {
                "<integration>_integration": {}
            }
        }
    }
```

The `utterance` is the message the agent sends to the user immediately before the handoff. The empty object `{}` is where integration-specific parameters go – most integrations accept routing hints such as a queue ID, skill, or department.

> **Tip**
>
> The same conversation continues in the same widget after handoff – PolyAI relays each side's messages through the same WebSocket connection. The end user never has to switch tools or re-authenticate.

## Choosing an integration

| If your live agents work in…       | Use                                                                                                           |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Salesforce Service Cloud Messaging | [Salesforce](/agent-studio/integrations/chat-handoffs/salesforce)                                             |
| Zendesk Messaging                  | [Zendesk](/agent-studio/integrations/chat-handoffs/zendesk)                                                   |
| NICE CXone Digital                 | [NICE CXone](/agent-studio/integrations/chat-handoffs/nice-c-xone)                                            |
| Amazon Connect chat                | [Amazon Connect](/agent-studio/integrations/chat-handoffs/amazon-connect)                                     |
| Genesys Cloud (Open Messaging)     | [Genesys Cloud](/agent-studio/integrations/chat-handoffs/genesys-cloud)                                       |
| Webex Contact Center               | [Webex by Cisco](/agent-studio/integrations/chat-handoffs/webex-by-cisco)                                     |
| Anything else                      | [Contact your PolyAI account manager](/integrations/managed-services/overview) to scope a custom integration. |

Five9 chat handoff is on the roadmap. Talkdesk and other CCaaS providers can be scoped as custom integrations — contact your PolyAI account manager.

## Related pages

#### [Call handoff](/call-handoff/introduction)

Voice (SIP-based) handoff configuration and the handoff context model.

#### [Handoff API](/api-reference/runtime-data/handoff-api/overview)

Retrieve handoff context programmatically for screen-pop or CRM enrichment.

#### [Chat API](/api-reference/runtime-data/chat-api/overview)

Integrate PolyAI into a custom chat surface and observe the `handoff` object.