Variables

One place for the values that appear in fifty tools and prompts — base URLs, account ids, tone of voice — referenced as {{ global.key }}.

Variables hold the values you would otherwise paste into every tool and every prompt: an API base URL, an account id, a company name, the tone of voice your agents should write in.

Set them under Settings → Variables, then reference them anywhere {{ }} is rendered:

{{ global.api_base }}/v2/customers/{{ body.customer_id }}

The {{ }} syntax

One syntax for the three places you type a value that is not yet known — a custom HTTP tool's URL, headers and body; an agent's system prompt; a workflow step's prompt template.

ReferenceResolves to
{{ global.api_base }}A variable from Settings → Variables
{{ state.topic }}Workflow shared state
{{ body }} · {{ body.data }}Inside a tool: an input argument, or a path into one
{{ args }}Inside a tool: every argument, as JSON

Inside a tool a bare name resolves against that tool's arguments, because that is what {{body}} means to the person writing it. Everywhere else a bare name is left alone.

Scalars render as text; objects and lists render as JSON.

An unknown reference is left as written, never blanked

A prompt that says {{global.tone}} before you have created tone shows the gap rather than hiding it. A silently empty string is how a prompt ends up subtly wrong for a week.

Variables or Global Config?

Both put values in front of agents, and they are not the same thing.

Where it landsUse when
VariablesOnly where you write {{ global.key }}You want to reference a value in specific places
Global ConfigInjected into every agent's system promptEvery agent genuinely needs to know it

Global Config costs prompt tokens on every turn of every agent. Variables cost nothing until referenced.

Secrets

A variable is the right home for a key you do not want pasted into fifty tools. It is stored per tenant, like everything else, and on SynapseOrch Cloud a value that is a secret reference is resolved on the way out — the engine itself never sees the difference.

It is still a value an agent can print if a tool echoes it back. Treat it as "typed once" rather than "hidden".

On this page