Context Variables
The following variables are available in all expression fields.
Node output data — $nodes
Reference the output of any previous node using its name:
{{ $nodes['NodeName'].field }}
NodeNameis the name you gave the node in the editor (visible on the node card and in the Properties tab)- The fields available depend on what each node outputs — see the individual node reference pages
For nested access:
{{ $nodes['HTTP Request'].body.user.email }}
{{ $nodes['Parse Response'].items[0].id }}
Node execution status — $status
Check whether a previous node succeeded or failed:
{{ $status['NodeName'].isSuccess }}
{{ $status['NodeName'].errorMessage }}
| Field | Type | Description |
|---|---|---|
isSuccess | Boolean | true if the node completed without error |
errorMessage | String | The error message if the node failed; null otherwise |
This is useful in conditional expressions and If/Else nodes:
{{ $status['HTTP Request'].isSuccess ? 'ok' : $status['HTTP Request'].errorMessage }}
Trigger / workflow inputs — $inputs
The data passed into the workflow when it was triggered is available as $inputs:
{{ $inputs.body.userId }}
{{ $inputs.headers['x-custom-header'] }}
For webhook triggers, $inputs contains the full incoming request including the body and headers.
Workflow variables — $vars
Values set by Variable nodes are accessible via $vars:
{{ $vars.myKey }}
Secrets — $secrets
Project secrets are accessible via $secrets:
{{ $secrets.MY_SECRET_KEY }}
MY_SECRET_KEY must match a key defined in Secrets. The value is resolved at runtime and is never exposed in logs.
Current time — $now
The UTC timestamp at the moment the node executes:
{{ $now }}
{{ new Date($now).toISOString() }}
Crypto utilities (webhook scripts only)
Inside a Webhook Trigger's Custom Script verification function, the crypto utility is available:
const hash = await crypto.hmac('sha256', $secrets.WEBHOOK_SECRET, body);