Variables & Conditions
Pass data between workflow steps with template variables and branch execution with condition nodes.
Template Variables
Template variables let you reference output from previous workflow steps in action config fields. Any field with a {{ }} icon supports template variables.
Syntax
{{@nodeId:NodeLabel.field}}| Part | Meaning |
|---|---|
@nodeId | The internal ID of the source node |
NodeLabel | The display label of the source node |
.field | Path to a specific field in the node's output |
How It Works
When a step executes, its output is stored in a map keyed by node ID. The standard output format is:
{
"success": true,
"data": {
"text": "Generated content here",
"model": "claude-sonnet-4-20250514"
}
}When you reference {{@nodeId:Generate Text.text}}, the engine:
- Looks up the output for
nodeId - Automatically unwraps the
dataobject - Accesses the
textfield
Examples
Reference trigger input:
{{@triggerId:Webhook.event}}Reference AI-generated text from a previous step:
{{@abc123:Generate Text.text}}Reference nested fields:
{{@def456:Get Customer.data.email}}Use in an email body (template textarea):
Hello {{@abc123:Get Customer.data.name}},
Your order {{@triggerId:Webhook.orderId}} has been processed.
Summary: {{@def456:Generate Text.text}}Inserting Variables
You don't need to manually type the syntax. In template-enabled fields:
- Type
{{to start - A dropdown appears showing available nodes and their output fields
- Select a node and field to insert the full reference
Supported Field Types
Template variables work in these config field types:
- Template Input — Single-line text with variable support
- Template Textarea — Multi-line text with variable support
Plain text, number, and select fields do not support template variables.
Condition Nodes
Condition nodes let you branch workflow execution based on boolean expressions.
Adding a Condition
- Click the + node to add a new action
- Select the Condition action (built-in system action)
- Connect the condition node to two downstream paths — one for
true, one forfalse
Expression Syntax
Condition expressions evaluate to true or false. You can use:
Operators:
- Comparison:
===,!==,>,<,>=,<= - Logical:
&&,||,!
Values:
- Variables from previous steps:
{{@nodeId:Label.field}} - String literals:
"active","high" - Number literals:
42,3.14 - Boolean literals:
true,false
Expression Examples
Check if a status equals a value:
{{@abc123:Get Customer.status}} === "active"Check a numeric threshold:
{{@def456:Score Lead.score}} > 80Combine conditions:
{{@abc123:Get Customer.status}} === "active" && {{@def456:Score Lead.score}} > 50Check for existence (truthy):
{{@abc123:Generate Text.text}} !== ""Security
Condition expressions are validated before execution:
- Only whitelisted operators are allowed (comparison, logical, literals)
- Arbitrary code execution is blocked
- Invalid expressions cause the condition step to fail with a clear error
Branching Behavior
When a condition evaluates:
- True: Execution follows the "true" edge to the next connected node
- False: Execution follows the "false" edge to the alternate path
Each branch can contain any number of subsequent action steps.
Data Passing Patterns
Linear Chain
The simplest pattern — each step reads from the previous one:
Trigger → Generate Text → Send Email
(writes text) (reads text)Fan-Out
Multiple steps read from the same source:
┌→ Send Slack (reads classification)
Classify ┤
└→ Create Ticket (reads classification)Conditional Routing
Use a condition to route data to different paths:
Trigger → Score → Condition (score > 80)
├→ True: Send Welcome Email
└→ False: Add to Review QueueTips
- Reference only data produced by upstream steps (nodes that execute before the current one).
- Test with realistic data to verify template variable resolution.
- Use the Runs panel to inspect actual resolved values for each step.
- Keep references simple — avoid deeply nested chains when a simpler design works.
Next Steps
Actions Catalog
See which actions support template variables.
Execution & Logs
Inspect resolved variable values in execution logs.
How is this guide?