How it works
- The assistant calls the transfer tool and Telnyx dials the selected target.
- The destination answers. Instead of playing recorded audio, the assistant joins the destination on a private leg.
- The assistant delivers the warm transfer message and asks whether they take the call.
- The assistant finalizes the transfer with the built-in
complete_transfertool:- Accept — the caller and the destination are bridged and the assistant leaves the call.
- Decline — the destination leg is hung up and the assistant returns to the caller with the reason the destination gave.
- If the destination hangs up, or nobody decides within two minutes, the destination leg is dropped and the assistant returns to the caller.
complete_transfer tool is added to the assistant automatically when acceptance is enabled — you do not configure it. If your assistant already has a tool named complete_transfer, acceptance is disabled on that assistant to avoid a name collision, so pick a different name for your own tool.
Configuration options
Acceptance is configured inside the transfer tool, underwarm_transfer_acceptance:
Context modes
The consult is a real conversation between your assistant and the destination, so you choose whether it becomes part of the conversation record:Requirements
- A warm message must always be available. Set
warm_transfer_instructionson the transfer tool, or amessageon every target. Saving an assistant with acceptance enabled and neither of these returns a validation error. When both are present, the target’smessagewins. - Only for
ai_assistant_startconversations. Acceptance does not apply togather_using_ai, Conversation Relay, or web calls. - Single-caller conversations only. If the conversation is in a conference or has more than one invited user participant, the transfer falls back to a regular warm transfer with recorded playback.
Setting up via API
Configurewarm_transfer_acceptance within the transfer tool when creating or updating an assistant.
Ask the destination to accept
Share the consult with the conversation record
Setend_user_target_context_mode to shared when you want the exchange with the destination stored alongside the rest of the conversation:
Give each target its own handoff message
Amessage on a target replaces the message the assistant would compose from warm_transfer_instructions, and satisfies the warm-message requirement on its own:
Combining with voicemail detection
Acceptance works alongside voicemail detection on transfer. When AMD is enabled on the transfer, the consult starts once the destination is identified as a human. If voicemail is detected, the configured voicemail action runs instead — bothstop_transfer and leave_message_and_stop_transfer end the transfer, so no consult takes place and the assistant returns to the caller.
Related resources
- Voice AI Assistant API Reference - Complete transfer tool API documentation, including the
warm_transfer_acceptanceparameters. - Voicemail Detection on Transfer - Detect voicemail on the transfer destination and respond automatically.
- Agent Handoff - Hand a conversation from one assistant to another instead of to a human.
- Attach an AI Assistant to a Call - Start an assistant on a live call with
ai_assistant_start.