Qué son las expresiones en n8n
Las expresiones de n8n te permiten referenciar datos de forma dinámica en lugar de codificar valores fijos. Cuando conectas nodos entre sí, los datos fluyen de un nodo al siguiente como objetos JSON. Las expresiones te dan una manera de acceder a ese JSON y extraer exactamente el valor que necesitas — o transformarlo antes de pasarlo.
Cada expresión en n8n se envuelve entre dobles llaves. Dentro de esas llaves escribes código compatible con JavaScript, y n8n lo evalúa en tiempo de ejecución cuando se ejecuta el workflow.
Esa expresión lee el campo email desde los datos de entrada del nodo actual. Simple, pero este patrón es la base de todo lo que harás con mapeo de datos.
Variables clave que usarás a diario
n8n expone varias variables integradas dentro de las expresiones. Conocer estas tres cubre la gran mayoría de los workflows reales.
La primera es $json, que se refiere al objeto de datos del item actual. Si un nodo anterior devolvió un registro de usuario, $json.name te da el campo name del usuario.
La segunda es $node, que te permite retroceder a cualquier nodo nombrado en el workflow. Esto es útil cuando necesitas datos de un nodo que no es el predecesor inmediato.
La tercera es $now, que devuelve el timestamp actual como un objeto DateTime de Luxon. Puedes llamar métodos de Luxon directamente sobre él.
n8n incluye Luxon para manipulación de fechas y también expone la biblioteca estándar completa de JavaScript, por lo que los métodos de string, Math y utilidades de JSON funcionan dentro de las expresiones.
Transformando datos con expresiones
Las expresiones no son solo para leer valores — puedes transformarlos inline. Los patrones comunes incluyen concatenación de strings, formateo de números, condicionales y operaciones con arrays.
Construir un nombre completo a partir de dos campos:
Un condicional simple para establecer un valor por defecto cuando un campo podría faltar:
Formatear una fecha que llega como timestamp Unix:
El nodo Set es el lugar más natural para usar estas expresiones. Añádelo entre dos nodos siempre que necesites renombrar campos, combinar valores o eliminar campos que no necesitas aguas abajo.
Mapeando datos entre nodos
El mapeo de datos significa conectar la salida de un nodo a la entrada de otro. En la interfaz de n8n puedes arrastrar un campo directamente sobre un parámetro de destino, y n8n escribe la expresión por ti. Pero entender lo que genera te ayuda a corregirlo cuando algo falla.
Cuando un nodo devuelve múltiples items, $json se refiere a cada item individualmente mientras n8n itera. Así que si tu nodo anterior devolvió 50 filas, cada expresión se evalúa 50 veces — una vez por item. Este es el comportamiento por defecto y no requiere configuración extra.
Si necesitas agregar todos los items en una sola estructura — por ejemplo, para construir un array de emails a partir de todas las filas — usa el nodo Code con $input.all().
El nodo Code ejecuta JavaScript completo y es la herramienta adecuada cuando una expresión dentro de un parámetro de campo se vuelve demasiado compleja de leer.
Errores comunes y cómo evitarlos
El error más frecuente es referenciar un campo que no existe, lo que devuelve undefined y puede romper silenciosamente los nodos posteriores. Siempre usa el panel de previsualización del editor de expresiones — muestra el valor resuelto antes de guardar.
Un segundo problema común es olvidar que $json se refiere a la entrada del nodo actual, no a su salida. Si estás dentro de un nodo Set y quieres datos de dos pasos atrás, usa $node["NombreDelNodo"].json en su lugar.
Un tercer error es tratar $now como un string plano. Es un objeto Luxon, por lo que compararlo directamente con un string de fecha no funcionará. Convierte ambos lados al mismo tipo primero.
Resumen
Las expresiones son como los workflows de n8n se vuelven dinámicos. El patrón central — dobles llaves alrededor de una expresión JavaScript que lee de $json, $node o $now — maneja la mayoría de los escenarios. Usa el nodo Set para mapeo y renombrado de campos sencillos, y escala al nodo Code cuando la lógica se vuelve compleja. Siempre verifica las expresiones en el panel de previsualización antes de ejecutar un workflow en vivo.
Punto de control de la lección
Repasa lo aprendido y recibe comentarios sobre tu trabajo.