Hi {{firstName}}, I'm calling about your order {{orderNumber}} becomes a personal conversation for every contact.
Types of values
Contact variables
Add a variable
- In a step: type
+, or click Variable under the text box, then type the name and press Enter. You can also select a word and turn it into a variable. - In the Variables panel: click the variables button in the editor header, type in Add variable, and press Enter.
{{variableName}}. The panel lists them under Variables in use (referenced somewhere in the agent) and Variables not in use.

Inserting a variable in a step: the picker lists existing variables; press Enter to create a new one.

The Variables panel, grouped into Variables in use and Variables not in use.
Naming rules
- Letters, digits,
_, and$only. Start with a letter,_, or$. No spaces. - Up to 30 characters.
- Names are case-sensitive:
firstNameandfirstnameare different variables.
Required contact fields
A contact must have a value for every variable the agent uses. When you upload contacts, Callers checks:- the base fields:
nameandphoneNumber(Voice and Text agents) ornameandemail(Email agents), and - every variable used in the script, scenarios, instructions, and actions,
Missing required fields: …. If your account uses versions, the check combines the variables of every published version.
Provide values
- CSV
- API
- Pre-conversation action
Add a column for each variable, with the variable name as the header (for example,
firstName, orderNumber). Map the columns during import. See Upload contacts.Same variable, three places
A variable is one name used in three places. FororderNumber:
- 1. CSV row
- 2. API data
- 3. Step text
The header is the variable name; each row supplies the value.
data, so the latest upload wins. A pre-conversation action that maps a response field to the same name overrides the uploaded value for that call, and stores it on the contact when Update contact data is on. Built-in values such as name and phoneNumber come from the contact itself.
Built-in values
The agent also knows the current date and time in the contact’s time zone, so it can handle “tomorrow” or “next Tuesday” without a variable.
The numbers of the current call (
phoneTo, phoneFrom) aren’t variables; they’re metadata tags for use in actions.
Metadata
Metadata tags carry details of the current call. They’re available in pre-conversation and in-call actions (the Metadata tab in the tag picker).
These names are reserved and can’t be used as your own variables.
Call Data
Post-call actions and webhooks can insert Call Data tags: any field of the finished conversation, such asduration, status, transcript, recordingUrl, successCriteria.name, summary.<key question>, contact.data.<variable>, and extractedVariables.<name>. See Webhook payload for the full list.
Transcript variables
Transcript variables let the AI pull a value out of the conversation and pass it to an action, for example an order number the caller read out, or the date they chose. You define them on the action, under Variables Extracted with Prompt (called Transcript Variables on custom code actions).1
Add the variable
In the action editor, click Add New Variable.
2
Describe it
Set the Variable Name, the Type, and a Description that tells the AI what to extract, for example “The 6-digit order number the customer provides”.
3
Use it in the request
Insert the variable into the URL, headers, query parameters, or body from the Transcript tab of the tag picker.

A transcript variable under Variables Extracted with Prompt: name, type, and the description the AI follows.
_) and must start with a letter.
Arrays and the schema designer
For an Array, click Define schema to describe each element. In Define item schema, pick the Type of each item. For objects (the default), click Add field and set each field’s Field name, Type (Text, Number, Boolean, Array, or Object), Required, and a description that helps the AI fill it. Field names start with a lowercase letter and use letters, numbers, and_. Click Save schema.
Example: an items array whose objects have sku (Text, required), quantity (Number, required), and notes (Text).
Post-call extraction
Post-call actions and advanced webhooks also have Variables Extracted with Prompt. These are extracted after the conversation ends and sent asextractedVariables in the payload.
Mix sources in one request
Each source has its own tag syntax, so an action can combine them in a single URL or body. The tag picker inserts the right syntax for you; this is what the template looks like underneath:
An in-call HTTP action that files a support ticket for the order the contact is calling about:
URL
Body
orderNumber and name come from the contact, issueDescription and wantsCallback are Variables Extracted with Prompt the AI fills from the conversation, and callId, phoneTo, and campaignId are metadata. Values that look like JSON (objects, arrays, numbers, booleans) are inserted as JSON; everything else as a string.
Test with mock values
When you click Send Test Request on an action, a dialog asks for a value for each variable (“Enter mock values to send a request”). Type them, or click the AI button (Generate mock values) to fill realistic examples automatically. Values that look like JSON are sent as JSON. When you place a test call, the test form asks for each contact variable. See Test your agent.FAQ
Why were some contacts skipped during import?
Why were some contacts skipped during import?
They were missing a value for a variable the agent uses. Check Variables in use in the Variables panel and compare with your CSV headers. Header names must match the variable names exactly.
Can a variable be optional?
Can a variable be optional?
Only if a pre-conversation action fills it in. Otherwise, every variable the agent references is required. If some contacts won’t have a value, don’t reference it as a variable; describe the fallback with an Instruction instead.
What happens if I rename a variable?
What happens if I rename a variable?
Every usage is updated. Contacts you already uploaded keep the old key in their data, so re-upload or update them with the new name.
Related
Upload contacts
Map CSV columns to variables.
Actions
Use variables in API requests.
Webhook payload
Every Call Data field.
Script editor
Insert variables with inline tags.