Danyal A.
06/12/2026, 12:25 PMDanyal A.
06/12/2026, 12:28 PMDanyal A.
06/12/2026, 12:31 PMChiranjeet Mishra
06/12/2026, 12:38 PMrequestStartMessage with blocking: false. Without it, the transfer hangs in an idle state after the agent finishes speaking, waiting for something to trigger the pipeline forward. Speaking a filler word works because it produces a transcription event that unblocks it.
Fix: in your handoff tool config, add this to the messages array:
{
"type": "request-start",
"content": "Please hold while I connect you.",
"blocking": false
}
The blocking: false flag tells Vapi to execute the transfer immediately when the LLM calls the tool, without waiting for silence or user input. Once that's in, the transfer should fire reliably every time.
Let me know if you run into anything after making the update.
Regards,
Chiranjeet
Vapi SupportDanyal A.
06/12/2026, 1:10 PMChiranjeet Mishra
06/12/2026, 1:23 PMtransfers: [], ended as silence-timed-out). The routing agent spoke correctly but the LLM didn't fire the tool.
The culprit is the tool description itself. This part is backfiring:
> "Only use it when instructions explicitly ask you to use the handoff_to_assistant function. DO NOT call this function unless you are instructed to do so."
The LLM reads those restrictions and talks itself out of calling the tool. Replace the description with something direct:
> "Transfer the call to the appropriate advisor based on the caller's need. Call this immediately once the caller's intent is clear."
Also tighten the system prompt from "inform the caller... then IMMEDIATELY invoke" to "In a single response, announce the transfer AND call the handoff_to_assistant tool at the same time. Do not speak separately first."
Tool messages are not required - that's separate from this. The fix is purely the tool description and prompt phrasing.
Regards,
Chiranjeet
Vapi SupportDanyal A.
06/12/2026, 4:57 PMIn a single response, announce the transfer AND call the relevant handoff tool (`handoff_to_service_advisor` or `handoff_to_sales_advisor`) at the same time. Do not speak separately first.
This is the prompt that causes the abrupt transfer issue
Regards,
Danyal A.Chiranjeet Mishra
06/12/2026, 5:11 PMrequestStartMessage on the tool instead.
Here's how to set it up:
On both handoff tools, add this to `messages`:
{
"type": "request-start",
"content": "Great, let me connect you now. One moment please.",
"blocking": false
}
And update both tool descriptions to simply:
> "Transfer the call to the [Sales/Service] Advisor when the caller's intent is clear."
Then in your routing agent prompt, remove any instruction to verbally announce the transfer. Just tell it: "Once you identify the caller's need, immediately call the relevant handoff tool."
With blocking: false, Vapi plays that announcement automatically as the transfer executes - caller hears it, transfer happens reliably, no timing issues.
Regards,
Chiranjeet
Vapi SupportDanyal A.
06/12/2026, 5:39 PMOnly use it when instructions explicitly ask you to use the handoff_to_service_advisor function. DO NOT call this function unless you are instructed to do so.
I am not sure where you are getting this text from, because I haven't added anything like this in the tool message
I will look into creating requestStart message and all, but can you explain, where are you getting the above tool description from?
This is the current system prompt of the routing agent
# Role
You are the call-routing receptionist for Liberty Ford. Your ONLY job: greet, detect Sales vs Service, transfer. Nothing else.
# Rules
- Speak in ONE short sentence. Never explain, diagnose, quote prices, or answer questions.
- Ask at most ONE clarifying question, only if intent is unclear.
- The moment intent is clear, say the transfer line AND call the tool in the SAME turn. Never wait, never ask permission.
# Routing
- SALES → buying, leasing, test drive, new/used car, trade-in, price, financing.
- SERVICE → repair, maintenance, oil change, check engine, recall, appointment, parts.
- Unclear → ask: "Are you looking to buy a vehicle, or get one serviced?"
# Script
1. Open: "Thanks for calling Liberty Ford! Sales or Service?"
2. On Sales → say "Connecting you to Sales now, one moment." → call `handoff_to_sales_advisor` (LF-Sales-Advisor).
3. On Service → say "Connecting you to Service now, one moment." → call `handoff_to_service_advisor` (LF-Service-Advisor).
I tried making it very simple
Regards,
Danyal A.