Use Vapi Squads with the handoff feature to handle AI-to-AI transfers mid-call. This is the correct and scalable way to move from a general intake assistant to a specialist assistant without interrupting the caller or announcing a transfer. Instead of changing the assistantId directly, you trigger a handoff to another assistant inside the same squad. For large setups with 50+ specialists, use dynamic handoffs via the handoff-destination-request webhook so your backend decides which specialist assistant should take over at runtime.
Context is preserved during the handoff. Vapi can automatically pass the prior conversation using contextEngineeringPlan (for example, all messages or the last N messages). If you want the specialist to receive clean, structured inputs instead of raw transcript, you can use variableExtractionPlan during the handoff to pass things like issue type, confidence score, product name, or dates. The destination assistant can immediately continue from that context.
For a silent and seamless user experience, configure a silent handoff. Remove any handoff messages, set an empty firstMessage, and instruct the specialist assistant to continue naturally without greetings or “transfer” language. This makes the transition feel like one continuous assistant. The transferCall tool is mainly for AI-to-human or phone number forwarding and is not the right choice for AI-to-AI routing.
Helpful links:
https://docs.vapi.ai/squads/handoff
https://docs.vapi.ai/squads/silent-handoffs
https://docs.vapi.ai/call-forwarding