URGENT - Call Transfers Not Working
# support
f
We are experiencing a large number of calls not being forwarded or transferred. This is an urgent matter - current on a Live Assistant for a Client which is disrupting customer experience. We cannot identify how this is happening - can we please have assistance immediately. Example 1 Call 1 does not transfer: 5fef2b79-c8b3-4095-8c7a-636076e3e64b Call 2 transferred: 40007e51-2e24-4ec1-b2ae-c73c1c32ab51 Example 2 Call 1 does not transfer: 47d40e92-cce4-4285-9197-8233e756b0fa Call 2 does not transfer: 9e319b2d-0191-4860-a5ea-10dad530eb99 Call 3 transfers: e05ee6c2-48c1-4479-82b8-9bfbb8f5d686
v
The transfer for your calls is not working due to a knowledge base issue. The knowledge base assumes that some user input is not part of the system prompt and invokes it, which ultimately prevents call forwarding from working. To resolve this issue, we can use custom tools to invoke the knowledge base as a safer and more effective option, especially if an urgent fix is required.
f
Hi @Shubham Bajaj , we have our call forward instructions for the Assistant in the prompts not the knowledge base so I am not quite understanding the issue relating to the knowledge base and your suggested solution. Could you please explain further into this?
Hi @Shubham Bajaj , we have another example of this happening - Call ID: 12b64344-49f8-4bf6-a1cc-7a00bae5a1c0
Are you able to please provide more information on the solution you provided so we can look into this asap.
v
As of now, all of your user messages are routed to KB, which then forwards KB Content to the model for generating the response. This process causes the model to generate the response, but it does not call the required tools, resulting in call failures.
You can attempt to revise the system prompt and ensure that not every user query is routed to Knowledge Base (KB). Another alternative is a tool-based KB where you create a custom tool for creating the KB and then use it to invoke the KB.
Also I suggest trying doing two-three calls without KB and then you will notice the difference. Let me know your thoughts on this.
f
Hi @Shubham Bajaj thanks for your explanation. So i can understand this better and please correct me if I'm wrong: - as default, are all queries routed to our KB content automatically because we have our Vapi assistant connect to Trieve KB in settings? - to make certain queries __not be routed to KB__, do we need to do this through prompting? Are you able to provide what prompt we can use and do we add this specific prompt to all queries/scenarios in our prompts? - for your alternative suggestion on a tool-based KB, do you have any guides specific for this and connecting with Trieve? Or any information that can help us undersand and create this set up? We've also done many tests on this plus have this Assistant live right now. The assistant transfers many calls successfully but we continuously have a number of calls where Assistant says she is going to transfer the call and the transfer does not go through for some reason. The assistant "resets" in conversation and the customer needs to ask to be transferred again (sometimes multiple times). Here is another call from just yesterday callID: 2281f2ce-d32a-4da0-9aa7-7b5b59ea8ae1 Timestamps: - 00:33 Assistant does not transfer customer after they clearly state "yes" - 00:38 Assistant says end call speech (should not say this, it should be transferring call) - After this, Assistant & Customer go in loop of conversation and customer needs to ask a number of times to get transferred through (assistant eventually transfers at end but after much back and forth)
v
> - as default, are all queries routed to our KB content automatically because we have our Vapi assistant connect to Trieve KB in settings? Not only because of Assistant KB config but mostly because of your system prompt. > to make certain queries not be routed to KB, do we need to do this through prompting? Are you able to provide what prompt we can use and do we add this specific prompt to all queries/scenarios in our prompts? There is no generic solution to it, if your prompt lacks the context for user query then LLM will get to KB for the content to generate the response. It's more of trial and error I suggest reading about similarity search on this. > - for your alternative suggestion on a tool-based KB, do you have any guides specific for this and connecting with Trieve? Or any information that can help us undersand and create this set up? A tool-based setup offers more control and accuracy. Check out this step-by-step guide:

