Data Nodes Reference
Data nodes transform, process, and manipulate data as it flows through your workflow.
Transform Data Node
Execute JavaScript to transform data.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Code | Code Editor | Yes | JavaScript transformation code |
Code Structure
// Access input from previous nodes
const data = input.webhooktrigger_1.payload;
// Process the data
const result = {
formatted_name: data.name.toUpperCase(),
email: data.email.toLowerCase()
};
// Return the output
return result;
Input Object
All upstream node outputs are available in input:
input.webhooktrigger_1.payload // Webhook data
input.transformdata_1.result // Previous transform
input.contact // Contact lookup result
Output Variables
Whatever you return becomes available:
{{transformdata_1.formatted_name}}
{{transformdata_1.email}}
Set Variables Node
Store values for use later in the workflow.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Variables | Key-Value | Yes | Variables to set |
Example
Variable Name: customer_email
Value: {{contact.email}}
Variable Name: total_value
Value: {{order.total}}
Output Variables
{{setvariables_1.customer_email}}
{{setvariables_1.total_value}}
Database Query Node
Execute SQL queries against your database.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Query Type | Select | Yes | SELECT, INSERT, UPDATE, DELETE |
| Table | Select | Yes | Target table |
| Query | SQL Editor | Yes | SQL query |
| Parameters | Array | No | Query parameters |
Example Queries
Select:
SELECT * FROM contacts WHERE email = $1
-- Parameters: [{{input.email}}]
Insert:
INSERT INTO contacts (name, email) VALUES ($1, $2) RETURNING *
-- Parameters: [{{input.name}}, {{input.email}}]
Output Variables
{{dbquery_1.rows}} - Array of results
{{dbquery_1.row_count}} - Number of rows
{{dbquery_1.rows[0]}} - First row
API Request Node
Make HTTP requests to external APIs.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| URL | Text | Yes | API endpoint |
| Method | Select | Yes | GET, POST, PUT, PATCH, DELETE |
| Headers | Key-Value | No | HTTP headers |
| Body | JSON/Text | No | Request body |
| Timeout | Number | No | Timeout in seconds |
Authentication
Add auth headers:
Authorization: Bearer {{integration.api_key}}
Content-Type: application/json
Output Variables
{{apirequest_1.data}} - Response body
{{apirequest_1.status}} - HTTP status code
{{apirequest_1.headers}} - Response headers
{{apirequest_1.success}} - true if 2xx status
Code Node
Execute custom JavaScript with more flexibility than Transform.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Code | Code Editor | Yes | JavaScript code |
| Timeout | Number | No | Execution timeout |
Features
- Full JavaScript support
- Async/await support
- Error handling
- Console logging
Example
async function run(input) {
try {
const items = input.data.items || [];
const processed = items.map(item => ({
...item,
processed_at: new Date().toISOString()
}));
return {
success: true,
items: processed,
count: processed.length
};
} catch (error) {
return {
success: false,
error: error.message
};
}
}
return await run(input);
JSON Parse Node
Parse JSON strings into objects.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Input | Variable | Yes | JSON string to parse |
| Error Handling | Select | No | fail, null, empty_object |
Output Variables
{{jsonparse_1.data}} - Parsed object
{{jsonparse_1.success}} - Whether parsing succeeded
JSON Stringify Node
Convert objects to JSON strings.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Input | Variable | Yes | Object to stringify |
| Pretty Print | Toggle | No | Format with indentation |
Output Variables
{{jsonstringify_1.json}} - JSON string
Array Operations Node
Perform common array operations.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Operation | Select | Yes | filter, map, sort, slice, find |
| Array | Variable | Yes | Input array |
| Expression | Text/Code | Varies | Operation-specific |
Operations
Filter:
Array: {{data.contacts}}
Expression: item.is_active === true
Map:
Array: {{data.contacts}}
Expression: { name: item.name, email: item.email }
Sort:
Array: {{data.contacts}}
Sort By: name
Order: ascending
Output Variables
{{arrayops_1.result}} - Resulting array
{{arrayops_1.count}} - Result count
Quick Reference
Node Selection Guide
| Need | Use |
|---|---|
| Transform data with code | Transform Data |
| Store values for later | Set Variables |
| Query your database | Database Query |
| Call external APIs | API Request |
| Complex JavaScript logic | Code |
| Parse JSON strings | JSON Parse |
| Convert to JSON string | JSON Stringify |
| Array operations | Array Operations |
Common Patterns
API → Transform → Use:
[API Request] → [Transform Data] → [Next Node]
Query → Process Each:
[Database Query] → [Loop] → [Process Item]
Combine Data:
// In Transform
return {
contact: input.contact,
company: input.company,
combined_name: `${input.contact.name} at ${input.company.name}`
};