Skip to main content
A warm transfer moves a live caller from the agent to a real person, after the agent has gathered who is calling and why. Use it when a request is out of scope, the caller is frustrated, or a rule says a human must take over. The agent stays in control right up to the moment it connects the call. All paths are relative to https://builder.flowyte.com/api/v1.
Authenticate with Authorization: Bearer flowyte_sk_…. Destination numbers are saved in E.164 (e.g. +14155550100); a 10-digit US number is normalized on save.
There are two pieces, and most agents use both:
  • Handoff config on the agent — a default destination plus a “transfer by context” table that routes described situations to specific numbers.
  • A transfer skill — a tool the agent calls mid-conversation to move the caller to a fixed number, which you can gate with a spoken confirmation.

What you’ll use

1

Set the handoff config

The agent’s handoffConfig holds a default transferDestination and a transferRules table. Each rule has a plain-language when the agent matches against, plus a destination. Set warm: true so the agent summarizes the caller and the reason before connecting, rather than a silent hand-off.
The default transferDestination is used whenever a transfer is needed and no rule matches.
2

Add a transfer skill for explicit handoffs

A transfer skill is a tool the agent can call on demand. Its description is what the agent reads to decide when to use it — write it as the condition. Set requiresConfirmation so the agent confirms before transferring, and stakes to tune that gate.
A data-lookup skill can pass a dynamic destination at call time (e.g. route to the rep who owns the account), instead of a fixed number — useful for franchises and large rosters.
3

Publish

Edits change the draft. Phone and chat serve the last published version, so publish to make the transfer behavior live.

Choosing when a transfer fires

  • By context — the when text on each rule and the description on a transfer skill are how the agent decides; keep them specific.
  • On silence — set callControl.onNoResponseAction to transfer so an unresponsive caller is routed to a person instead of being ended.
  • After hours — by default the agent does not transfer to a live person when closed. Set afterHours.allowHumanTransfer and a number to allow it. See After hours.
The call is transferred off-net over the carrier (a blind SIP REFER), with the original caller ID passed through. Verify the destination number is one you control and is staffed during the hours the rule can fire.
Related: Skills · Draft vs published