Split
Expands array fields into multiple individual items.
Overview
The Split node takes items containing arrays and produces multiple items—one for each array element. Use it to:
- Process array elements individually
- Flatten nested data structures
- Expand multi-value fields
Parameters
| Parameter | Description | Required |
|---|---|---|
| Field to Expand | Path to the array field to split on | Yes |
| New Field Name | Name for the expanded values | No |
Field to Expand
The path to the field containing the array. Supports dot notation for nested fields:
items- Top-level arraydata.results- Nested arrayorder.lineItems- Deeply nested array
New Field Name
Optional new name for the expanded field. If not specified, uses the original field name (last segment of the path).
Output
Creates one output item per array element. Each output contains:
- All original item fields (except the expanded array)
- The array element value in the specified field
Input:
{
"orderId": "123",
"items": ["Widget", "Gadget", "Gizmo"]
}
Field to Expand: items
Output:
[
{ "orderId": "123", "items": "Widget" },
{ "orderId": "123", "items": "Gadget" },
{ "orderId": "123", "items": "Gizmo" }
]
Examples
Expand Line Items
Process each order line separately:
Input:
{
"orderId": "ORD-001",
"customer": "Acme Corp",
"lineItems": [
{ "product": "Widget", "qty": 5 },
{ "product": "Gadget", "qty": 3 }
]
}
Field to Expand: lineItems
Output:
[
{
"orderId": "ORD-001",
"customer": "Acme Corp",
"lineItems": { "product": "Widget", "qty": 5 }
},
{
"orderId": "ORD-001",
"customer": "Acme Corp",
"lineItems": { "product": "Gadget", "qty": 3 }
}
]
Split with Rename
Expand and rename the field:
Input:
{
"email": "user@example.com",
"roles": ["admin", "editor"]
}
Field to Expand: roles
New Field Name: role
Output:
[
{ "email": "user@example.com", "role": "admin" },
{ "email": "user@example.com", "role": "editor" }
]
Split Nested Array
Expand from nested path:
Input:
{
"id": "1",
"data": {
"tags": ["urgent", "review"]
}
}
Field to Expand: data.tags
New Field Name: tag
Output:
[
{ "id": "1", "data": {}, "tag": "urgent" },
{ "id": "1", "data": {}, "tag": "review" }
]
Process Tags Individually
Send notifications for each recipient:
Input:
{
"subject": "Update",
"recipients": ["alice@example.com", "bob@example.com"]
}
Field to Expand: recipients
New Field Name: recipient
Then connect to Send Gmail with {{\$item.data.recipient}} as the recipient.
Tips
- The specified field must contain an array
- Items without a non-empty array at the specified path are filtered out
- All other fields are preserved in each output
- Use New Field Name for clearer downstream references
- Combine with Aggregate to group split items back together
- Works well before nodes that process items individually