#30 Como funcionan los Iterators y Aggregators en Make.com
Aprende a trabajar con los bucles en Make.com
Si trabajas habitualmente con Make.com, la herramienta de automatización sobre la que suelo hablar por aquí, esto te va a interesar y mucho, porque es una de las principales cagadas que comete la gente que intenta automatizar.
En la vida de todo automatizador, tarde o temprano uno se va a encontrar con escenarios donde se necesita procesar listas de elementos y para eso necesitas entender los Iteradores (Iterators) y Agregadores (Aggregators).
Entender cómo funcionan estos componentes es clave para poder crear automatizaciones de manera efectiva, ya que te permiten manejar grandes volúmenes de datos de forma flexible y eficiente.
1. Los Bundles y los Arrays
Primero de todo, es fundamental entender cómo Make gestiona la información que trata.
En Make, las automatizaciones se llaman escenarios y están formadas por módulos conectados entre sí. Cada módulo recibe información en forma de 'paquetes de datos' (Bundles), que son objetos con pares clave-valor que contienen los datos procesados en cada paso.
Arrays o matrices
Un array o matriz es un tipo de datos que agrupa varios elementos en una lista ordenada. Cada elemento del array puede ser un valor simple (texto, número) o un objeto más complejo (con diversos campos).
Ejemplo array
[
{
"empleado": "Ana",
"hora": "09:00",
"actividad": "Reunión de equipo"
},
{
"empleado": "Ana",
"hora": "10:00",
"actividad": "Desarrollo de módulo X"
},
{
"empleado": "Carlos",
"hora": "09:00",
"actividad": "Planificación semanal"
},
{
"empleado": "Carlos",
"hora": "10:00",
"actividad": "Revisión de informes"
}
]
Esta array tiene 4 elementos en su interior, y cada elemento contiene un objeto con 3 campos: 'empleado', 'hora' y 'actividad'.
Cada uno de estos objetos representa una entrada en la lista, con información estructurada sobre la persona, el horario y la tarea que realiza.
2. Iterators ¿Qué son y cómo usarlos?
Ahora que te haces a la idea de qué son los arrays y los bundles, es hora de ver a los Iterators en acción.
El Iterator entra en una lista de elementos (Array) y los separa uno por uno, creando un paquete de datos (bundle) para cada elemento de esa lista..
Piensa en el Iterator como un “bucle” que recorre cada elemento de una lista.
Cada elemento de la lista es transformado en un bundle independiente, lo que permite que los módulos posteriores actúen sobre cada elemento de manera individual.
En términos simples, si en el array hay cuatro registros como en el ejemplo de arriba, el Iterator generará cuatro bundles de salida, cada uno con los datos de un registro horario distinto.
Ejemplo práctico: Procesando los Adjuntos de un email
Supongamos que en tu escenario de Make tienes un módulo inicial que recibe un correo electrónico con múltiples archivos adjuntos.
Cada adjunto es un elemento dentro de la matriz, y queremos procesarlos individualmente.
El escenario funcionaría así:
Desencadenador/Trigger (ejemplo: "Watch Emails" en Gmail)
Recibes un correo electrónico con varios archivos adjuntos.
Los archivos adjuntos se almacenan en un array dentro del bundle del correo.
Iterator
Se conecta al módulo de correo electrónico y selecciona el campo/propiedad que contiene esa lista de adjuntos.
Divide el array de adjuntos en múltiples bundles individuales, uno por cada archivo.
Procesamiento individual
Ahora, cualquier módulo que conectes después del Iterator (ejemplo: "Upload a File to Google Drive" o "Convert Image to PDF") se ejecutará una vez por cada archivo adjunto, mientras que antes no podías hacerlo.
3. Aggregators
Después de procesar los datos individualmente con un Iterator, quizás quieras juntar los resultados en un solo paquete. Aquí es donde intervienen los Aggregators.
Los Aggregators actúan sobre múltiples bundles que llegan de un módulo anterior y los reúnen en un solo bundle de salida.
Es exactamente lo contrario al Iterator: si el Iterator convertía un array en varios paquetes, el Aggregator los “condensa” de nuevo, generando un nuevo array que contenga todos los resultados.
Existen varios tipos de agregators en Make:
Array Aggregator
Reagrupa múltiples bundles en una matriz (array), permitiendo reconstruir estructuras de datos a partir de elementos procesados individualmente.Numeric Aggregator
Realiza cálculos numéricos sobre varios valores, como sumas, recuentos o promedios.Table Aggregator
Agrupa datos seleccionados en una tabla estructurada.
Text Aggregator
Une múltiples fragmentos de texto en un solo string, útil para generar reportes o combinaciones de datos.
Ejemplo: Uso de Agreggator para gestionar adjuntos
Ponte en la situación que recibes un correo con varios archivos adjuntos, quieres procesarlos individualmente para hacer una transformación sobre cada uno de ellos y por ultimo, quieres enviarlos todos en un solo email.
Escenario
1. Desencadenador - "Watch Emails"
Detecta un correo con varios adjuntos.
2. Iterator
Separa cada adjunto en bundles individuales para procesarlos uno y hacer las modificaciones que consideremos pertinentes.
3. Array Aggregator
Reagrupa todos los adjuntos en una Array.
4. Send Email
Envía un solo correo con todos los archivos adjuntos.
Sin el Array Aggregator, Make enviaría un correo electrónico por cada adjunto, en lugar de agruparlos en un solo mensaje.
Hasta aquí la edición de hoy, espero que te haya aportado y tengas un poco más claro lo que son los Iterators y los Aggregators.
Si quieres seguir aprendiendo de Make, te dejo por aquí un video que seguro que puede ayudarte.
¿Sobre que otros temas de Make te gustaria que hablase?
Cuéntame 🫵