Skip to main content
Transfers and conference are agent actions that move a live phone call to a human or another number. The agent runs them as part of an ability, the same way it runs a workflow or knowledge-base lookup. There are three action types: cold_transfer hands the caller off blind, warm_transfer briefs a human supervisor first and then bridges the call, and conference dials another number into the existing room.
These actions run only on the telephone channel. The async text and email engine skips any voice-only action and logs Skipping voice-only action '<type>' on async text channel. Configure them on telephone agents only; they have no effect on chat or email.

When to use each

TypeWhat it doesUse when
cold_transferTransfers the caller to another number and the agent leaves. No handoff conversation.You want a fast, unattended handoff (for example, route to a department line).
warm_transferHolds the caller, dials a human supervisor, the AI briefs them, then merges both into one call.A human needs context before taking the caller.
conferenceDials another number into the current room so everyone is on one call.You want to add a participant without removing the agent.
Add these as actions on an ability. See Abilities and actions for how actions attach to abilities, and Agent assist for live human-in-the-loop monitoring.

Cold transfer

The agent transfers the caller to transfer_number and the call status becomes transferred. Conversation history is saved at transfer time.
FieldTypeDefaultDescription
transfer_numberstringrequiredThe number to transfer the caller to. Supports template variables.
displayed_numberenumtransferee_numberWhich caller ID the transferee sees. One of transferee_number or agent_number.
conditionstringnoneOptional expression; the action runs only when it evaluates true.

Warm transfer

The agent places the caller on hold with music, creates a separate supervisor room, dials the human at transfer_number, and briefs them using supervisor_instructions plus the prior conversation. When the supervisor accepts, the agent merges them into the caller’s room (bridge) and resumes audio. If anything fails or the supervisor declines, the caller is taken off hold and the agent speaks the matching message.
caller ──┐
         │  on hold + music         supervisor room
         ▼                          ┌──────────────┐
   [ AI agent ] ── dials supervisor ─► human joins  │
         │                          │ AI briefs them│
         │  on accept: merge ◄──────┴──────────────┘

   caller + supervisor bridged in one call
FieldTypeDefaultDescription
transfer_numberstringrequiredThe supervisor number to dial. Supports template variables.
queue_timeoutint30Seconds to wait for the supervisor to join and be connected to the customer.
hold_music_urlstringsample mp3Hold music file/URL (.wav/.mp3). Falls back to a tone if it cannot be played.
supervisor_instructionsstringsee belowHow the AI briefs the supervisor before connecting them to the caller.
on_transfer_failed_messagestringsee belowSpoken to the caller when the transfer fails.
on_successful_transfer_messagestringsee belowSpoken when the supervisor is connected.
on_customer_disconnected_messagestringsee belowSpoken to the supervisor when the caller has hung up.
on_supervisor_declined_messagestringsee belowSpoken to the caller when the supervisor declines or is unavailable.
conditionstringnoneOptional expression; the action runs only when it evaluates true.

Default messages

These defaults ship with every warm transfer. Override any of them per action.
FieldDefault text
supervisor_instructions”Brief the supervisor on who the caller is, the context of the conversation, and the handoff goal.”
on_transfer_failed_message”Sorry, I couldn’t connect you right now. Can I take a message or try another number?”
on_successful_transfer_message”Connecting you now. Please stay on the line.”
on_customer_disconnected_message”The caller has disconnected.”
on_supervisor_declined_message”They’re unavailable right now. Would you like me to take a message or schedule a callback?”
The supervisor_instructions and the caller-facing messages are all rendered as templates, so you can reference conversation variables in them.

Conference

The agent dials conference_number into the current room and waits for it to answer, keeping the agent and existing participants on the call.
FieldTypeDefaultDescription
conference_numberstringrequiredThe number to dial into the conference. Supports template variables.
conditionstringnoneOptional expression; the action runs only when it evaluates true.

Abilities and actions

How actions attach to agent abilities.

Telephony overview

Phone numbers, trunks, and call routing.

Agent assist

Live human-in-the-loop monitoring and takeover.