Sintaxis deprecada ($items) en n8n
Por qué $items() está deprecado y cómo migrar a la nueva sintaxis
¿Qué es este problema?
La función $items() se usaba en versiones antiguas de n8n para acceder a items de otros nodos. En n8n v2, esta sintaxis está deprecada en favor de $input.all() y $('NodeName').all() que son más explícitas y menos propensas a errores.
Patrones deprecados detectados:
•$items('NodeName') - accediendo items de un nodo específico•$items() - accediendo items del nodo anterior•return items - retornando el array de items en modo runOnceForEachItem•$node['Name'].data - acceso legacy a datos de nodo
¿Por qué es peligroso?
Incompatibilidad futura
La sintaxis deprecada puede dejar de funcionar completamente en futuras versiones de n8n, rompiendo tus workflows.
Comportamiento inesperado
La sintaxis antigua tiene diferencias sutiles que pueden causar bugs, especialmente con lógica de ramificación.
Funciones faltantes
Nuevas expresiones como filtrado y acceso a primer/último item solo están disponibles con la nueva sintaxis.
Dificultad de depuración
Mezclar sintaxis antigua y nueva hace el código más difícil de entender y mantener.
Cómo solucionarlo
- 1
Reemplazar $items()
Cambia $items() a $input.all() para obtener todos los items del nodo anterior.
- 2
Reemplazar $items('NodeName')
Cambia $items('NodeName') a $('NodeName').all() para acceder a items de un nodo específico.
- 3
Actualizar sentencias return
En modo runOnceForEachItem, usa 'return $input.item' en lugar de 'return items'.
- 4
Reemplazar acceso legacy $node
Cambia $node['Name'].data a $('Name').first().json para acceder a datos de salida del nodo.
Escanea tu workflow ahora
Sube tu archivo JSON de n8n y detecta instantáneamente sintaxis deprecada que necesita migración.