Skip to Content
WorkflowsVariables & Data

Variables & Data

Variables are the connective tissue of a workflow. They carry data from the trigger through each node, allowing you to reference outputs from previous steps, transform data, and build dynamic content.

Template Syntax

Use double curly braces to reference variables anywhere in node configuration:

{{variableName}} {{trigger.data.conversationId}} {{nodes.enrichPerson.output.company.name}} {{lead.customProperties.plan_type}}

Dot Notation

Access nested properties with dot notation:

{{customer.firstName}} -- Direct property {{lead.customProperties.company_size}} -- Custom property {{trigger.body.order.line_items[0]}} -- Array access

Variable Sources

SourceSyntaxDescription
Trigger data{{trigger.data.*}}Data from the workflow trigger
Trigger body{{trigger.body.*}}Request body (webhook triggers)
Node output{{nodes.<nodeId>.output.*}}Output from a specific node
Workflow variables{{variables.*}}Variables set by Set Variable nodes
Execution context{{execution.id}}Current execution metadata
Workspace{{workspace.id}}Workspace identifier

Set Variable Node

The set-variable node creates or updates a variable that downstream nodes can reference.

Configuration:

FieldDescription
NameVariable name (used as {{variables.name}})
ValueStatic value, template expression, or JSON

Examples:

-- Static value Name: greeting Value: "Hello, welcome to our support!" -- Dynamic value from trigger Name: customerName Value: "{{trigger.data.customer.firstName}} {{trigger.data.customer.lastName}}" -- JSON object Name: enrichmentResult Value: { "email": "{{nodes.enrichPerson.output.email}}", "company": "{{nodes.enrichPerson.output.company.name}}", "score": "{{nodes.scoreLead.output.score}}" }

Data Extraction Nodes

Three specialized nodes extract commonly needed fields from platform entities:

Extract Lead Data

Extracts key fields from a CRM lead object, making them available as flat variables.

Output variables: leadName, leadEmail, leadPhone, leadStage, leadScore, leadOwner, leadTags, leadCustomProperties

Extract Customer Data

Extracts key fields from a customer object.

Output variables: customerName, customerEmail, customerPhone, customerTags, customerCustomProperties

Extract Message Data

Extracts key fields from a conversation message.

Output variables: messageText, messageType, messageSender, messageChannel, messageTimestamp, messageAttachments


Data Transformation Nodes

Parse JSON

Parses a JSON string into a structured object that can be accessed with dot notation.

Configuration:

FieldDescription
InputThe JSON string to parse
Output variableVariable name for the parsed result

Example:

Input: "{{httpResponse.body}}" Output variable: apiData -- Then access: {{variables.apiData.users[0].name}}

Format Date

Formats a date value into a specific string format.

Configuration:

FieldDescription
DateInput date (ISO 8601 string or timestamp)
FormatOutput format string (e.g., YYYY-MM-DD, MMM D, YYYY)
TimezoneIANA timezone (e.g., America/New_York)

Example:

Date: "{{lead.createdAt}}" Format: "MMM D, YYYY [at] h:mm A" Timezone: "America/New_York" -- Output: "Mar 24, 2026 at 2:30 PM"

Math Expression

Evaluates a mathematical expression and stores the result.

Configuration:

FieldDescription
ExpressionMath expression (e.g., {{lead.score}} * 1.5 + 10)
Output variableVariable name for the result

Supported operators: +, -, *, /, %, (), Math.round(), Math.floor(), Math.ceil(), Math.min(), Math.max()

Merge Data

Combines multiple data objects into a single object. Useful for assembling payloads from multiple node outputs.

Configuration:

FieldDescription
SourcesList of variable paths to merge
Output variableVariable name for the merged result
Strategyshallow (default) or deep merge

Transform Data

Runs a custom JavaScript-like transformation on input data.

Configuration:

FieldDescription
InputThe data to transform
TransformTransformation expression
Output variableVariable name for the result

Validation Nodes

Validate Lead Data

Checks that a lead object has all required fields populated. Outputs a boolean isValid and an array of missingFields.

Validate Email Format

Checks that a string is a valid email format. Outputs isValid (boolean) and normalizedEmail (lowercase, trimmed).


Variable Scoping

  • Workflow-level variables are accessible from any node in the workflow
  • Loop variables (item, index) are scoped to the loop body
  • Try-Catch error variables are scoped to the catch branch
  • Node outputs persist for the entire execution and can be referenced by any downstream node

Tips

  • Name variables descriptively. Use customerEmail instead of email to avoid ambiguity.
  • Use Set Variable early. Extract key values at the start of the workflow so they are easy to reference later.
  • Validate before using. If a variable might be null or missing, use a Condition node to check before passing it to an action.
  • Prefer extraction nodes. Use Extract Lead/Customer/Message data nodes instead of manually picking fields with dot notation — they handle null safety for you.