Transfer Logic Help
# support
y
We want the bot to transfer to a second number if the first number doesn't pick up. How do we do this? I tested it using the body attached, but bot only tries to call the first number and then gets back to the customer with the transferCancel message. How do we fix this? https://cdn.discordapp.com/attachments/1427846224291037334/1427846224718987275/Screenshot_2025-10-15_at_10.30.47_AM.png?ex=68f058ec&is=68ef076c&hm=bf82a37836cce33407c52e11d532e15c043324c419bc73eb52a3878f287cf001&
v
To implement fallback transfer logic, handle the
transferCancel
event in your assistant and trigger a new
transferCall
to the second number if the first fails. For example:
Copy code
json
{
  "type": "transferCall",
  "destinations": [
    { "number": "+164468018257", ... }
  ],
  "messages": [
    { "type": "request-failed", "content": "Trying another team member..." }
  ]
}
// In your assistant logic, after transferCancel, call transferCall again with the second number.
This ensures the bot attempts the second number only if the first is unavailable. See [Vapi transferCall docs](https://docs.vapi.ai/call-forwarding) for more details. Source: - [Call Forwarding](https://docs.vapi.ai/call-forwarding)
y
Thank you! Is there any way that the bot retries the transfer without waiting for user input?
I've put in my prompt that if the first transfer fails, it should go straight to transfer to the second number. However, when the first attempt fails, it goes back to the customer in silent (I didn't put a transfer failed message) and wait for the customer to say hello before triggering the transfercall tool again.
I want it to do the transfer attempts without letting the customer know.
c
What is the transferCancel event? Is that that request-failed message, because that is only to say a message on fail, there is no argument for a transferCancel event in the create transferCall tool API, nor is there a transferCancel type tool in the API , nor is there a Webhook which tells you the transfer failed, the server message "transfer-destination-request" is never received by our server, even with a dynamicTransfer tool attached.
c
Hi Yssa Mae Amper, It seems there is a request for assistance with setting up call transfer features. Here’s a brief overview that may help you: For assistant-based warm transfers, the key steps are: 1. **Configuration**: Set up your transfer assistant with prompts and behavior logic. Details are in the [configuration guide](https://docs.vapi.ai/calls/assistant-based-warm-transfer). 2. **Initiating Transfer**: The assistant places the customer on hold and attempts to connect to the destination operator using a specified phone number. The assistant uses the
transferSuccessful
or
transferCancel
tools based on the interaction outcomes. 3. **Handling Scenarios**: Customize prompts to handle conditions such as voicemails and unanswered calls. For dynamic call transfers, which are more flexible and determined in real-time: 1. **Setup**: Create a dynamic transfer tool with empty destination fields. Route decisions are made on-the-fly using customer information and real-time analysis. Check the [dynamic transfer configuration guide](https://docs.vapi.ai/calls/call-dynamic-transfers) for details. 2. **Webhook Integration**: Implement a server endpoint to handle
transfer-destination-request
. This endpoint decides the appropriate transfer destination based on the context received. 3. **Routing Logic**: Use customer data, conversation context, and conditions to dynamically route calls to the right destination. If you have specific questions or need further clarification, feel free to reach out.
c
the transfer-destination-request webhook is never sent, even with a dynamicTransfer tool attached and the server message enabled
c
here are a few things to check for the transfer-destination-request webhook issue: 1. Make sure you have set up a dynamic transfer tool correctly with empty destinations array:
Copy code
{  "type": "transferCall",  "destinations": [],  // Empty for dynamic routing  "function": {    "name": "dynamicTransfer",    "description": "Transfer call based on needs"  }}
2. Verify that in your assistant configuration: - The dynamic transfer tool is added to the assistant's toolIds - The server URL is set up correctly - The transfer-destination-request event is enabled 3. Check your webhook server: - Ensure it's accessible and responding within the timeout - Verify the response format matches the expected schema:
Copy code
{  "destination": {    "type": "assistant|number",     "assistantId": "id",  // or number/phoneNumber for phone destinations    "message": "Transfer message"  }}
4. Common issues: - Missing server URL configuration - Invalid webhook response format - Server timing out - Empty destinations array not configured correctly for dynamic routing If you're still having issues, can you share your tool and assistant configuration so I can help identify the specific problem?
5 Views