How to transfer between AI assistants mid-call (AI...
# support
k
Hi Vapi team, I'm building a call intake system where I need to route callers to specialized AI assistants based on their issue classification. Current Flow: Call starts with "Emma" (general intake assistant) Emma asks: "What happened?" User describes their issue (e.g., "I need help with a product liability case") Emma calls a tool to classify the issue → returns "Product Liability Type A" with 95% confidence [THIS IS WHERE I NEED HELP] I want to transfer to "Product Liability Specialist" assistant Specialist continues the conversation and collects specific case information Requirements: Silent/seamless transfer (user doesn't hear "transferring you now...") Specialist has context of what was already discussed Specialist is a different AI assistant with different prompts, tools, and behavior This is AI-to-AI transfer, NOT AI-to-human My Questions: Q1: Which Vapi feature should I use for this? assistant-based warm transfer? (seems to be for AI-to-human) transferCall tool? (seems to be for phone numbers) Dynamic call transfers via controlUrl? Something else? Q2: Can I change the assistantId mid-call? Via Call Control API? Via tool response? Via webhook response? Q3: How do I pass context to the new assistant? Does Vapi automatically pass the transcript? Should I use system messages? Should I pass custom metadata? Note: I need to support 50+ different specialist assistants, so a scalable solution would be ideal. Thanks!
my assistantId = 6dac49b9-d156-41c3-ba1a-02abf18b31af
h
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
k
@Hilal Aziz thank you, really preciate, i ll start
s
Did you resolve the issue?
Happy to help if not yet done
c
we will be marking this as resolved.