El sistema de expresiones de n8n es lo que separa las automatizaciones simples de los flujos de trabajo verdaderamente dinámicos e impulsados por datos. La sintaxis {{ }} le brinda acceso a datos de cualquier nodo anterior, variables integradas, funciones de JavaScript y configuración del entorno, todo en línea, sin un nodo de código separado. Dominar las expresiones desbloquea todo el poder de n8n. Esta guía es una referencia completa que puede marcar y a la que puede volver.
Envuelva cualquier expresión entre llaves dobles: {{ your expression here }}. Todo lo que está dentro se evalúa como JavaScript. Puede hacer referencia a variables de n8n, usar métodos de cadena, hacer aritmética, llamar a operadores ternarios y encadenar operaciones. Fuera de las llaves se trata como texto literal.
Fundamentos de la sintaxis de expresiones
Las expresiones pueden aparecer en cualquier campo de texto en n8n: parámetros de nodo, encabezados, URL, cuerpos de mensajes y más. Active un campo al modo de expresión haciendo clic en el icono de rayo (⚡) junto a cualquier campo de entrada, o escribiendo {{.
Mezcla de literal vs expresión
Haga clic en el icono de rayo ⚡ en cualquier campo para abrir el Editor de expresiones completo. Proporciona autocompletado para todas las variables integradas, una vista previa en vivo que muestra el valor resuelto con sus datos actuales reales y resaltado de sintaxis. Úselo al crear expresiones complejas, mucho más fácil que adivinar.
$json — Acceso a los datos del nodo actual
$json se refiere a los datos JSON del elemento actual que se está procesando. Es la variable más utilizada en n8n.
$node — Datos de cualquier nodo anterior
$node le brinda acceso a la salida de cualquier nodo con nombre en su flujo de trabajo, no solo al inmediatamente anterior. Esto es esencial cuando necesita datos de varios pasos atrás.
$node["Get Customer"] y $node["get customer"] son diferentes. Siempre coincida con el nombre exacto del nodo tal como aparece en el lienzo. Cambie el nombre de sus nodos a nombres descriptivos antes de hacer referencia a ellos: "HTTP Request3" es un objetivo de referencia deficiente.
$items — Todos los elementos de un nodo
$items() devuelve la matriz completa de todos los elementos emitidos por un nodo, no solo el elemento actual. Utilice esto cuando necesite agregar o comparar entre todos los elementos.
Variables integradas: $now, $today, $workflow, $execution
n8n proporciona un conjunto de variables integradas que puede usar en cualquier expresión sin hacer referencia a un nodo.
Variables de fecha y hora
| Variable | Description | Example Output |
|---|---|---|
| $now | Fecha y hora actuales como un objeto Luxon DateTime | 2026-03-13T08:00:00.000Z |
| $today | Comienzo de hoy (medianoche) como Luxon DateTime | 2026-03-13T00:00:00.000Z |
| $now.toISO() | Cadena ISO 8601 | "2026-03-13T08:00:00.000Z" |
| $now.toISODate() | Cadena solo de fecha | "2026-03-13" |
| $now.toFormat('dd/MM/yyyy') | Cadena de formato personalizado | "13/03/2026" |
| $now.toFormat('h:mm a') | Hora con AM/PM | "8:00 AM" |
| $now.plus({ days: 7 }).toISODate() | 7 días a partir de ahora | "2026-03-20" |
| $now.minus({ hours: 24 }).toISO() | Hace 24 horas | fecha y hora de ayer |
| $now.weekday | Día de la semana (1=Lun, 7=Dom) | 5 |
| $now.month | Número de mes | 3 |
| $now.year | Año | 2026 |
| $now.toMillis() | Marca de tiempo de Unix en ms | 1741863600000 |
Variables de flujo de trabajo y ejecución
| Variable | Description | Example Output |
|---|---|---|
| $workflow.id | ID único del flujo de trabajo | "abc123" |
| $workflow.name | Nombre del flujo de trabajo | "Alerta meteorológica matutina" |
| $workflow.active | Si el flujo de trabajo está activado | true |
| $execution.id | ID único de la ejecución actual | "ex_xyz789" |
| $execution.mode | "manual" o "trigger" | "trigger" |
| $execution.resumeUrl | URL para reanudar una ejecución en espera | https://... |
| $itemIndex | Índice del elemento actual que se está procesando | 0 |
| $runIndex | Índice de ejecución actual (para nodos reintentados) | 0 |
JavaScript en expresiones
Todo lo que está dentro de {{ }} es JavaScript. Puede usar la biblioteca estándar completa de JavaScript: métodos de cadena, operaciones de matriz, matemáticas, regex, Date, JSON y más.
Operaciones de cadena
Operaciones numéricas y matemáticas
Operaciones de matriz y objeto
Expresiones condicionales
Utilice operadores ternarios de JavaScript y la fusión nula para la lógica condicional directamente en las expresiones:
Variables de entorno en n8n
Para los valores de configuración que no deben estar codificados en los flujos de trabajo (claves de API, URL base, indicadores de características), utilice el sistema de variables integrado de n8n.
Variables de n8n (Configuración → Variables)
Agregado en n8n 0.225, esta es la forma recomendada de almacenar valores reutilizables sin acceso al entorno:
Variables de entorno del sistema (solo autoalojado)
Datos estáticos: persistencia de valores entre ejecuciones
n8n proporciona un almacén de clave-valor por flujo de trabajo llamado datos estáticos. A diferencia de las variables normales, los valores almacenados aquí persisten entre ejecuciones, lo que resulta útil para rastrear el estado, los contadores o las marcas de tiempo de la última ejecución.
Patrones de expresión comunes
Estos patrones resuelven los casos de uso de expresiones más frecuentes en flujos de trabajo reales:
Formato de fecha para diferentes API
Creación de URL dinámicas y cadenas de consulta
Manejo seguro de nulos e indefinidos
Uso eficaz del editor de expresiones
El Editor de expresiones (accesible a través del icono de rayo ⚡ en cualquier campo) es su mejor amigo para crear expresiones complejas. Características clave:
- Vista previa en vivo: muestra el valor resuelto de su expresión utilizando datos reales de la última ejecución o datos anclados. Si la vista previa muestra
[undefined], la ruta es incorrecta. - Autocompletar: escriba
$para ver todas las variables disponibles. Escriba$json.para ver todos los campos disponibles de sus datos actuales. - Resaltado de sintaxis: hace que las expresiones complejas sean legibles.
- Mensajes de error: los errores de sintaxis de JavaScript se muestran en línea.
- Explorador de datos: explore la estructura de datos entrantes en el panel izquierdo mientras crea la expresión.