punk8357
02/14/2026, 5:20 PMAI Evy
02/14/2026, 5:20 PMAI Evy
02/14/2026, 5:20 PMAI Evy
02/14/2026, 5:20 PMAI Evy
02/14/2026, 5:20 PMpunk8357
02/14/2026, 5:23 PMAI Evy
02/14/2026, 5:23 PMAI Evy
02/14/2026, 5:23 PMAI Evy
02/14/2026, 5:23 PMAI Evy
02/14/2026, 5:23 PMpunk8357
02/14/2026, 5:27 PMAI Evy
02/14/2026, 5:27 PMAI Evy
02/14/2026, 5:27 PMWhen user indicates they want to speak to a human or When user requests to be transferred.
A few important things to check:
1. Transition condition is required — Global nodes must have a condition defined for when they should activate. Without this, the node won't be triggered.
2. Transitions happen after user response — The checking of the transition condition happens after the user responds, not based solely on agent speech. [(2) ]()
3. Condition clarity — Write clear conditions that don't rely too heavily on the node's instruction. Examples: When user indicates they want to book a meeting or User declines the invitation. [(3) ]()
Check your Global Node settings and ensure you have a properly defined transition condition that matches when you want the transfer to occur.AI Evy
02/14/2026, 5:27 PMAI Evy
02/14/2026, 5:27 PMpunk8357
02/14/2026, 5:28 PMAI Evy
02/14/2026, 5:28 PMAI Evy
02/14/2026, 5:28 PMWhen user indicates they want to speak to a human) , and it will be accessible from any point in your conversation flow without requiring manual connections to other nodes.AI Evy
02/14/2026, 5:28 PMAI Evy
02/14/2026, 5:28 PMpunk8357
02/14/2026, 5:28 PMAI Evy
02/14/2026, 5:28 PMAI Evy
02/14/2026, 5:29 PMAI Evy
02/14/2026, 5:29 PMAI Evy
02/14/2026, 5:29 PMpunk8357
02/14/2026, 5:32 PMAI Evy
02/14/2026, 5:32 PMAI Evy
02/14/2026, 5:32 PMskip response turned on) before the transfer node. This lets the agent deliver a specific message before the actual transfer happens.
For a global transfer node, Option 1 is typically simpler since it keeps everything in one node. Just enable "Speak During Execution" and provide the prompt or static sentence you want the agent to say while the transfer is being performed.AI Evy
02/14/2026, 5:32 PMAI Evy
02/14/2026, 5:32 PMpunk8357
02/15/2026, 2:26 PMAI Evy
02/15/2026, 2:26 PMAI Evy
02/15/2026, 2:27 PM{{success}} == "false"
Note the double equals sign (==) for comparison, not a single equals sign.
2. String vs Boolean
Yes, this could be the issue. If success is coming back as a string "false" rather than a boolean false, you need to compare it as a string with quotes around the value.
3. Variable Extraction
For the transition condition to work with the function result, you need to ensure the success variable is properly extracted as a dynamic variable before the transition evaluates. If you're extracting it from a custom function response, you should use the Extract Dynamic Variables function to make it available for equation-based transitions.
[(2) ]()
Try updating your condition to:
{{success}} == "false"
If that doesn't work, also verify that the variable is being extracted correctly by checking the collected_dynamic_variables field in your call details.AI Evy
02/15/2026, 2:27 PMAI Evy
02/15/2026, 2:27 PMpunk8357
02/15/2026, 2:28 PMAI Evy
02/15/2026, 2:28 PMAI Evy
02/15/2026, 2:28 PM==) is the correct syntax for equation-based transitions in Retell AI. [(1) ]()
Example equation conditions from the documentation:
{{user_location}} == "New York"
{{user_location}} != "New York"
In a Discord thread, a user had a similar issue and was told to use {{ai_enabled}} == "true" with double equals, which fixed their problem. [(2) ]()
If the Retell UI is only showing a single equals sign, you may need to manually type the double equals (==) in the equation editor. The documentation explicitly lists == for equality comparisons and != for not-equal comparisons. [(1) ]()
For your case, try entering:
{{success}} == "false"
, [(2) ]()
If the UI doesn't accept this, you could alternatively use a prompt-based transition instead of an equation, such as: The function returned success as false or CRM lookup returned unsuccessful result. [(1) ]()AI Evy
02/15/2026, 2:28 PMAI Evy
02/15/2026, 2:28 PMpunk8357
02/15/2026, 2:30 PMAI Evy
02/15/2026, 2:30 PMAI Evy
02/15/2026, 2:30 PM{{user_location}} == "New York", but when using the UI's equation editor, you select the variable, the operator from the dropdown, and enter the value. [(1) ]()
The single = in the dropdown likely represents the equality comparison (equivalent to == in the documentation's text examples) . This is just how the UI presents it.
For your {{success}} variable, a few things to verify:
1. **Make sure the value is quoted as a string**: Since your function returns "success": false in JSON, try comparing against "false" (with quotes) in case it's being treated as a string. [(2) ]()
2. **Consider using a prompt-based transition instead**: If equation-based transitions aren't working reliably with your function result, you can use a prompt condition like CRM lookup returned unsuccessful result or The function returned an error or success was false. [(1) ]()
3. **Check if the variable exists**: You can also use {{success}} exists or {{success}} does not exists to verify the variable is being set at all.
Given the complexity of parsing nested error responses, a prompt-based transition that references the function result may be more reliable for your use case.AI Evy
02/15/2026, 2:30 PMAI Evy
02/15/2026, 2:30 PMpunk8357
02/15/2026, 3:05 PMAI Evy
02/15/2026, 3:05 PMAI Evy
02/15/2026, 3:06 PM"false" would be converted to "1". This behavior isn't documented in the Retell AI materials I have access to.
However, looking at your earlier error response, the JSON returned was:
{
"success": false,
"bookingSuccess": false,
"error": "1",
"code": "2"
}
It's possible that when you configured the Extract Dynamic Variables tool, you may have inadvertently mapped to the "error" field (which has value "1") instead of the "success" field. [(1) ]()
A few things to check:
1. Verify your variable extraction configuration — Make sure the variable name and description in your Extract Dynamic Variables tool correctly targets the success field, not another field like error.
2. Check variable type — When adding variables, you can specify the type as Text, Number, Enum, or Boolean. If you're expecting "false" as a string, ensure the type is set to Text.
3. Consider using a prompt-based transition — Given the complexity of parsing your function response, a prompt condition like The booking function returned success as false or The function result indicates the booking was unsuccessful may be more reliable than equation-based transitions. [(2) ]()
If the issue persists, I'd recommend checking the collected_dynamic_variables field in your call details to see exactly what value is being stored.AI Evy
02/15/2026, 3:06 PMAI Evy
02/15/2026, 3:06 PMpunk8357
02/15/2026, 3:33 PMAI Evy
02/15/2026, 3:33 PMAI Evy
02/15/2026, 3:33 PMAI Evy
02/15/2026, 3:33 PMAI Evy
02/15/2026, 3:33 PMpunk8357
02/15/2026, 3:34 PMAI Evy
02/15/2026, 3:34 PMAI Evy
02/15/2026, 3:34 PMAI Evy
02/15/2026, 3:34 PMAI Evy
02/15/2026, 3:34 PMAI Evy
02/15/2026, 5:45 PMpunk8357
02/15/2026, 5:45 PMAI Evy
02/15/2026, 5:45 PMAI Evy
02/15/2026, 5:45 PMAI Evy
02/15/2026, 5:45 PM