Aditya
03/10/2026, 6:21 AMVapi Support Bot
03/10/2026, 6:22 AMwarm-transfer-experimental mode), and only with certain providers (Twilio, Vapi numbers, or SIP trunks).
Could you confirm which transfer mode you are currently using (blind, warm, or assistant-based warm transfer), and which telephony provider (e.g., Twilio, Vonage, SIP) your system is configured with? This will help me provide the most accurate solution or example for your fallback scenario.
If you are not using assistant-based warm transfer, I can guide you through setting it up for your use case.
Sources:
- [Assistant-based warm transfer](https://docs.vapi.ai/calls/assistant-based-warm-transfer)
- [Call Forwarding](https://docs.vapi.ai/call-forwarding)
- [Call Handling with Vapi and Twilio](https://docs.vapi.ai/calls/call-handling-with-vapi-and-twilio)Aditya
03/10/2026, 6:26 AMAditya
03/10/2026, 6:29 AMAditya
03/10/2026, 6:30 AMVapi Support Bot
03/10/2026, 6:31 AMjs
app.post("/transfer", async (req, res) => {
// Replace with your actual values
const departmentNumber = "+441234567890";
const transferPayload = {
type: "transferCall",
function: { name: "departmentTransferAssistant" },
destinations: [
{
type: "number",
number: departmentNumber,
transferPlan: {
mode: "warm-transfer-experimental",
transferAssistant: {
firstMessage: "Hello, I have a caller for your department. Are you available?",
maxDurationSeconds: 15, // 15-second timeout
model: {
provider: "openai",
model: "gpt-4o",
messages: [{ role: "system", content: "You are the transfer assistant." }]
}
}
}
}
]
};
// Send this payload to Vapi's API endpoint for call control
res.json(transferPayload);
});
This approach uses the built-in fallback: if the department does not answer, Vapi will automatically return the caller to the assistant. See the [assistant-based warm transfer documentation](https://docs.vapi.ai/calls/assistant-based-warm-transfer) for more details.
Source:
- [Assistant-based warm transfer](https://docs.vapi.ai/calls/assistant-based-warm-transfer)Aditya
03/10/2026, 7:09 AMVapi Support Bot
03/10/2026, 7:10 AMwarm-transfer-experimental) can be configured dynamically by returning the correct transferCall payload from your webhook, and does not require setup directly in the dashboard. If your payload matches the documented structure and you are using a supported provider (Twilio), it should work—double-check that your function.name matches the assistant's configuration and that all required fields are present. If the issue persists, review the [assistant-based warm transfer guide](https://docs.vapi.ai/calls/assistant-based-warm-transfer) for payload examples and limitations, and consider reaching out to Vapi support if your configuration appears correct but still fails.
Source:
- [Assistant-based warm transfer](https://docs.vapi.ai/calls/assistant-based-warm-transfer)Shaunak
03/10/2026, 8:17 AM