Automation Answers

Why Does My Make Aggregator Only Get One Item?

A Make aggregator collects only one item when its source module is wrong, the iterator gets a single value instead of an array, or a filter drops bundles.

By Automation Ace Editorial Team · Reviewed for technical accuracy by Troy Tessalone · Published · Updated

Short answer

Why Does My Make Aggregator Only Get One Item?

An aggregator in Make combines the bundles produced by its source module, usually an iterator or a search. It ends up with only one item when the source module is set to a module that outputs a single bundle, when the iterator receives one value instead of an array, or when a filter or router between them drops the other bundles. Check the source module setting first, then confirm the iterator outputs several bundles in the run history.

Common causes

  • The aggregator's Source module points to the trigger or another module that outputs one bundle, not to the iterator.
  • The iterator is mapped to a single field or a joined text value instead of the array itself.
  • A filter or router between the iterator and the aggregator lets only one bundle through.
  • A Group by value is set, so the aggregator outputs one group per value instead of one combined list.
  • The search module before the iterator is limited to one result.

Diagnostic steps

  1. Open the aggregator and check its Source module. Set it to the iterator or search that produces the bundles you want combined.
  2. In the run history, click the bubble on the iterator and count the bundles it output.
  3. Map the iterator to the array field, shown with square brackets, not to a single item or a text version of the list.
  4. Check filters and routes between the two modules, and clear Group by unless you need groups.
  5. Raise the search module's result limit if it caps how many items are returned.

Example

A scenario iterates over order line items, then uses a Text aggregator to build an email. Only the first item appears because the aggregator's source module was set to the webhook trigger. Changing the source module to the iterator lists every line item.

Caveats

Aggregators and iterators each use operations, so very large arrays can be costly. If you only need to join values, a function such as join() or map() in a mapping can avoid the loop entirely.