How It Works
A transfer is part of the conversation, not a menu. When the caller asks for a person, or meets a transfer condition you wrote, the agent:- Confirms the destination in one sentence (“I can connect you to our support desk, is that alright?”).
- Says the handoff sentence (“One moment, I’m connecting you now.”).
- Rings the destination while the caller hears the ringing.
- Bridges the two once the person answers, then goes quiet. It’s still one call on your account, with one recording and one webhook.
timeout_seconds, or the line is busy or declines, the agent picks the conversation back up and offers whatever your instructions say to (carry on now, or a callback). Once max_attempts is used up, it stops offering transfers on that call.
The agent picks destinations by label only. It never sees or says the numbers, and it can’t dial the caller’s own number or the number the call runs on.
Transfers work on outbound and inbound campaigns. The person you transfer to sees the campaign’s
from_number as the caller ID. Without one, an outbound call shows the number it was dialled from, and an inbound call shows a TopCalls number, never the number the caller rang.Configure the destinations
Setconfig.transfer on the campaign. Each destination has an id the agent chooses by, a label the caller hears and you get back, a number in E.164, and a when condition, written in the third person, that tells the agent when to pick it.
The block is checked on save and again on every call. Each
when goes through the prompt safety review with the rest of the campaign, so a refused condition blocks the call. A change through PATCH /v1/campaigns/{id} reaches calls queued after it, not ones already queued.
Write the prompt for it
The agent already knows how to run a transfer. Your instructions only say when a person is the right outcome and what to offer if nobody picks up:Read the outcome
When a transfer was attempted, the call object (GET /v1/calls/{id}) and the completion webhook carry two more fields:
A completed transfer sets
disposition to Transferred, so subscriptions to call.completed.transferred fire. duration and the recording cover the whole call, time with the person included, and it’s billed as one call.
The conversation with the person isn’t transcribed. After the handoff sentence, the transcript has only its closing end item, with end_via: "caller".
Limits
- One destination rings at a time.
- The person isn’t briefed before the bridge and can’t accept or decline with a key press.
- Destinations must be plain phone numbers (
+and 7 to 15 digits, no extension) inside the allowed prefixes. SIP addresses aren’t accepted.