Problemas con nodo de código

Mi nodo Code solo pasa el primer elemento cuando una API devuelve múltiples elementos. No hay errores. ¿Cómo puedo hacer que pase todo?

Describe el problema/error/pregunta

¿Cuál es el mensaje de error (si lo hay)?

Por favor comparte tu flujo de trabajo

(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el flujo de trabajo.)

Comparte la salida devuelta por el último nodo

Información sobre tu configuración de n8n

  • Versión de n8n: 1.123.x
  • Base de datos (predeterminado: SQLite):
  • Configuración EXECUTIONS_PROCESS de n8n (predeterminado: own, main):
  • Ejecutando n8n vía (Docker, npm, n8n cloud, aplicación de escritorio): Docker
  • Sistema operativo:

Lo más probable es que el código solo lea un elemento. En el modo “Run Once for All Items” (Ejecutar una vez para todos los elementos), $input.first() o items[0] selecciona solo el primer elemento, y devolver un objeto único te da un elemento de salida. Itera sobre todos ellos y devuelve una matriz:

return $input.all().map(item => ({
  json: { ...item.json, processed: true }
}));

La otra opción es establecer el modo en “Run Once for Each Item” (Ejecutar una vez para cada elemento), usar $input.item.json y devolver un objeto. n8n ejecuta el código una vez por elemento.

Verifica también la salida del nodo anterior. Si dice “1 item” (1 elemento) y los resultados están dentro de una matriz (común con HTTP Request, por ejemplo en un campo data), solo hay un elemento para empezar. Divídelo con un nodo Split Out en ese campo, o en el nodo Code:

return $input.first().json.data.map(d => ({ json: d }));

Si ninguno de estos casos se ajusta, pega el código de tu nodo Code y el recuento de elementos que se muestra en la salida del nodo anterior.

Si el nodo Code está configurado para Run Once for All Items, usa $input.all() para acceder a cada elemento entrante. Luego procésalos con .map() y devuelve el array resultante. Devolver un único objeto hará que n8n produzca un único elemento de salida.

Este es el modo clásico de solo el primer elemento. Tu nodo Code está configurado para ejecutarse una vez en el primer elemento, por lo que se ejecuta solo con items[0]. La solución:

Abre el nodo Code y establece Mode en “Run Once for All Items” (Ejecutar una vez para todos los elementos). Entonces $input.all() contiene todo, y tu retorno debe ser el array completo:

return $input.all();

Si estás transformando por elemento, itera explícitamente y construye el array de salida tú mismo — nunca confíes en el auto-bucle del nodo en modo de primer elemento, no funcionará.

Modelo mental rápido: Run Once for All Items = el nodo se ejecuta UNA vez con el array completo (bueno para agregaciones y paginación de API). Run Once for Each Item = se ejecuta N veces (bueno para transformaciones por elemento). First Item casi nunca es lo que quieres. Espero que esto te ayude — y si sigues teniendo estos problemas con n8n mientras construyes flujos de cliente, literalmente es mi trabajo, feliz de ayudar en algún momento.