Variables and extraction
Variables carry data through a conversation. They arrive in two ways: you pass them in, or the agent captures them from what the caller says.
Passing variables in
When you start a call or session you can seed variables - a customer's name, an account tier, an order reference. They are available immediately, so the agent can open with them.
Use them in any prompt or message with {{name}}:
Greet {{customer_name}} by name and confirm you are calling about order {{order_id}}.They can also be used in edge conditions, so a workflow can branch on data you already had before the caller said a word.
Capturing what the caller says
Extraction pulls structured values out of the conversation. Each field has a name and a hint telling the model what to look for:
| Field | Hint |
|---|---|
full_name | The caller's full name |
callback_number | A phone number to call back on |
preferred_day | The day they want the appointment |
Captured values become variables, so a later step can use {{full_name}}.
Extraction captures what was said - it does not make the agent ask. If a field is required, the prompt has to actually ask for it. This is the most common reason a field comes back empty.
Required fields and retries
A field can be required. If the conversation reaches the end of a step without it, the
agent re-asks using retry_message, up to max_retries times, then moves on rather
than trapping the caller in a loop.
Where captured values end up
Variables are stored on the session, visible in the dashboard, included in the
end-of-call report, and delivered on the session.completed
webhook - which is how they reach your CRM.