Le node Summarize dans n8n : agréger, regrouper et pivoter vos données comme un group by
Publié le 5 août 2026 · 6 min de lecture
Vous avez 200 commandes dans une liste d'items n8n et votre client vous demande « le total par client » ou « la moyenne des notes par produit ». En SQL, ce serait un GROUP BY ; dans Excel, un tableau croisé dynamique. Dans n8n, c'est le node Summarize — le seul node natif capable de regrouper des items par catégorie et de calculer quelque chose sur chaque groupe. Il est étonnamment méconnu : beaucoup de makers passent par un node Code pour recoder à la main ce que Summarize fait en trois clics, ou confondent son rôle avec celui d'Aggregate, qui fusionne sans calculer. Ce guide fait le tour du node : ses opérations, son mécanisme de group by, ses cas d'usage typiques et ses pièges.
À quoi sert le node Summarize
Summarize prend N items en entrée et produit un résumé chiffré en sortie. Deux paramètres pilotent tout :
- Fields to Summarize : les champs sur lesquels calculer, chacun associé à une opération (somme, moyenne, comptage…). Vous pouvez empiler plusieurs agrégations dans le même node.
- Fields to Split By : les champs de regroupement. Vide, le node calcule un résumé global sur tous les items ; renseigné, il produit un item de sortie par valeur distincte du champ — le fameux group by.
Ce couple « fonction d'agrégation + dimension de regroupement » est le cœur de l'analyse de données depuis des décennies : l'article fondateur de Jim Gray et ses co-auteurs (1997), Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals (voir sur Google Scholar), montrait déjà que l'essentiel du reporting se ramène à ces deux briques. Summarize, c'est exactement cela, appliqué aux items de votre workflow.
Les huit opérations disponibles
Pour chaque champ à résumer, vous choisissez une opération :
- Count : compte le nombre de valeurs présentes — idéal pour « combien de tickets par catégorie ».
- Count Unique : compte les valeurs distinctes — « combien de clients différents ont commandé ».
- Sum : additionne des valeurs numériques — chiffre d'affaires, quantités.
- Average : la moyenne numérique — note moyenne, panier moyen.
- Min / Max : la plus petite ou la plus grande valeur — première commande, montant record.
- Concatenate : assemble les valeurs en une seule chaîne, avec le séparateur de votre choix — pratique pour lister les références d'un groupe dans un message Slack.
- Append : rassemble les valeurs dans un tableau (avec option pour ignorer les valeurs vides), quand la suite du workflow doit itérer sur le détail de chaque groupe.
En sortie, chaque agrégat est nommé automatiquement operation_champ : additionner montant produit sum_montant, compter note produit count_note. Prévisible, donc facile à référencer dans les expressions des nodes suivants.
Fields to Split By : le group by de n8n
Prenons quatre commandes en entrée :
[
{ "client": "Atelier Brune", "montant": 240 },
{ "client": "Studio Ker", "montant": 90 },
{ "client": "Atelier Brune", "montant": 310 },
{ "client": "Studio Ker", "montant": 150 }
]
Un Summarize configuré avec Sum sur montant et client dans Fields to Split By renvoie :
[
{ "client": "Atelier Brune", "sum_montant": 550 },
{ "client": "Studio Ker", "sum_montant": 240 }
]
Deux clients distincts, deux items de sortie, chacun portant son total. Sans le split, vous obtiendriez un seul item { "sum_montant": 790 } — le total global. Le champ accepte une liste séparée par des virgules (region, categorie) pour croiser plusieurs dimensions, comme un tableau croisé dynamique à deux niveaux — le vrai « pivot » de n8n.
Summarize ou Aggregate : lequel choisir
La confusion est fréquente parce que les deux nodes « regroupent ». La distinction tient en une phrase : Aggregate fusionne sans calculer, Summarize calcule. Aggregate prend N items et les range tels quels dans un tableau au sein d'un item unique — parfait pour préparer un appel LLM ou un email récapitulatif, comme détaillé dans notre guide Split Out et Aggregate. Il ne sait ni sommer, ni compter, ni regrouper par catégorie. Dès qu'il y a une notion de « par client », « par produit », « par semaine » ou un chiffre à produire, c'est Summarize qu'il vous faut. Et ne le confondez pas non plus avec Merge, qui croise deux branches distinctes du workflow : Summarize travaille sur une seule branche.
Trois cas concrets
Total des commandes par client. C'est l'exemple ci-dessus, tel quel. En sortie de votre CRM ou de votre boutique, un Summarize « Sum sur montant, split par client » donne la liste des clients avec leur chiffre d'affaires — prête à alimenter un export Excel/CSV ou un Google Sheet envoyé chaque semaine.
Moyenne des notes par produit. Avec des avis clients en entrée, combinez deux agrégations dans le même node — Average sur note et Count sur note — avec un split par produit :
[
{ "produit": "Chaise Oslo", "average_note": 4.5, "count_note": 12 },
{ "produit": "Table Rennes", "average_note": 3.2, "count_note": 5 }
]
Le comptage à côté de la moyenne évite de sur-interpréter une note moyenne calculée sur deux avis.
Rapport hebdomadaire compté par catégorie. Un Schedule Trigger le lundi matin, une lecture des tickets de la semaine, puis un Summarize « Count, split par categorie » : trois nodes suffisent pour le squelette d'un rapport d'activité, sur le même principe que notre rapport Google Analytics 4 automatisé. C'est le genre de tâche encore trop souvent faite à la main dans un tableur — avec les risques que cela comporte : les travaux de Raymond Panko, notamment What We Know About Spreadsheet Errors (1998, voir sur Google Scholar), ont montré que la majorité des feuilles de calcul opérationnelles contiennent des erreurs. Un Summarize configuré une fois recalcule juste, toutes les semaines.
Les pièges à connaître
- Texte vs nombre. Le piège numéro un. Les données issues de webhooks, de CSV ou de Google Sheets arrivent souvent en chaînes :
"240"au lieu de240, et Sum ou Average produisent alors 0 ou un résultat absurde. Convertissez en amont avec un node Edit Fields (Set) et une expression du type{{ Number($json.montant) }}. - La casse des noms de champs.
Montant,montantetMONTANTsont trois champs différents. Si votre agrégat sort vide, vérifiez l'orthographe exacte dans la sortie du node précédent. - Les champs manquants. Par défaut, Summarize s'arrête en erreur si un champ à résumer est introuvable. L'option Continue if Field Not Found permet de continuer — utile sur des données hétérogènes, mais elle masque parfois un vrai problème en amont.
- Les doublons qui gonflent les totaux. Si la même commande apparaît deux fois (double webhook, re-synchronisation), la somme est fausse. Un node Remove Duplicates avant le Summarize assainit l'entrée.
Combiner Summarize avec Filter et Merge en aval
La sortie de Summarize est une liste d'items comme une autre : tout l'outillage n8n s'applique. Deux enchaînements reviennent constamment :
- Summarize → Filter : ne garder que les groupes qui dépassent un seuil — les clients à plus de 500 € de commandes, les catégories à plus de 10 tickets. Le node Filter fait office de clause
HAVING. - Summarize → Merge : réinjecter les agrégats dans les données de détail. Une branche calcule le total par client, l'autre conserve les commandes individuelles, et un Merge en mode combinaison par clé sur
clientajoutesum_montantà chaque ligne — pratique pour calculer la part de chaque commande dans le total du client.
En résumé
Le node Summarize est le GROUP BY de n8n : huit opérations (count, count unique, sum, average, min, max, concatenate, append), un regroupement par un ou plusieurs champs via Fields to Split By, une sortie nommée operation_champ. Retenez la ligne de partage avec Aggregate — fusionner sans calculer d'un côté, calculer par groupe de l'autre — et méfiez-vous des nombres stockés en texte, premier suspect quand un total semble faux. Si derrière ces agrégats se cache un besoin de reporting régulier et traçable, le Pack Conformité & Audit (149 €) fournit des workflows de consignation et de reporting prêts à l'emploi où Summarize joue précisément ce rôle de consolidation hebdomadaire.
FAQ
Questions fréquentes
Quelle est la différence entre Summarize et Aggregate dans n8n ?
Aggregate fusionne N items en un seul sans aucun calcul : il rassemble les valeurs ou les items entiers dans des tableaux, point final. Summarize, lui, calcule : il compte, additionne, moyenne, prend le min ou le max, et surtout il sait regrouper par catégorie grâce à Fields to Split By. Si vous voulez juste passer de N items à 1 pour un email ou un appel LLM, prenez Aggregate ; si vous voulez un total par client ou une moyenne par produit, c'est Summarize.
Comment faire un group by sur plusieurs champs dans n8n ?
Dans le node Summarize, le paramètre Fields to Split By accepte une liste de champs séparés par des virgules, par exemple region, categorie. Le node produit alors une ligne de sortie par combinaison unique des valeurs de ces champs, exactement comme un GROUP BY region, categorie en SQL ou un tableau croisé dynamique à deux niveaux. Chaque item de sortie contient les champs de regroupement plus les agrégats calculés.
Pourquoi ma somme renvoie-t-elle 0 ou un résultat étrange dans Summarize ?
Dans la quasi-totalité des cas, le champ additionné contient des chaînes de caractères et non des nombres : "42" au lieu de 42, un piège fréquent avec les données issues de webhooks, de CSV ou de Google Sheets. Insérez un node Edit Fields (Set) ou Code avant le Summarize pour convertir le champ en nombre, par exemple avec Number($json.montant). Vérifiez aussi la casse exacte du nom de champ : Montant et montant sont deux champs différents pour n8n.
Bundle FlowKit Complet
269 €