Overview
This is the complete reference to every variable available during a call: the values your script, tools, conditions, response maps and Code Steps can read and write, and how tools populate them. Each field is listed with its data type and a realistic example value. A variable reference always uses double-brace notation —{{namespace.path}} — and you insert one by typing / in any supported field. If you are new to variables, read Variable notation first, then jump to the namespace you need from At a glance.
At a glance
Values are grouped into namespaces. The first part of every reference is the namespace; everything after it is the field path. Caller and call contextcontact— Caller identity and contact-record fields.call— Call-session facts: id, live transcript, current date and time, environment flags.custom— Your free-form values and the home of your custom variables.
calendar— Booking inputs, availability and booking results.timezone— The caller’s resolved timezone and verification state.callback— The arranged-callback record and outcome.
sms— Outbound text, collected email and send-error line.data_collection— The result of a collect-confirm field capture.surveys— Survey question inputs and the completed-question result.webhook— The landing spot for a webhook response.
handoff— How the call’s handoff attempts to a person turned out.analysis— In-call values that post-call analysis must not override, such as recording consent.
auth_check— The outcome of a caller-verification check.
auth— Caller-identity details captured for verification, read by the Auth | Check tool.insurance— Policy, claim, FNOL and routing values for insurance deployments.marketing— Disposition and lead-capture state for the Voxworks demo line.
temp— Per-turn scratch slots maintained inside graph flows.graph— The current position and bookkeeping within an advanced graph flow.relationship— Rapport signals a graph flow reads to adapt how it speaks.
Variable notation
The user-facing notation is:{{contact.first_name}}{{contact.email}}{{calendar.booking_time_raw}}{{insurance.claim.response_status}}{{custom.claim_number}}
{{total}} is treated as ordinary text, not a variable.
Do not put spaces inside the braces: write {{contact.first_name}}, never {{ contact.first_name }}. Insert references by typing / in any supported field to pick from the list, or type them by hand.
Reading variables
Use a variable reference inside text where you want the value inserted.{{call.transcript.full}} is expanded first, before any other reference, so you can safely feed it to extraction tools.
Writing variables
Tools that write values expose a field such as Destination, Response Map or Output Map. Point it at a variable reference using the same notation:custom, call, contact and temp namespaces accept any field you write. The other namespaces have a fixed set of fields (the ones listed below): writing to a field that is not part of the namespace is ignored, and a later step reads that reference back empty. If you need a new field in one of the fixed namespaces, speak to the Voxworks team for further custom configuration.
Custom variables
Use thecustom namespace for values that do not belong to a fixed system namespace.
{{custom.claim_number}}{{custom.customer_sentiment}}{{custom.appointment.datetime}}
{{custom.<type_name>.<field_path>}}, and the whole instance is available as {{custom.<type_name>}}. Always keep the custom. prefix — {{type_name.field}} on its own will not resolve.
See Custom variables and Custom variable types for how these are defined and linked to contacts.
Nested reads
Some variables hold a whole object, such as a webhook response or a booking record. Read a nested field by adding a dotted path immediately after the reference — the stored value is resolved first, then the suffix digs into it.Response maps
A response map has the destination variable on the left and the source path (into the tool’s response) on the right.Code step examples
Read a value:str({{custom.value}} or ""). See the Code Step docs for the full run() contract.
Where variables work
Variables are substituted in:- Voice step scripts
- Condition next-step logic
- Tool input maps and response maps
- Function and Code Step logic
- SMS message content
- LLM tool response maps and destinations
Variable lifecycle
Namespace reference
Every namespace available in a call is listed below with its fields, data types and example values. The Written by note under each namespace shows how the values are populated.contact
The caller’s contact record. Seeded at call start from the matched contact, and readable throughout the call. Fields backed by a stored record persist back to the contact after the call.
Written by: Seeded at call start, then updated when you map a capture tool’s result onto a contact field (Data Collection, SMS email collection) or when the caller confirms a correction to their name or timezone during the call.
call
Call-session facts kept up to date automatically for the current call. The date and time fields are computed fresh on every read in your team timezone, so a long call that crosses midnight sees the new values.
Written by: Maintained automatically by the platform for the call session.
custom
Your own per-call values plus the home of your custom variables. Any {{custom.<path>}} of two or more segments works without any setup — write to it from a Code Step, an LLM tool or a webhook and read it back later. Installed custom variable types appear under this namespace in the / picker as {{custom.<type_name>.<field>}}. See Custom variables and Custom variable types.
Written by: You — via Code Step, LLM Custom, or any tool with a {{custom.…}} destination. Custom variable types are seeded from your team’s records.
calendar
Booking inputs and the availability and booking results produced by the calendar tools. The inputs marked Input are set on the booking tool’s own fields; everything else is written back for your confirmations and routing. Common calendar settings live on Calendar tools.
Written by: Book Calendar Appointment | Pro.
timezone
Timezone verification state. Seeded from the contact’s stored timezone at call start, then updated as the caller’s location is confirmed. Use {{timezone.resolved_iana}} as the zone the caller’s times are quoted in.
Written by: Book Calendar Appointment | Pro, when its timezone check is enabled.
callback
State for arranging a callback. The record object is written every time the tool finishes and carries everything a person or the assistant needs to make the callback. Its input fields are configured on the tool.
Written by: Arrange Callback | (BETA).
sms
SMS results. {{sms.message}} is the outbound text, {{sms.email}} is the address collected and validated by the round-trip email tool, and {{sms.send_error_spoken}} gives the agent a natural line to say if a send fails. The email tool’s opening, body and fallback lines are configured on the tool itself. See Send SMS and Read SMS.
Written by: SMS | Get Valid Email, SMS | Send to contact, SMS | Read from contact.
data_collection
The generic collect-confirm-spell field-capture tool exposes just two results your flow reads after it returns. Everything it needs to run the exchange is configured on the tool’s own fields. See Data collection.
Written by: Data Collection.
surveys
State for the Survey tools. The question configuration arrives as a custom variable instance, and the completed question is written back to {{surveys.output_obj}}, which the tool maps onto the same custom variable instance. The per-question capture is handled for you.
Written by: Survey and Survey (graph).
webhook
The conventional landing spot for a Send Webhook response. Map the response with an empty path in the tool’s Response Map to capture the whole body here, then dig into it with a dotted suffix. See Send Webhook.
Written by: Send Webhook.
handoff
The outcome of the call’s handoff attempts, so a script can tell why a transfer to a person did not work and respond honestly instead of guessing. Written after every attempt, whether it came from Live Handoff, the Warm Handoff tool, or a handoff triggered on a live call. Route on {{handoff.last.status}}.
Written by: The platform, at the end of each handoff attempt.
analysis
Values captured during the call that post-call analysis must not override.
Written by: Your script — a Data Collection step, a Code Step, or any tool with an {{analysis.…}} destination.
auth_check
The result set written by the verification tool after it compares the caller’s answers against the record. Route on {{auth_check.verified}} or {{auth_check.status}}. See Auth Check.
Written by: Auth | Check.
Specialised and engine-managed namespaces
These namespaces are not general-purpose variables you author — they belong to specific flow types and are populated for you, so you will only see them in the/ picker on a script that was built around them. auth and insurance back specific customer deployments (identity verification, policy and claim lookup, First Notice of Loss lodgement); marketing is the Voxworks demo line; and temp, graph and relationship are maintained automatically inside advanced graph-based flows. Speak to the Voxworks team for further custom configuration.
auth
Caller-identity details captured before verification, consumed as the inputs of the Auth | Check tool. A legacy shape built for an insurance client’s caller-verification flow.
Written by: Code Step / LLM | Data extraction steps in the flow, ahead of Auth | Check.
insurance
The namespace behind an insurance deployment: policy and contact details, claim lookup results, First Notice of Loss (FNOL) draft identifiers, incident/vehicle/complaint capture, intent-menu state and sub-organisation routing metadata. Backed by the claims-system integration.
Written by: FiveSigma | Get Claim and FiveSigma | Post FNOL, plus the deployment’s own policy lookup and capture steps (Code Step / LLM | Data).
marketing
State for the Voxworks marketing/demo-line flow: booking intent, lead-capture progress, recovery fire-counters and the final call disposition.
Written by: Code Steps and LLM | Custom classification steps in the Voxworks demo-line flow.
temp
Fixed platform scratch slots for per-turn state in graph flows — ten slots each of boolean, string, number and object. You use the existing slots; you cannot add fields to this namespace. Design docs may use conventional alias names (temp.line for {{temp.string.str_1}}, temp.tone for {{temp.string.str_2}}), but the resolvable reference is always the slot path.
Written by: Code Steps in graph flows (Select & Route, Line-Select and similar).
graph
Generic graph-runtime state — the current position within an advanced graph flow, visit and peak bookkeeping, intent-detour return addresses and line-rotation and tone counters. Flow-agnostic and maintained for you.
Written by: The Code Steps emitted by the graph build (Select & Route, Line-Select and similar).
relationship
The relationship-dimension scores and their observation inputs that graph-method flows use to adapt how they speak — comfort, engagement and trust scores, per-turn observations, and the qualitative reads injected into prompts.
Written by: The relationship-update and relationship-read Code Steps in graph flows.
Common issues
- A variable does not resolve — check the spelling, namespace and path.
- A write is skipped — the destination may not be a valid variable reference, or the field is not part of a fixed namespace (see Writing variables).
- A fixed namespace rejects a field — that field is not part of the namespace; use
customfor ad-hoc values. - A nested field is empty — confirm the stored value is actually an object and the suffix matches the response shape.
{{custom.some.path}}works but{{contact.some.path}}does not — this is expected:customis free-form, while the system namespaces have a fixed set of fields.
Best practices
- Use
{{...}}notation everywhere — in scripts, tool maps and Code Steps. - Use descriptive custom paths —
{{custom.claim_number}}rather than{{custom.value}}. - Keep response maps small — store only the values a later step needs.
- Store full responses only when needed — when several later steps read different fields from them.
- Populate before you read — run the writing step before any step that references the value.
Next Steps
- Custom variables — Define your own typed, per-contact data.
- Tools overview — See every tool and the variables it reads and writes.
- Tool steps — Pass variables to tools and map their results back.
- Data collection — Capture, confirm and store values from the caller.

