Workflow - Transfer Call
# support
a
In workflow on Transfer Call, is there any way to configure if transfer fails or detects voicemail to go to a conversation node?
v
You can configure a
fallbackPlan
in your transfer call's
transferPlan
to handle transfer failures or voicemail detection.
This allows you to play a custom message and optionally end the call if the transfer does not succeed. However, there is no documented way to automatically route the call to a specific conversation node in your workflow after a failed transfer or voicemail detection. Example fallbackPlan snippet:
Copy code
json
"transferPlan": {
  "mode": "warm-transfer-experimental",
  "message": "Transferring a customer to you.",
  "fallbackPlan": {
    "message": "Could not transfer your call, goodbye.",
    "endCallEnabled": true
  }
}
For more, see the [Vapi call forwarding docs](https://docs.vapi.ai/call-forwarding#6-experimental-warm-transfer). Source: - [Vapi Call Forwarding Documentation](https://docs.vapi.ai/call-forwarding#6-experimental-warm-transfer)
You can configure a
fallbackPlan
in your transfer call's
transferPlan
to handle transfer failures or voicemail detection.
This allows you to play a custom message and optionally end the call if the transfer does not succeed. However, there is no documented way to automatically route the call to a specific conversation node in your workflow after a failed transfer or voicemail detection. Example fallbackPlan snippet:
Copy code
json
"transferPlan": {
  "mode": "warm-transfer-experimental",
  "message": "Transferring a customer to you.",
  "fallbackPlan": {
    "message": "Could not transfer your call, goodbye.",
    "endCallEnabled": true
  }
}
For more, see the [Vapi call forwarding docs](https://docs.vapi.ai/call-forwarding#6-experimental-warm-transfer). Source: - [Vapi Call Forwarding Documentation](https://docs.vapi.ai/call-forwarding#6-experimental-warm-transfer)
a
If you do not check endCallEnabled: true - then it just reads the fallback message? It doesn't continue on to another node?
c
With current functionality no, but you could replace the transfer call node with a tool node that calls a custom API endpoint:
Copy code
// Tool node configuration
{
  "type": "tool",
  "toolId": "your-transfer-tool-id", 
  "name": "transfer_attempt"
}

// Custom tool response handles routing
{
  "results": [{
    "toolCallId": "...",
    "result": "Transfer failed - voicemail detected",
    "error": "TRANSFER_FAILED" // This can trigger failed edge routing
  }]
}
a
I have already built a very complex n8n functionality to be able to support this, which is too fragile and difficult for scale and too fragile - issue is - there is serious complexity coming back to a new agent afer a failed call - which now has no context, so have to use twiml to give the info to the agent. It is a huge pain and a lot of n8n functionality and integration with twilio to be able to follow to be able to go -human---> fail-> back to agent---> try anotehr human --> fail - back to agent. Our customers sometimes have 5 or six peopl on call and we are having to excalate to cal one by one. I was hoping workflows would solve this. This is already possible in Retell conversation flow, I was just trying to not move to retell over this issue but it is now a primary desire from our clients - as they are large and are replacing a human that can already do that escalation manually - so we need to match that at a minimum. Am I missing something? If you use the tool teh way you have described, does the workflow hold all teh context of the call for the next edge?
c
Let me look into this some more and get back to you
a
Did you find anything on this if you guys are workiong on this?
c
We are still working on this request. Also I will loop in my colleague for his perspective
a
Is there any timeline on this by chance?
c
After some investigation, you could use warm-transfer-experimental with endCallEnabled: false and continue the conversation after it delivers the configured message for the fallback as long as you have a node attached to continue the flow. Please test this and let us know
p
I'm using this with my custom LLM. So far, the transfer and all happens well. However, if the number to which the conversation is being transferred declines the call, or doesn't pick up, the fallback does not seem to work. This is what my config looks like when sent to the conversation's control URL { "type": "transfer", "destination": { "type": "number", "number": phone_number, "callerId": '{{phoneNumber.number}}', "transferPlan": { "mode": "warm-transfer-experimental", "holdAudioUrl": "https://file.mp3", "summaryPlan": { "enabled": True, "messages": [ { "role": "system", "content": "Please provide a summary of the call." }, { "role": "user", "content": "Here is the transcript:\n\n{{transcript}}\n\n" } ] }, "fallbackPlan": { "message": "It seems the person is currently busy or on another call. Can I take a message?", "endCallEnabled": False } } } }
c
we are closing this thread. if you would like to reply back, reply in this thread:
2 Views