Configure assistant-based warm transfer
Configure assistant-based warm transfer
Assistant-based warm transfer places the customer on hold while a transfer assistant calls the destination. The transfer assistant can give the operator context, confirm that a person is ready, and then complete or cancel the transfer.
Use this mode when the destination must accept the call or receive context before speaking with the customer. For a direct transfer without an operator conversation, use the transfer call tool with its default blind-transfer mode.
Prerequisites
Before you configure the transfer, prepare:
- A Vapi assistant that handles phone calls
- A destination phone number in E.164 format, for example,
+14155550100 - A private Vapi API key for the curl method
- A publicly accessible MP3 or WAV file if you want custom hold or completion audio
How assistant-based warm transfer works
When the original assistant invokes the transfer call tool:
- The customer hears the configured transfer message and is placed on hold.
- Vapi calls the destination and starts the transfer assistant.
- The transfer assistant speaks with the operator and uses the previous conversation as context by default.
- The transfer assistant calls
transferSuccessfulto connect the parties ortransferCancelto return the customer to the original assistant. - If the destination is busy, unreachable, or not human, the fallback plan determines what the customer hears and whether the call ends.
The transferSuccessful and transferCancel tools are always available to the transfer assistant. You can customize them through the API, but you do not need to add them to a basic configuration.
Configure the warm transfer
Create a reusable transfer call tool, configure a phone-number destination, and add the tool to the original assistant.
Dashboard
curl
Create a transfer call tool
In the Vapi Dashboard, open Tools, click Create Tool, and select Transfer Call. Enter a name and a description that state when the assistant should use the tool.
Add a phone-number destination
Under Destinations, click Add Destination, then select Phone Number. Enter the destination in E.164 format and describe when the assistant should select it.
Select assistant-based warm transfer
Expand Transfer Plan. Under Transfer Mode, select Warm Transfer - Experimental.
The Dashboard exposes the transfer mode, operator message, fallback plan, and summary plan. Use the API to configure a custom transfer-assistant model, prompt, timeouts, voice, hold audio, or completion audio.
Configure transfer behavior
Use these fields to control the transfer assistant and the two call legs.
firstMessageMode also accepts assistant-waits-for-user and assistant-speaks-first-with-model-generated-message. Use the model-generated option when the introduction should adapt to the preceding conversation.
Prompt the transfer assistant
Keep the transfer assistant’s system message focused on the operator conversation. Define when to use each built-in tool:
- Call
transferSuccessfulafter a human operator confirms that they will take the call - Call
transferCancelfor voicemail, a busy signal, no answer, or an operator who declines - Answer questions about the transfer or give a brief customer summary
- Avoid unrelated conversation and complete the decision before
maxDurationSeconds
The transfer assistant receives the previous conversation by default. Set contextEngineeringPlan.type to none when the operator must not receive that context, or use lastNMessages to limit it.
Verify the warm transfer
Place a test call and trigger the transfer. Confirm that:
- The customer hears the transfer message and hold audio.
- The destination receives the call and hears the transfer assistant.
- Accepting the call connects the customer and operator.
- Declining the call or reaching voicemail returns the customer to the original assistant or ends the call according to
fallbackPlan.
In Logs → Call Logs, inspect the original call, destination call leg, transcript, and ended reason. An assistant-forwarded-call ended reason confirms that the transfer was initiated; it does not confirm that the destination answered.
Troubleshooting
Check Logs → API Logs for validation and transfer errors. If Vapi initiated the transfer but the destination never rings, inspect the telephony provider’s call detail records and follow Troubleshoot call forwarding drops.
API reference
The Create Tool API reference documents the public transfer call destination and transfer-plan fields. This guide shows the additional transfer-assistant configuration used with warm-transfer-experimental.