Skip to Content
BuildAction StepsSummarize

Summarize

Summarize turns a list into grouped results. Pick what to group by, then say what to work out for each group: a count, a total, an average, the smallest or the largest.

At a glanceVerified in app · Oct 29, 2026
Use it to
Group a list by one or more fields and calculate counts, totals, averages, minimums, or maximums
Find it
Tools → Data → Transform → Summarize
Cost
1 Step credit per execution
Limits
Up to 100,000 input items · 100,000 characters max serialized output
Output
{{ N.groups }} (list of grouped records), {{ N.groupCount }}
Instead
Inline pipes ({{ 1.orders | pluck:amount | total }}) when computing a single total

It answers the questions that otherwise need code. Revenue per account manager, tickets per priority, orders per region.

Simple total or average without grouping? You can calculate a single total, average, count, or min/max directly inside field tokens using Data Transformation:

  • Sum of record property: {{ 3.deals | pluck:amount | total }}
  • Average deal size: {{ 3.deals | pluck:amount | average }}
  • Largest sale: {{ 3.deals | pluck:amount | largest }}
  • Count of items: {{ 3.deals | count }}

Use the Summarize canvas step when you need to group data by dimensions (e.g. revenue grouped by account manager or ticket counts per status).

Setting it up

Add the step

Open Tools in the dock and choose Summarize.

Point it at a list

List takes a reference to a list an earlier step produced, for example {{ 3.result }} (or a valid JSON array). A single record or plain value is not wrapped as a one-item list. Insert the reference from the data icon rather than typing it.

Choose how to group

Group by takes the field whose values become the groups: region, owner, priority. Add more than one row to group by a combination.

Leave it empty to treat the whole list as one group. That is how you total a list without splitting it.

Say what to work out

Work out takes one row per number you want. Each row picks an operation and what to work on: a field of each record, or each whole item. Count needs neither.

OperationWhat it gives you
CountHow many records are in the group
Count uniqueHow many different values a field has
SumThe total of a numeric field
AverageThe mean of a numeric field
SmallestThe lowest value
LargestThe highest value
List the valuesEvery value of that field in the group, as a list
Join the valuesThe same values as one piece of text, with a separator you choose

Summarizing a list of plain values: When the input list holds plain numbers rather than records, set Work on to Each whole item and leave Group by empty. The output column is named after the operation alone, such as {{ N.groups.0.sum }}.

What it passes on

The result is always a list under groups (ordered by when each group first appeared in the input), even when everything lands in one group:

ReferenceWhat it holds
{{ N.groups }}One entry per group
{{ N.groupCount }}How many groups there are

Each group carries your Group by fields plus one column per Work out row (<operation>_<field>):

// Input: [{"region": "UK", "amount": 500}, {"region": "UK", "amount": 700}] // Output at {{ 5.groups }}: [ { "region": "UK", "sum_amount": 1200, "count": 2 } ]

Read fields from the first group as {{ 5.groups.0.region }}, {{ 5.groups.0.sum_amount }}, and {{ 5.groups.0.count }}, or loop over {{ 5.groups }} with a Repeater. The output also records the operation and timezone when applicable.

How values are counted

Input CaseHow Summarize Handles It
Missing or non-numeric valuesA missing value (null, "n/a", true, {}) is never counted as zero. Under If a field is missing, choose Report it (fail the step) to halt and name the invalid field, or Skip those records to exclude them and record counts in skippedByOperation and skippedByGroupField.
Numeric stringsNumeric text such as "1200" is parsed as a number for arithmetic (Sum, Average, Smallest, Largest).
Decimal rounding (Sum & Average)Uses decimal accumulation to avoid floating-point drift (such as 0.1 + 0.2) and rounds to Decimal places (0 to 10, default 2). Very large values remain subject to standard number representation limits.
Exact extremes (Smallest & Largest)Returns the exact unrounded value from the input records.

Limits

  • Input and output size. Summarize accepts up to 100,000 items and produces up to 100,000 characters of serialized output.
  • Two rows cannot write the same column. Two Sums of amount would both be sum_amount, so the step reports the clash rather than overwriting a result.
  • A record missing its group-by field never lands in a group called “undefined”. It follows the same If a field is missing setting.

Examples to copy

Revenue per account manager

List: {{ 3.deals }} · Group by: owner · Work out: Sum of amount, and Count.

Gives one entry per owner with sum_amount and count. Follow it with a Repeater over {{ N.groups }} to send each manager their own figure.

Tickets per priority, as one message

List: {{ 2.tickets }} · Group by: priority · Work out: Count.

Then reference the groups directly in a Slack message rather than looping.

A single total, no grouping

List: {{ 4.invoices }} · Group by: empty · Work out: Sum of total.

One group, reached as {{ N.groups.0.sum_total }}.

Verify it works
Run
Point List at a sample array of records, set Group by and a Sum or Count row, and click Run step in Test & Debug
You should see
The Output tab returns groups (one object per group with your calculated columns) and groupCount.

What’s Next?

Last updated on

Search documentation

Start with a guide, or search by Step, task or error.