transfer operation hands a phone caller to a person at a fixed phone
number. Put it at the end of a tool the model calls when the caller needs a
human. To move the call to another agent, use a handoff
instead.
A complete transfer tool
One argument-free tool per destination: asay, then the transfer, with
disable_interruptions on.
Configuration
destination is frozen into the published tool version. It is never templated
and never chosen by the model, so a caller cannot talk the agent into dialling a
premium-rate number. {{args.number}} is refused at save, and so is a number
that is not already canonical: 4155550101 is refused with the +1… form we
think you meant. For several destinations, build one tool per destination.
Cold and warm
While the caller is on hold their microphone and speaker are off, so nothing is
transcribed or billed for a “hello?” into the ring. Hold time is inside the
call’s duration, recording and bill.
On
warm, the briefing may run 90 seconds after the person answers. The
held caller’s line drops after 120 seconds without audio from them, and the
ring and the briefing both count: the default 30 + 90 lands exactly on 120. If
you raise ringing_timeout, keep it small or the held caller can be dropped.
The person answering sees your workspace’s number, not the caller’s. The
leg to them is dialled from your carrier trunk, which can only present a number
you own; this cannot be set per transfer. Use
warm, or write the caller’s
details where the person will look.When it does not connect
on_failure: continue brings the caller off hold and back to the agent, which
is told one plain-English reason and instructed to say so and keep helping.
on_failure: end_call ends the call as an end_call would.
A carrier status code is never spoken. On a declined
warm transfer, the
person’s own words go to the call timeline, never to the caller.
Writing the tool
- Put a
saybefore thetransfer. There is nomessagefield. You do not needwait_for_playback: the transfer waits for queued speech before it dials. Word it for the mode — “Putting you through now” forcold, “Let me speak to them first and bring you in” forwarm. Promising a briefing before acoldtransfer lands the caller on a stranger. - Turn on
disable_interruptions. The caller hears only ringback for up toringing_timeout, and talking into it would otherwise cut off the line that tells them what happened. - One tool per destination.
transfer_to_billing,transfer_to_salesandtransfer_to_support, each argument-free, beat one tool with adepartmentargument: the model picks a tool more reliably than an enum value, and each destination gets its own description. - The description is the escalation policy. “Transfer to a human” invites the model to escalate at the first difficulty. Say when to use it and when not to, as in the example above.
Where it is refused
Both run outside the turn that asked for the transfer, so the agent could not
finish speaking before the handover.
After the transfer
Once the transfer connects the agent leaves. Talqing’s platform fee and recording stop there; the caller and the person stay connected on your carrier account, and that time is on your carrier’s invoice until either of them hangs up. A bridged call nobody hangs up is ended at the three-hour cap.
Treat
transfer.briefing as a compliance record: it is the only record of what
your agent said about a customer to a third party.
Next
Close reasons
Where
transferred sits among every way a call can end.Handoff operation
Moving the call to another agent instead of a person.
Patterns
The escalation recipe and other complete tools.