Handover
Moveo allows you to transfer the conversation to a live agent when necessary. This can be useful if the AI Agent does not understand the user's questions or if the user brings up a sensitive topic.
To perform a handover, add the handover action in the dialog. All conversations where the AI Agent has left the chat and have not been assigned to an agent are available in the Live chat menu, under the Unassigned section.
- Dialog
- Chat
- Live chat



Zendesk department routing
Choose which Zendesk department handles the conversation when the handover action is
triggered. To do this, copy the department ID from the Zendesk integration settings and paste it
into the department_routing field of the handover action in the dialog.
| Zendesk Departments | Dialog |
|---|---|
![]() | ![]() |
Facebook Messenger handover
Hand the conversation over to Facebook Messenger inbox by enabling the respective field in the dialog.
Voice handover
When configuring handover for voice agents on Twilio Voice, the active call leg is transferred to a destination you specify in the handover action's settings. Provide either:
- An E.164 phone number (e.g.,
+12025551234), or - A SIP URI (e.g.,
sip:agent@example.com)

Add a Pause action of 1–2 seconds immediately before Handover so the caller hears the AI Agent's last sentence in full before the call is transferred.
Custom SIP headers
When the destination is a SIP URI, you can attach custom SIP headers to the transfer through the Attributes field of the handover action. Each attribute is a key–value pair sent as a SIP header on the outgoing call leg, allowing the receiving system to route or label the call based on context from the AI Agent.
Allowed header names:
- Any
X-*custom header, except headers starting withX-Twilio(reserved by the provider). - The following standard SIP headers:
User-to-User,Remote-Party-ID,P-Preferred-Identity,P-Called-Party-ID.
Headers outside the allow-list are silently dropped before the transfer. The combined size of all header names and values, after URL encoding, must not exceed 1024 characters.
Attributes are ignored when the destination is a phone number — SIP headers only apply to SIP URI destinations.
Example handover attributes for a SIP destination:
| Key | Value |
|---|---|
X-Customer-Id | 12345 |
User-to-User | priority=high;origin=ai-agent |
Limitations
- Web (browser-based) voice calls do not support handover. The transfer is rejected by the provider because a browser-origin call has no caller ID to use on the transferred leg. Gate the
Handoveraction in your workflow so it does not run on browser calls. - Both call legs are billed. The original inbound leg stays open while the new outbound leg to the handover destination is dialled.
- Recording is not stopped before transfer. If the AI Agent has call recording enabled, the recording continues into the transferred portion of the call.
- No automatic retry. If the destination is busy, does not answer, or rejects the transfer, the call drops. There is no built-in fallback — handle this in your brain workflow if needed.
Zendesk voice handover setup
An example of a successful implementation for voice handover is shown below. It uses two separate numbers configured in Zendesk.
To configure these numbers in Zendesk, navigate to Admin settings → Channels → Talk → Lines.
Number configuration
| Number 1: "Forwarding Number" (user entry point) | Number 2: "Agent Number" (handover target) |
|---|---|
This is the primary number the user calls to initiate a conversation.
![]() | This is a separate Zendesk number.
![]() |
Handover flow
-
Call initiated: The user dials the forwarding number (#1)
-
Moveo connects: The Zendesk overflow rule instantly forwards the call to the Moveo Twilio integration. The user begins their conversation with the Moveo voice assistant
-
Handover triggered: When a handover event is triggered (via dialog configuration), the Moveo platform executes the next step
-
Twilio API transfer: Moveo makes a Twilio API call on the active call leg. This API call instructs Twilio to dial and transfer the user to the agent number (#2)
-
Call received in Zendesk:
- If agents are available: The call is routed to the configured department, and available agents are notified to pick up the call
- If no agents are available: The call is dropped. However, Zendesk provides native options to manage this scenario, such as:
- Sending the user to voicemail
- Automatically creating a ticket for the abandoned call
- Offering the user a callback when an agent becomes available



