Make Iterator and Array aggregator: build a Sume bulk items array

In Make, an Iterator splits an array into bundles and an Array aggregator joins them. Use the pair to turn sheet rows into a Sume bulk items array.

4 min readSume
All posts

How do I turn spreadsheet rows into one Sume bulk request in Make?

A Sume bulk run wants a single JSON body with an items array of up to 100 entries, each shaped like one run. A spreadsheet module in Make returns one bundle per row. You need to go from many bundles to one array, which is what an aggregator does.

Make's help describes the Array aggregator as accumulating all the bundles it receives and outputting a single bundle with an array containing one item per accumulated bundle. The source module is usually an iterator or a search module. Its counterpart, the Iterator, converts an array into a series of bundles, each array item output as a separate bundle (both read 2026-10-04).

What does the scenario look like?

  • A search or list-rows module returns the spreadsheet rows, one bundle each.
  • An Array aggregator collects them into one array, with the source module set to that rows module.
  • A JSON module builds the final body from that array. Make's help says nested collection items are hard to select inside the aggregated fields, and suggests Create JSON after the aggregator with a target structure type.
  • An HTTP request module sends the body to POST /v1/formats/{handle}/{slug}/bulk-runs with your API key and an Idempotency-Key.

What must the final body contain?

Each element needs an input object. Add concurrency between 1 and 16 beside items. If the sheet has more than 100 rows, filter the search to a range, for example rows 1 to 100, and run the scenario once per chunk; a body with 101 items is refused.

Sume's bulk queue has no webhook of its own. If you want a callback, put communication.webhook_url on each item.

{
  "concurrency": 4,
  "items": [
    {"input": {"sku": "M-1", "language": "en"}},
    {"input": {"sku": "M-2", "language": "en"}}
  ]
}

What should I check before turning it on?

Run the scenario once with two rows and read the queue at GET /v1/format-run-queues/{id}. The aggregator's output shape is the usual failure point, so confirm the HTTP module's body really is the object above, not an array of arrays.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume