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

# Dynamic variables

> Use {{variables}} in your prompt and first message, and give them placeholder values to test the agent before publishing.

Dynamic variables let you drop reusable `{{placeholders}}` into your agent's text and fill them with values while you test. You author them in the agent editor, and they ride the same draft → publish pipeline as the rest of the configuration.

## Add a variable

Type `{{` in the **System prompt** or **First message** field and give the variable a name, for example `{{customer_name}}`. Any custom token you use is picked up automatically — there's nothing to declare separately.

Tokens that begin with `system__` (such as `{{system__time_utc}}`) are reserved runtime values provided automatically, so they're never listed as custom variables and don't need a placeholder.

## Set placeholder values

Open the **`{}` Vars** panel in the agent header. Every custom variable detected in your prompt and first message is listed with a type and a value:

| Type        | Value editor                     |
| ----------- | -------------------------------- |
| **String**  | Free text                        |
| **Number**  | Numeric input                    |
| **Boolean** | True / False toggle              |
| **List**    | An ordered set of typed elements |
| **Object**  | Key/value entries                |
| **Null**    | No value                         |

<Note>
  Placeholder values are used when **testing your agent in development** — in the preview, each `{{variable}}` in the system prompt and first message is replaced with its placeholder value so you can see a realistic conversation before publishing.
</Note>

Variables are stored with the agent's draft, so a placeholder change is saved to your draft and becomes part of the version when you publish.
