call_transfer tool transfers an active voice call to another destination from within an agent flow.
Unlike ESCALATE, which routes a conversation through the platform’s human escalation workflow, call_transfer performs a direct telephony transfer. Use it when your agent needs to hand the active call to another SIP or PSTN destination without creating a human escalation task.
When to use
Usecall_transfer when you want to:
- Transfer the active call to a SIP endpoint or to a PSTN number.
- Route calls programmatically based on business logic.
- Integrate with external contact-center or telephony systems.
ESCALATE instead.
Syntax
How it works
- The workflow resolves the appropriate destination for the current call.
- The runtime populates the configured SIP URI template using the returned routing values.
- Before initiating the transfer, the resolved destination is validated against the configured allow list.
- If validation succeeds, the call is transferred.
- If destination resolution or validation fails, the transfer is not attempted, and the flow follows the ON_FAILURE path.
: Dynamic SIP routing supports only destinations that have been explicitly configured in the project’s approved authorities. If the resolved destination cannot be validated, the transfer fails, and the configured failure handler is invoked.
Passing custom SIP headers
When using SIP transfers, you can attach custom SIP headers via the headers parameter oncall_transfer.
For details, see Pass Custom SIP Headers on Voice Transfer.
Examples
Example 1: Transfer to a configured SIP destination Use a project-configured SIP destination when you want all calls to transfer to the same endpoint.sipTransferId from the agent configuration before initiating the transfer.
Example 2: Route calls dynamically
Use a workflow to determine the transfer destination at runtime. This approach is useful when calls must be routed to different queues or contact-center destinations based on customer attributes such as region, language, or business unit.
call_transfer vs ESCALATE
call_transfer is an immediate, stateless telephony handoff with no record kept once the call leaves. ESCALATE, on the other hand, creates a trackable HumanTask (queueing, priority, SLA, optional ITSM integration) and works the same way for both voice or digital channels.