. The results are amazing! Read more about model-assisted generation here:
s
@firefly_0206 regarding your another issue can you put a #1211483291191083018 ticket(with 1 or 2 more call IDs) because I don't think it's right to mix up context here.
@firefly_0206 Sorry for the delay in responses.
f
Hi @Shubham Bajaj , following up on this issue - This is Urgent. We've had another Call Transfer not work - similar to the other examples. I'm certain this doesn't have anything to do with the query being routed to KB because the Assistant is saying the correct script and understanding the context of the call (so our Prompts are OK). It seems as though the call transfer is not triggering from a technical aspect when the Assistant is trying to transfer? **I can see in the Analysis it says: **The call was not fully resolved as attempts to transfer him were unsuccessful. The call ended with the AI assistant apologizing and offering to try transferring again. Problem-Solving: 2/10 The AI failed to adapt when the transfer didn't work and didn't offer alternative solutions. Efficiency: 2/10 The call was inefficient with multiple failed transfer attempts and no resolution. *How can we find out why the call transfer failed? * CALL ID: 0afdcea1-1f0c-4594-a1c9-dc67007af08d What went wrong: 00:33 Call did not transfer after customer giving a clear "Yes" and Assistant saying she is going to transfer the call What went wrong: 01:44 Assistant tried to transfer customer again but it did not work - call ended by Silence Timed Out What we expect to happen: The Assistant to transfer customer to the allocated number
@Shubham Bajaj following up on this again. We've had another 3 calls today from a customer where transfer did not go through successfully. We are urgently needing to understand this issue ASAP for prompt solution as we are getting these types of calls each day now for two weeks. All calls have Ended Reason - Silence Timed Out. Can the team please help us understand this issue? Call 1: cf725280-b5c0-42b0-b295-b680aa6a7d9d Call 2: 11575049-293b-4c62-95db-1140266098ac Call 3: df735888-0304-4cb0-8a8b-e98c0f9c377d
s
@firefly_0206 looknig into it.
f
@Shubham Bajaj any update on this?
Hi @Shubham Bajaj , following up on this issue - do we have any update?
s
@firefly_0206 for all of these calls the transfer call function was not triggered.
v
To help track down this issue, could you share: - When exactly this happened (the timestamp) - What response you expected to get - What response you actually got instead This would really help us figure out what went wrong!
@firefly_0206 marking your ticket as priority item.
f
Yes, we understand the call to transferCall function was not triggered - but we don't understand why as customers are giving a clear "yes" to be transferred through. Are you able to help us understand why the trigger is not happening? This is still an ongoing issue currently on Live Assistant
Another example below from today - Can we have urgent action on this as we've reached out 3 weeks ago and issue is continuous on a live Assistant. We haven't received any real progress or solution with this. Call ID: 2be1fb41-b6cc-46fe-afa6-c5786de10e31 When exactly this happened (the timestamp): 00:23 - 01:42 What response you expected to get: Assistant to transfer call after confirmaton from Customer What response you actually got instead: Assistant to did not transfer call. The call continues on from 00:23 - 01:42 with no transfer after customer asking several times. This raises major concerns - Customers are having a negative experience and costings are much higher as calls are going longer when they shouldn't be. This example shows that this call should have only taken 23 seconds but took an entire 01:42 because of the failed call transfer.
@Shubham Bajaj can we please have an update on this - as mentioned a few times, this is continuously happening on a Live Asisstant.
v
Hey Beck, I’ve done a deep dive on this, and as mentioned, the LLM itself isn’t firing the function. The issue seems to stem from unclear transfer instructions in an already high-token prompt. There are a few inconsistencies with the transfer instructions. Some steps mention silent transfers, while others require verbal confirmation before transferring. It’s also unclear when specific individuals (e.g., Duty Manager) should be contacted, and whether transfers need to be confirmed with the caller after they’ve been made. To resolve this, the transfer instructions should be standardized, ensuring consistency between silent and verbal transfers, and clarifying who should be contacted in each scenario.
f
@Mason, thanks for the update! We've adjusted prompts over time to create more clarity as we've experienced this inconsistency for awhile. For all Call Transfers, we've added into the script "please let me know Yes or No?" which allows the Assistant to get a clear answer from customers as she was rejecting answers that implied "Yes" but were not those exact words (like "yeah" and "thank you"). For all Call Transfers, we've also instructed > Then silently Call the transferCall function with [PHONENUMBER] as she was saying "I will now call the TransferCall function" in conversation. There are a number of scenarios for Call Transfers for this Assistant, so we have given the Assistant "Common Enquiries" which include both prompts mentioned above.
Here are a few examples for reference: # COMMON ENQUIRIES 1. Restaurant or cafe bookings or enquiry (e.g. Restaurant 1, Cafe 1, Restaurant 2), or special of the day (e.g. what’s on the specials board). > Say: "We can help you with that! I’ll, um, just connect you with our restaurant... Is that OK, please let me know Yes or No?" > Then silently Call the transferCall function with [PHONE NUMBER] 2. Functions enquiries, or if they ask for NAME. > Only if the caller says the function is a “Wake” for a funeral, respond empathetically by saying: "Thanks for considering us at this time…” > Say: "We can help you with that… I’ll um, connect you to Hannah, our Functions Receptionist... Is that OK, please let me know Yes or No?" > Then silently Call the transferCall function with [PHONE NUMBER] 6. Wants to be put through to the Gaming Room or Gaming Floor (or if from X Gaming). > Say: “No worries… I’ll uh, just need to put you through to our Duty Manager now, who should be able to help… Is that OK, please let me know Yes or No?” > Then silently Call the transferCall function with [PHONE NUMBER] To help us resolve this issue, do you have any examples of how to best "standardise" or structure transfer instructions in prompting?
s
@firefly_0206 Hey, I know that this ticket has been open for you from a very long time, and I don't want to take any more time of you. To resolve this, let's do it over the call. I'll drop a message to you in your DM, and then we can continue over there and select a slot for our call. cc: @Mason
f
Hi @Shubham Bajaj & @Mason , we have a few more recent calls with a similar issue, I'm unsure if this is completely related to the prompting specifically all having similar issues? Call ID: b2543d00-c61c-4746-894c-5a8f7969c505 This call was not successfully transferred although the Analysis Report states - "The AI representative, offered to transfer the call to the restaurant to complete the booking. The customer agreed, and Jasmine initiated the transfer to [PHONE]. The call ended with the transfer, and the enquiry was not fully resolved on this call." In these below Calls, the Assistant verbally says "Silently calling the transfer call function with [PHONE]" - which is why we added the prompt: > Then silently Call the transferCall function with [PHONENUMBER] to avoid this. First call was successfully transferred, the others were not: Call ID: 456e2361-8819-439c-8ecd-e9005c88f420 (transfer successful) Call ID: 69a071e1-0fb2-4f8e-8b53-e3bcdd9bba4f (failed transfer) Call ID: a8e54168-20cf-4ac6-8876-1cd8d0e9aa39 (failed transfer)
Hi @Shubham Bajaj & @Mason Another call today - we really need some action on this as it has been Urgent since first post and is continuous. Call ID: bc13b16b-1d77-48f4-bc27-840af02ad7c0 00:47 - Assistant also verbally says "silently calling Transfer Call Function with [PHONE]" This transfer failed I have created another ticket specifically for the "verbally saying the instructions" incase the issue is separate from Call Transfers Not Working. Ticket: https://discord.com/channels/1211482211119796234/1352499429839470654 Can we please jump on a call for this?
s
@firefly_0206 The tool calls were being spoken out loud because the script included plain text instructions like "silently Call the transferCall function with +61738439280." This meant that the assistant was literally reading out the command rather than executing it quietly. I revised the prompt to clearly separate the spoken dialogue from the internal command. The updated prompt now asks the user for a yes/no confirmation. If the user responds affirmatively, it triggers the transfer tool call silently. If the user responds negatively, it proceeds to another section. Your Updated Prompt with the Required Change:
Copy code
1. Restaurant or Cafe bookings and enquiries:
- Say: "We can help with that. I'll just connect you with our restaurant now. Is that okay? Please let me know yes or no."
- Wait for user response
- If the user responds with an affirmative (yes or similar):
    trigger the transferCall tool with +61738439280
