Aggregate
Descripción
Sección titulada «Descripción»El nodo Aggregate convierte una lista de registros en cifras: cuántos hay, cuánto suman, el importe medio, el mayor, el más antiguo… Sin agrupar devuelve un único objeto; si indicas un campo de agrupación devuelve una fila por grupo (ventas por producto, leads por estado, tickets por responsable) y puedes ordenarlas y quedarte con las primeras.
Reconoce números escritos con coma decimal ("20,5"). Lo que no sea un número se ignora en sumas, medias, mínimos y máximos; si una columna no tiene ningún número (por ejemplo fechas en formato AAAA-MM-DD), el mínimo y el máximo comparan los textos.
Configuración
Sección titulada «Configuración»| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| path | text | No | Ruta a la lista (orders, data.items…). Vacío = los datos que llegan (o items / data si son una lista) |
| metrics | textarea | Sí | Métricas nombre=operación:campo, una por línea o separadas por comas |
| groupBy | text | No | Campo por el que agrupar (admite rutas, como cliente.pais) |
| sortBy | text | No | Con grupos: nombre de una métrica o del campo de agrupación; con - delante, de mayor a menor |
| limit | number | No | Con grupos: máximo de filas (top N). Vacío o 0 = todas |
| decimals | number | No | Redondeo de sumas y medias, de 0 a 10 (por defecto 2) |
| outputKey | text | No | Campo de salida (por defecto resumen) |
Operaciones
Sección titulada «Operaciones»| Operación | Resultado |
|---|---|
count | Número de elementos. Con campo (count:email), solo los que lo tienen informado |
sum:campo | Suma de los valores numéricos |
avg:campo | Media de los valores numéricos (null si no hay ninguno) |
min:campo / max:campo | Mínimo / máximo (números o, si no hay números, textos como fechas ISO) |
first:campo / last:campo | Primer / último valor informado |
distinct:campo | Cuántos valores distintos hay |
join:campo | Los valores unidos con coma (útil para un resumen en texto) |
Sin agrupar, con metrics = "pedidos=count, total=sum:importe":
{ "resumen": { "pedidos": 5, "total": 35.75 }, "count": 5}Agrupando por producto, con sortBy = "-total":
{ "resumen": [ { "producto": "B", "pedidos": 1, "total": 20.25 }, { "producto": "A", "pedidos": 3, "total": 15.5 } ], "count": 5}El nodo conserva los datos que llegaron y añade el resultado y count (elementos de la lista). Si lo que llega es directamente una lista (por ejemplo, la salida de un Array Filter), la lista se conserva en items, para poder usarla después con List to Text (source: items). Los registros sin valor en el campo de agrupación forman un grupo con valor vacío.
Ejemplos de Uso
Sección titulada «Ejemplos de Uso»Top 5 de productos por ventas
Sección titulada «Top 5 de productos por ventas»{ "label": "Top productos", "path": "pedidos", "metrics": "ventas=sum:total, pedidos=count", "groupBy": "producto", "sortBy": "-ventas", "limit": 5, "outputKey": "top"}Combínalo con el nodo List to Text (source: top) para montar el mensaje del informe.
Cifras de la semana
Sección titulada «Cifras de la semana»{ "label": "Resumen semanal", "path": "ventas", "metrics": "total=sum:importe, ticket_medio=avg:importe, mayor=max:importe, clientes=distinct:cliente_id, primera=min:fecha"}Nodos Relacionados
Sección titulada «Nodos Relacionados»- arrayFilter (Array Filter - para quedarte con los registros que interesan antes de resumir)
- arrayGroupBy (Array Group By - agrupa sin calcular métricas)
- listToText (List to Text - para convertir el resultado en texto o tabla)