neerajjoshi_
08/14/2026, 9:43 AMAI Evy
08/14/2026, 9:43 AMAI Evy
08/14/2026, 9:44 AMAI Evy
08/14/2026, 9:44 AMAI Evy
08/14/2026, 9:44 AMAI Evy
08/14/2026, 9:44 AMneerajjoshi_
08/14/2026, 9:45 AMAI Evy
08/14/2026, 9:45 AMAI Evy
08/14/2026, 9:45 AMWhen the destination provides a callback preference or scheduling note, call
extract_callback_note to save the information.
[(1) ]()
That value gets stored as a dynamic variable for the call, and dynamic variables carry the {{variable_name}} syntax so they can be referenced in prompts once set [(2) ]() . If the transfer agent then triggers Cancel Transfer, the caller is sent back to your main agent, which picks the conversation back up [(3) ]() . Since dynamic variables set during a call are available to be referenced later in that same call, your main agent's prompt could check for that variable (e.g., {{callback_note}}) and, if present, relay it to the caller — for example: "If {{callback_note}} appears with a value, tell the caller: 'please call back after 5pm.'"
Caveat: the sources document Extract Dynamic Variable in the context of information captured during the main call, not specifically as something a transfer agent extracts and hands back after a Cancel Transfer decision — so treat this as a suggested pattern to test, not a confirmed guaranteed flow [(1) ]() .AI Evy
08/14/2026, 9:46 AMAI Evy
08/14/2026, 9:46 AMAI Evy
08/14/2026, 10:59 AMneerajjoshi_
08/14/2026, 10:59 AMAI Evy
08/14/2026, 10:59 AMcall_id, one entry in call history — it is not two separate calls [(1) ]() . There is no "parent call" and "child call" with a one-way variable flow in the Agent Transfer mechanism as documented.
Specifically, the destination agent automatically receives the full conversation history, call-level metadata, and dynamic variables — both the retell_llm_dynamic_variables passed at call start and any variables extracted earlier in the call . This is bidirectional in the sense that all agents on the call share the same underlying call context; it isn't described as a one-directional parent-to-child handoff that then terminates.
So if a variable like {{transfer_relay_note}} is extracted by an agent during an Agent Transfer swap, it should be available to any agent sharing that same call afterward, since dynamic variables extracted earlier in the call stay available to the destination agent's prompt [(1) ]() [(2) ]() . If a swap-back to the original agent occurred and it didn't see the variable, that isn't the documented behavior for Agent Transfer.
One caveat: this documentation is written for Agent Transfer (agent swap) , where agents share one call. If what's actually happening in your setup is a Call Transfer (phone-based transfer to another number, e.g., "Jenny's" line as a separate destination) rather than an Agent Transfer, that is a different mechanism — a new call leg to a phone number — and the sources don't document dynamic variables carrying over from that separate destination call back into theAI Evy
08/14/2026, 10:59 AMAI Evy
08/14/2026, 10:59 AMAI Evy
08/14/2026, 10:59 AMneerajjoshi_
08/14/2026, 11:01 AMAI Evy
08/14/2026, 11:01 AMAI Evy
08/14/2026, 11:01 AM{{variable_name}} syntax and how variables can be referenced in prompts once set [(2) ]()
I don't have a source that documents an "Extract Dynamic Variable" tool being used specifically by a transfer agent to pass a note back to the main agent after a Cancel Transfer. That part was a suggested pattern based on piecing together the Cancel Transfer behavior [(1) ]() and general dynamic variable behavior [(2) ]() , not a confirmed documented workflow. I flagged that caveat in my earlier answer.
If you want the precise mechanics of what data does/doesn't carry over in each transfer type, the two most relevant sources remain the Transfer Call tool doc [(1) ]() and the Dynamic Variables doc [(2) ]() .AI Evy
08/14/2026, 11:01 AMAI Evy
08/14/2026, 11:01 AMneerajjoshi_
08/14/2026, 11:04 AMAI Evy
08/14/2026, 11:04 AMAI Evy
08/14/2026, 11:04 AMcall_id, one entry in call history — and the destination agent automatically inherits the full conversation history, call-level metadata, and dynamic variables (both those passed at call start and any extracted earlier in the call) [(1) ]() . If your use case can work within a single call shared between agents, this is the documented path for context to flow between agents.
- Call Transfer (Transfer Call tool) places a real, separate phone call to another number. For Agentic Warm Transfer, a transfer agent screens the destination and then decides to bridge or cancel — but "what it doesn't get is anything said after the transfer starts, and your main agent never sees the screening conversation," and the two calls are recorded and transcribed separately [(2) ]() . There's no documented parameter for passing a custom message from the transfer agent back to the main agent after screening.
For dynamic variables generally, they can be extracted during a call and referenced later in that same call's prompts using {{variable_name}} syntax [(3) ]() , but this is documented in the context of a single call's context, not as a bridge between two separate transferred call legs.
I don't have sources documenting a standard/common workaround pattern used by other users for this exact scenario. If you'd like, I can give a general (unconfirmed) suggestion based on how theAI Evy
08/14/2026, 11:04 AMAI Evy
08/14/2026, 11:04 AMAI Evy
08/14/2026, 11:04 AMneerajjoshi_
08/14/2026, 11:05 AMAI Evy
08/14/2026, 11:05 AMAI Evy
08/14/2026, 11:05 AMoriginal_call_id to tie the two calls together .
However, this handoff is one-directional going in. What it doesn't get is anything said after the transfer starts, and your main agent never sees the screening conversation . The two calls are recorded and transcribed separately . There's no documented mechanism for the transfer agent to write a new variable during its screening call and have that flow back into the main agent's call after a Cancel Transfer.
The transfer agent's only two tools are Bridge Transfer (connect the caller) and Cancel Transfer (send the caller back to your main agent, which picks the conversation back up) . Neither tool is documented as carrying a custom payload or message back to the main agent.
So based on the sources, what you observed — the main agent's call not receiving a variable set during the transfer agent's screening call — is consistent with the documented behavior for agentic warm transfer, since that screening conversation and anything captured in it isn't described as flowing back to the original caller's call .
I don't have documentation of a supported way to relay a message like "call back after 5pm" from the transfer agent back to the main agent in this transfer type.AI Evy
08/14/2026, 11:05 AMAI Evy
08/14/2026, 11:05 AMneerajjoshi_
08/14/2026, 11:07 AMAI Evy
08/14/2026, 11:07 AMAI Evy
08/14/2026, 11:07 AMAI Evy
08/14/2026, 11:07 AMAI Evy
08/14/2026, 11:07 AMneerajjoshi_
08/14/2026, 11:08 AMAI Evy
08/14/2026, 11:08 AMAI Evy
08/14/2026, 11:09 AMcall_analyzed event for the transfer agent. The payload includes the call_analysis object with fields like call_summary, user_sentiment, call_successful, and any custom extracted fields [(1) ]() . Note that call_ended webhook payloads exclude call_analysis — you must listen for call_analyzed specifically, since reading those fields from call_ended returns null or undefined .
json
{
"event": "call_analyzed",
"call": {
// Call object with call_analysis field populated
}
}
**Post-call analysis via API**: Alternatively, poll the Get Call API for the transfer agent's call_id after it ends to retrieve call_analysis, which includes call_summary, user_sentiment, call_successful, and custom_analysis_data [(2) ]() .
json
"call_analysis": {
"call_summary": "The agent called the user to ask question about his purchase inquiry. The agent asked several questions regarding his preference and asked if user would like to book an appointment. The user happily agreed and scheduled an appointment next Monday 10am.",
"in_voicemail": false,
"user_sentiment": "Positive",
"call_successful": true,
"custom_analysis_data": {}
}AI Evy
08/14/2026, 11:09 AMcallback_note) to capture something like "call back after 5pm," then have your external system (webhook receiver or API poller) act on it — for example, triggering an outbound call or SMS to the original caller once the transfer agent's call is analyzed. This doesn't relay the message back into the live main-agent call, but it does let you programmatically capture and act on what happened in the transfer leg after the fact.
I don't have documentation confirming a way to feed this post-call data back into an in-progress main agent call — this approach works for post-call follow-up actions (e.g., a second automated call/SMS) , not live relay during the same conversation.AI Evy
08/14/2026, 11:09 AMAI Evy
08/14/2026, 11:09 AM