Skip to main content

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

ParameterDescriptionRequired
Field to ExpandPath to the array field to split onYes
New Field NameName for the expanded valuesNo

Field to Expand

The path to the field containing the array. Supports dot notation for nested fields:

  • items - Top-level array
  • data.results - Nested array
  • order.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