{{current_date}} that the engine replaces with real values once per call, before sending the prompt to the agent. They let your agent reference dynamic information (date, time, caller, history) without you hardcoding anything.
Variables are substituted once at call start, not per word. They add no latency to the call.
How it works
Two things happen when an inbound call begins:- The engine builds a “call context” block with real-time data (date, time, caller phone, timezone, etc.) and prepends it to your system prompt. The agent sees this context automatically — no setup needed.
- If your prompt contains
{{variable}}placeholders, the engine substitutes them with values from the same data source. This is optional — useful when you want to phrase something explicitly.
Available variables
Time & caller (always on)
These are computed every call from the engine clock + your agent’s timezone setting. Zero added latency.Smart context (active by default)
When a number that has called before dials your agent again, the engine looks up the caller’s most recent call that captured a name - in parallel with the agent load, so it adds zero latency. If a name is on file, the engine passes a short hint to the agent, and places it in the greeting instruction itself so a scripted opening line cannot override it:
When variables fire
Variables are read-once. Their values don’t change during the call. If your business hours rotate by minute, don’t put them in a variable — put them directly in the prompt.
What’s NOT supported (and why)
We’re deliberate about what to add. Each variable is a contract — once shipped, agents depend on it.Direction support
- Inbound calls: full support ✓
- Outbound calls: the engine injects the same real-time context block (date, time, day of week, timezone, the number being called, business number, call direction, and more) at the top of the prompt automatically. For batch campaigns, every column from your recipient CSV is also injected as context for that call, so you can write a natural prompt and the agent receives each recipient’s details without needing placeholders. See Outbound calls.
Behaviour reference
- If a
{{var}}has no matching value, the engine leaves it untouched (visible in the prompt as{{var}}). Easier to debug than silent removal. - Unknown variable names are not errors — they’re just passed through.
- Values are converted to strings. Booleans show as
"true"/"false". - Variables are case-sensitive.
{{Current_date}}won’t matchcurrent_date.
See also
- Agents — writing the system prompt
- Inbound calls — how a call flows through the engine
- Post-call analysis — how
caller_historygets its data