Data Mapping
Learn how to use data from one node in another. Data mapping is how you create dynamic, connected automations.
What is Data Mapping?
Data mapping lets you use output from one node as input for another. Instead of hardcoding values, you can reference data dynamically using templates.
email: "user@example.com"
to: {{#1.email}}
The email tool uses the email address from the trigger dynamically
Template Syntax
Each node on the canvas has a sequence number (shown as #1, #2, #3, etc.). Use this number to reference data from that node.
Example:
{{#1.name}}Gets the "name" field from node #1 (trigger)
Example:
{{#2.files[0].name}}Gets the first file's name from node #2
Most tool outputs are nested objects. Use dot notation to access specific fields within the data.
If node #1 (trigger) outputs:
{
"user": {
"name": "John",
"email": "john@example.com",
"address": {
"city": "New York"
}
}
}You can access:
{{#1.user.name}}-> "John"{{#1.user.email}}-> "john@example.com"{{#1.user.address.city}}-> "New York"
When working with arrays, use square brackets with an index (starting at 0) to access specific items.
{{#2.files[0].name}}First file's name
{{#2.files[1].id}}Second file's ID
To process all items in an array, use an Iterator utility instead of accessing by index.
All expressions inside {{ }} are evaluated as JavaScript. You can use JavaScript methods to transform data.
{{#1.name.toUpperCase()}}Convert to uppercase
{{#1.price * 1.1}}Add 10% to price
{{#1.items.length}}Get array length
{{#1.text.split(",")[0]}}Split and get first part
For property names with spaces or hyphens, use special syntax:
{{#1."first name"}}Property with space
{{#1.my-field}}Hyphenated property (auto-converted)
Iterator Context
When inside an Iterator loop, you have access to special variables:
{{iterator.item}}The current item being processed
{{iterator.index}}Current index (0-based)
{{iterator.total}}Total number of items
{{iterator.bundleIndex}}Same as index (Make.com style)
Execution Globals
These variables are available throughout the entire flow execution:
{{$executionId}}Unique ID for this execution
{{$userId}}ID of the user running the flow
{{$flowId}}ID of the current flow
Using the Data Picker
You don't need to memorize the syntax. Use the built-in data picker to select values visually.
- 1
Click on any input field
When configuring a tool, click on the field you want to fill
- 2
Open the data picker
Click the icon or type {{
- 3
Browse available data
See all nodes and their output fields organized in a tree view
- 4
Click to insert
Click any field to insert the correct template syntax automatically
Combining Text and Data
You can mix static text with dynamic data in any field.
Email Subject:
New order from {{#1.customerName}} - Order #{{#1.orderId}}Result: "New order from John Smith - Order #12345"
Slack Message:
File "{{#2.fileName}}" was uploaded to {{#2.folderName}}Result: 'File "report.pdf" was uploaded to Reports'
Common Patterns
Webhook to Email
Send an email when receiving webhook data
{{#1.email}}Welcome, {{#1.name}}!AI Processing
Use AI to process form submissions
Summarize this feedback: {{#1.feedback}}File Operations
Upload a file with dynamic naming
report_{{#1.date}}.pdfTips
Run the previous node first
Test the upstream node to see its actual output structure in the data picker.
Check for null values
If a referenced field doesn't exist, the template will output nothing. Use default values or IF conditions to handle missing data.
Use sequence numbers (#1, #2, etc.)
Reference nodes by their sequence number shown on the canvas, not by name.