An agentic warm transfer has two agents. The original agent keeps the caller on hold, and a transfer agent talks to the person at the destination. The transfer agent ends its part with one of two functions:
| Dashboard label | type |
Effect |
|---|---|---|
| Bridge Transfer | bridge_transfer |
Connects the waiting caller to the destination. Hold music stops and both parties hear each other |
| Cancel Transfer | cancel_transfer |
Gives up. The destination leg is removed and the original agent tells the caller |
See Transfer call for how the original agent starts the transfer.
Make an agent a transfer agent#
- Open the agent that will brief the destination.
- Expand Agent Settings and turn on Transfer agent. The note "Bridge Transfer and Cancel Transfer are now available under Functions." appears.
- In the original agent's Call Transfer function, choose Agentic warm and pick this agent under Transfer agent. Only agents with the toggle on are listed.
The API field is is_transfer_agent on the agent (and is_transfer_llm on its Retell LLM).
What the transfer agent knows#
The transfer agent's leg is created as its own call record in the same media room. It starts with these dynamic variables, on top of the original call's request and collected variables:
| Variable | Contents |
|---|---|
original_transcript |
Transcript of the original call |
original_call_id |
The caller's call id |
transfer_destination |
The number being called |
caller_number |
The caller's phone number |
For single and multi-prompt transfer agents, the worker appends the original transcript to the prompt under "Original call transcript". If the transfer agent has no prompt, a built-in prompt tells it to explain who is waiting and why, ask whether the person can take the call, then call bridge_transfer or cancel_transfer.
Tools offered to a transfer agent#
A single or multi-prompt transfer agent is offered only bridge_transfer and cancel_transfer. If you did not add them, the worker adds both automatically with built-in descriptions:
- Bridge: "Connect the original caller now: the person you reached agreed to take the call."
- Cancel: "Cancel the transfer: the person you reached cannot or will not take the call."
Add them yourself under Functions to write your own descriptions. They have no other fields and no While it runs options.
{ "type": "bridge_transfer", "name": "bridge_transfer", "description": "Connect the caller once the accounts manager agrees to take the call." }A conversation-flow transfer agent uses the Bridge Transfer and Cancel Transfer nodes instead.
What happens when it runs#
- The transfer agent finishes speaking.
- It signals the original agent's worker over the room's data channel.
- Its leg ends with
transfer_bridgedortransfer_cancelledas the disconnection reason. - On bridge, the caller and destination are connected and the original agent leaves (
call_transfer). On cancel, the original agent continues with the caller.
If neither tool is called before the transfer's Timeout, the original agent applies On timeout (Bridge the call or Cancel the transfer).