Environment Variables
Environment variables are named values — API keys, base URLs, IDs — that are automatically included in all of your agent and tool executions. Reference them anywhere a tool config or instruction accepts text using the @@{VAR_NAME} placeholder syntax, instead of pasting the same value into every config.
What it's for
- Keep values out of configs — a tool's API-call config can send
@@{MY_API_KEY}in a header rather than embedding the literal key in the saved tool. - Change once, apply everywhere — update the variable and every tool or agent referencing it picks up the new value on its next execution.
- Move between environments — export your variables as JSON and import them on another machine or share a starter set with a teammate.
Navigating here
From the dashboard sidebar, open Agentic Workflows → Environment Variables. The page is a simple key/value table with search, Add Variable, and Export JSON / Import JSON actions.
Key concepts
Naming and referencing
Keys follow standard environment-variable conventions: uppercase letters, numbers, and underscores, starting with a letter or underscore (e.g. MY_API_KEY, DATABASE_URL). Anywhere the builder supports variables — tool configurations, agent and manager instructions, webhook handler configs — typing @@ opens an autocomplete of available variables and inserts a @@{VAR_NAME} placeholder. The placeholder is resolved to the variable's value at execution time.
Every tool type resolves these placeholders in its configuration fields, and tools created or updated through the Tools Poweruser API consume them exactly the same way — @@{VAR_NAME} in a config is a contract, not an editor feature.
Where the values live
Variables are stored locally in your browser and automatically included with every agent and tool execution you run. They are per-browser, not synced across your devices or teammates — use Export JSON / Import JSON to move a set of variables to another machine or person. A variable's key cannot be renamed after creation (delete and recreate instead), and deleting a variable means it is no longer available to executions.
Environment variables vs private arguments
Both keep sensitive values out of stored configs, but they solve different problems:
| Environment variables | Private arguments | |
|---|---|---|
| Who supplies the value | You, the builder, ahead of time | The end user, at runtime |
| Typical contents | Your API keys, service URLs, account IDs | The user's card number, SSN, personal secrets |
| Referenced via | @@{VAR_NAME} in configs and instructions | Declared per-tool on the Private arguments tab |
| Storage | Saved in your browser, injected into executions | Never stored in any Autessa history; collected in-memory only |
Rule of thumb: your credentials go in environment variables; your user's sensitive inputs go in private arguments.
Built-in variables
Autessa injects a small set of variables into every execution automatically — no setup, nothing to create. They resolve anywhere @@{...} placeholders work: agent and multi-agent instructions, every tool configuration field, and phone call configs.
| Variable | Resolves to | Example |
|---|---|---|
@@{currentDate} | The current date in UTC, human-readable | January 8, 2026 |
@@{currentTime} | The current time in UTC, human-readable | 2:30 PM |
They shine in prompts and instructions — an agent told Today is @@{currentDate}. stops guessing dates from its training data, and an LLM Call tool can stamp output with Generated on @@{currentDate} at @@{currentTime} UTC.
Built-ins have the lowest precedence: if you define your own variable named currentDate (or pass one at invocation time), your value wins and the built-in stays out of the way. Both values are UTC — if your workflow needs a specific timezone, pass your own formatted value as a prompt template variable instead.
Phone call and text variables
When an agent or multi-agent handles a call or text on one of your phone numbers, it also gets variables describing it. They resolve in the agent's instructions, its greeting, and every tool it runs during the call. Unlike the date and time built-ins, these always take the real value: a variable of your own with the same name doesn't replace them.
| Variable | Resolves to | Available | Example |
|---|---|---|---|
@@{callerPhone} | The other person's number: who called or texted you, or who your outgoing call is dialing | Calls (incoming and outgoing) and incoming texts | +14155550100 |
@@{agentPhone} | Your number the call or text is on | Calls and incoming texts | +12065550142 |
@@{callDirection} | INBOUND or OUTBOUND | Calls and incoming texts | INBOUND |
@@{callerName} | The caller's name from carrier caller-ID records | Incoming calls, when the number has caller-name lookup on and a name is listed | JANE DOE |
@@{callerCity} | The city where the caller's number is registered | Incoming calls, when the carrier reports it | SEATTLE |
@@{callerState} | The state or region where the caller's number is registered | Incoming calls, when the carrier reports it | WA |
@@{callerCountry} | The country where the caller's number is registered | Incoming calls, when the carrier reports it | US |
@@{forwardedFrom} | The number the call was forwarded from | Incoming calls that were forwarded to you, when the carrier reports it | +12065550199 |
When a value isn't known, the variable resolves to an empty string, so write instructions that still read well without it, for example The caller's name, if known, is @@{callerName}. Carrier-reported names and places are often in capital letters and can be out of date, so treat them as hints, not facts.
How to add a variable
- Go to Agentic Workflows → Environment Variables and click Add Variable.
- Enter the Variable Key (e.g.
MY_API_KEY) — uppercase letters, numbers, and underscores only. - Enter the Variable Value and save.
- In any tool config or instruction field, type
@@and pick the variable to insert@@{MY_API_KEY}.
How to move variables between machines
- Click Export JSON — this downloads a dated JSON file of all your key/value pairs.
- On the other browser or machine, click Import JSON and drop or paste the file. The dialog previews how many variables will be imported before you confirm with Import Variables.