Skip to main content

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.

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 variablesPrivate arguments
Who supplies the valueYou, the builder, ahead of timeThe end user, at runtime
Typical contentsYour API keys, service URLs, account IDsThe user's card number, SSN, personal secrets
Referenced via@@{VAR_NAME} in configs and instructionsDeclared per-tool on the Private arguments tab
StorageSaved in your browser, injected into executionsNever 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.

VariableResolves toExample
@@{currentDate}The current date in UTC, human-readableJanuary 8, 2026
@@{currentTime}The current time in UTC, human-readable2: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.

VariableResolves toAvailableExample
@@{callerPhone}The other person's number: who called or texted you, or who your outgoing call is dialingCalls (incoming and outgoing) and incoming texts+14155550100
@@{agentPhone}Your number the call or text is onCalls and incoming texts+12065550142
@@{callDirection}INBOUND or OUTBOUNDCalls and incoming textsINBOUND
@@{callerName}The caller's name from carrier caller-ID recordsIncoming calls, when the number has caller-name lookup on and a name is listedJANE DOE
@@{callerCity}The city where the caller's number is registeredIncoming calls, when the carrier reports itSEATTLE
@@{callerState}The state or region where the caller's number is registeredIncoming calls, when the carrier reports itWA
@@{callerCountry}The country where the caller's number is registeredIncoming calls, when the carrier reports itUS
@@{forwardedFrom}The number the call was forwarded fromIncoming 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​

  1. Go to Agentic Workflows → Environment Variables and click Add Variable.
  2. Enter the Variable Key (e.g. MY_API_KEY) — uppercase letters, numbers, and underscores only.
  3. Enter the Variable Value and save.
  4. In any tool config or instruction field, type @@ and pick the variable to insert @@{MY_API_KEY}.

How to move variables between machines​

  1. Click Export JSON — this downloads a dated JSON file of all your key/value pairs.
  2. 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.