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.
| Reference | Resolves 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 lands | Use when | |
|---|---|---|
| Variables | Only where you write {{ global.key }} | You want to reference a value in specific places |
| Global Config | Injected into every agent's system prompt | Every 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".