- If the user responds with a negative (no or similar):
    Proceed to alternative assistance or next steps
Explanation of the Prompt Change: - The spoken part is now just the dialogue: it asks for confirmation without mentioning any internal commands. - The function call is hidden behind an internal command block that is only triggered if the user says "yes." - This approach ensures that the transfer call is executed silently and only when appropriate, keeping the conversation natural and user-friendly.
@firefly_0206 let me know how it goes for you.
@firefly_0206 I just looked into the other call IDs shared, and all of them had the same common issue - the tool call triggering. That's why your transfer call was failing. So I'll suggest making the following changes and also looking into the VAPI prompting guide. Most of your issues will be resolved, and you will have a successful call transfer most of the time. Let me know if you require further help or have more questions.
f
@Shubham Bajaj we had tried the suggestion and this did not work. We had to revert back to our original prompting. Can we can please jump on a call about this - I have sent you an DM. Thanks!
@Shubham Bajaj @Mason We've had another call for this same issue: d5b50c90-c758-46b3-9707-432d5a57fa62 This one was also a very important call that needed to go through to the Manager, and was missed: d0b2d791-bffc-4541-9ff2-fd13bd7faf0f Above testing with suggested prompt did not work - still waiting for update from Vapi team
Hi @Shubham Bajaj & @Mason We've updated this per recommended instructions however it's still happening every now and then. Here's another example - Assistant verbally says "Transferring the Call: CALL ID: c0df17b9-517a-4047-8f2f-142775beef63 And here's another that spoke it out loud and didnt transfer the call: de12d523-3fb7-496e-8355-58ff438b487a
v
Hey Beck, As we discussed, we will take this issue over the call. So, we will be connecting on 2nd April for a 1-hour meeting where I will resolve all of your queries and help you out with how to further resolve them.
2 Views