> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brosbots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Template variables

> You use template variables in the agent's system prompt, in the post-call SMS text and in integration mappings.

### Template rendering

In prompts you can reference variables passed as `initial_context` (via
the API trigger or from a campaign sheet/CSV) and variables extracted from
the conversation as `gathered_context`.

Rendering supports nested values.

Example - for this initial context:

```json theme={null}
{
    "initial_context": {
        "user": {
            "name": "Jan"
        }
    }
}
```

the prompt may look like:

`You are Alice and you're talking to {{initial_context.user.name}}.`

### Date and time

A model has no clock: an agent asked to book "next Tuesday" invents a year,
and has booked into last year. The platform therefore adds a sentence with
today's date, weekday and the time the call started, in `Europe/Warsaw` and
in the agent's language, to the system prompt of **every** agent - hand-written
and imported ones too - for example:

`CURRENT DATE: Today is Saturday, 17 October 2026 (2026-10-17), and it was 14:05 when this call started (Europe/Warsaw time).`

The agent works out "tomorrow", "next Tuesday" or "in a week" from that date
and never books anything in the past. You do not need to add anything.

To use the date in your own text, every call also carries three variables
holding the current date in the same timezone:

| Variable | Example |
| - | - |
| `{{today}}` | `2026-08-28` |
| `{{now}}` | `2026-08-28 10:15` |
| `{{weekday}}` | `Friday` |

A variable of your own with the same name wins.

The **Book appointment (Cal.com)** tool is given today's date regardless of the
prompt, and refuses to book in the past.

### Data collected by the assistant

In the agent configuration, the **Variables** tab opens with the **Data
collected by the assistant** card. These are the items picked in the wizard
under "what should the agent collect" - the agent asks for them during the
call and the platform stores them as `gathered_context`.

<Note>
  Values only appear **after a call ends** - in the call history and in
  integrations (Google Sheets, CRM, webhook). While configuring you see the
  field names, not customer data.
</Note>

In the card you can:

* review every collected field together with its description ("what should
  the assistant find out"),
* rename a field or edit its description,
* remove a field and add your own, e.g. `order_number`.

Saving writes one shared list back to the agent's conversational nodes, so
you don't have to remember which node collects what.

You use the same names in the **Integrations** tab as the mapping **Source**
with the `gathered` context. The Source field suggests them - click the
arrow on the right-hand side of the field.

### Template variables vs. collected data

| | Template variables | Data collected by the assistant |
| - | - | - |
| Where they come from | Onboarding, editor, `initial_context` (API, campaign) | The conversation |
| Known when | Before the call | After the call |
| Mapping context | `initial` | `gathered` |
| Use in prompts | `{{name}}` | - |

### Answers from the wizard

Opening hours, prices, FAQ, the company description and the other wizard
answers are written into the prompt as text when the agent is created. The
**Variables** tab shows them marked **from the wizard** and **read-only**,
because a new value would not change what the agent says. A change needs a
prompt edit on the **Role** tab or another run of the wizard. Once you put a
variable into the prompt, a node or an SMS text as `{{name}}`, it becomes live
and editable again.

### Nodes

Underneath, the agent runs on a graph of nodes: some pass instructions to the
agent, others let you trigger a call from outside, and others send the call
result via webhook to a CRM or tools like n8n. That canvas is hidden in the app
for now - what happens underneath, and where each setting lives today, is
described in [Conversation flow (under the hood)](/en/voice-agent/conversation-flow).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.