Contenido
Estructura de datos en n8n: tutorial sobre items, JSON y procesamiento de datos
El concepto más importante de n8n, y también el que más suele confundir, es este: entre los nodos no se transmite un único dato, sino una lista de varios datos (items).
Cómo son los items
La salida de un nodo se ve así en la vista JSON:
[
{ "name": "Juan", "email": "ming@example.com" },
{ "name": "Lucía", "email": "hua@example.com" },
{ "name": "Ana", "email": "mei@example.com" }
]
Estos son 3 items. Internamente, cada item en n8n tiene este aspecto:
{
"json": { "name": "Juan", "email": "ming@example.com" },
"binary": { }
}
json: datos normales;$jsonen una expresión hace referencia a ellos.binary: datos de archivos (imágenes, PDF, hojas de cálculo, etc.); solo aparece cuando necesitas procesar archivos.
Los nodos se ejecutan una vez por cada item
Esta es la regla más importante de n8n. Supongamos que el nodo anterior genera 3 elementos y el siguiente es el nodo «Send Email»:
[Google Sheets] ──3 items──▶ [Send Email]
Envía 3 correos (uno por cada elemento)
No tienes que escribir un bucle: n8n se encarga automáticamente. En el nodo Send Email, {{ $json.email }} vale ming@example.com al procesar el primer elemento y hua@example.com al procesar el segundo, y así sucesivamente.
El número que aparece en la esquina superior derecha del nodo (por ejemplo, 3 items) indica cuántos elementos ha generado.

«¿Por qué se envió mi mensaje 5 veces?»
La causa más común es que el nodo anterior generó 5 items, así que el nodo de envío de mensajes se ejecutó 5 veces. Solución:
- Si quieres ejecutarlo una sola vez: activa Execute Once en Settings del nodo para procesar solo el primer elemento.
- Si quieres combinar varios elementos en un solo mensaje: primero usa el nodo Aggregate o Summarize para combinarlos en un elemento.
Nodos de transformación de datos habituales
| Nodo | Función | Ejemplo |
|---|---|---|
| Split Out | Divide el array de un elemento en varios elementos | Una API devuelve { "orders": [...] }; crea un item por cada pedido |
| Aggregate | Combina campos de varios elementos en un array y los convierte en uno | Combina 10 pedidos y envía un resumen de una vez |
| Summarize | Agrupa y calcula estadísticas (suma, recuento, promedio) | Calcula las ventas por región |
| Limit | Conserva solo los primeros N elementos | Procesa solo los 5 artículos más recientes |
| Remove Duplicates | Elimina los datos duplicados | Envía solo un correo a cada dirección |
| Sort | Ordena | Ordena por fecha |
| Filter | Conserva solo los datos que cumplen una condición | Procesa solo los pedidos con un importe superior a 1000 |
| Edit Fields (Set) | Añade, modifica o elimina campos | Conserva solo los campos necesarios |
Ejemplo: dividir el array devuelto por una API
A menudo, los datos obtenidos con HTTP Request son «un item que contiene un array»:
[
{
"results": [
{ "id": 1, "title": "Artículo A" },
{ "id": 2, "title": "Artículo B" }
]
}
]
En este caso, el nodo siguiente solo se ejecuta una vez. Añade un nodo Split Out y escribe results en el campo; obtendrás dos elementos:
[
{ "id": 1, "title": "Artículo A" },
{ "id": 2, "title": "Artículo B" }
]

Vinculación de items (item linking)
n8n recuerda de qué elemento de entrada procede cada dato de salida. Por eso, en nodos posteriores puedes obtener el valor de ese mismo elemento en un nodo anterior:
{{ $('Google Sheets').item.json.name }}
Significa: «el name del nodo Google Sheets correspondiente al elemento que se está procesando». Encontrarás una explicación completa de las expresiones en el tutorial de expresiones.
Varias entradas: nodo Merge
Cuando el flujo se divide en dos rutas y luego quieres volver a unirlas, usa el nodo Merge:
| Modo | Descripción |
|---|---|
| Append | Añade los datos de ambas rutas, uno tras otro |
| Combine by matching fields | Combina según campos comunes (como un JOIN de SQL); por ejemplo, vincula los datos de clientes y pedidos mediante email |
| Combine by position | Empareja el primer elemento con el primero, el segundo con el segundo, y así sucesivamente |
| Choose branch | Espera a que terminen ambas rutas y solo genera los datos de una de ellas |
Datos binarios (archivos)
Al leer archivos, descargar imágenes o recibir adjuntos, los datos se guardan en binary. En la pestaña Binary de OUTPUT puedes previsualizarlos o descargarlos. Nodos habituales:
- Extract from File: extrae contenido de archivos CSV, Excel, PDF y JSON y lo convierte en items
- Convert to File: convierte items en archivos CSV, Excel o JSON
- Read/Write Files from Disk: lee y escribe archivos en el servidor (n8n 2.x, de forma predeterminada, solo permite ciertas carpetas)
Resumen
- Entre los nodos se transmite un array de items.
- Cada nodo se ejecuta una vez por cada item; no necesitas escribir bucles.
- Usa Split Out para dividir, Aggregate para agrupar y Merge para combinar.
- Si no quieres ejecuciones repetidas, activa Execute Once o combina primero los datos.
Actualizado 12 de octubre de 2026