---
title: 'Build Batch Data'
description: 'Zip per-row records with a generated images array into the data array a Compositor batch consumes.'
updated: 2026-07-09
---

# Build Batch Data

**Node type:** `utility:build_data`  
**Category:** `Data`

## Description

Zips per-row text (an LLM JSON array like `[{headline, stat}, ...]`) with a generated images array into the data array a Compositor batch (the `data` port) consumes. Rows and images are paired by index, and each image URL is assigned to the configured key (default `bg`). This is the connector that bridges "generate at runtime" to "one reusable-layout Compositor renders N branded images".

Either input can be omitted: records alone produce rows without an image key; images alone produce rows containing only the image key.

## Canvas ports

These appear as port handles on the left side of the node.

| ID        | Label              | Details |
| --------- | ------------------ | ------- |
| `records` | **Records (JSON)** | `TEXT`  |
| `images`  | **Images**         | `IMAGE` |

## Sidebar config

These render as form fields in the right-side config panel when the node is selected.

| ID         | Label         | Details                                                                        |
| ---------- | ------------- | ------------------------------------------------------------------------------ |
| `imageKey` | **Image Key** | `TEXT` · default `bg`. The field name each image URL is assigned to in its row |

## Outputs

| ID     | Label    | Type   |
| ------ | -------- | ------ |
| `data` | **Data** | `JSON` |

The result also exposes the same array as `array` and as a JSON string on `text`, plus a `count` of rows.

## Notes

- Fails if the zip produces zero rows (nothing wired, or both inputs empty).

---

_Auto-generated from the Wireflow node registry._

---

Documentation index: fetch https://www.wireflow.ai/llms.txt for the full list of Wireflow docs.
