Referencia imprimible del motor de expresiones (v2.32).
| Variable | Devuelve | Ejemplo de uso |
|---|---|---|
$json | Datos JSON del nodo actual | {{ $json.body.nombre }} |
$now | Fecha/hora actual (ISO 8601) | {{ $now }} |
$today | Solo fecha actual | {{ $today }} |
$env.VAR | Variable de entorno | {{ $env.N8N_BASE_URL }} |
$items | Array de todos los items | {{ $items.length }} |
$workflow.id | ID del workflow actual | {{ $workflow.id }} |
$execution.id | ID de la ejecución | {{ $execution.id }} |
$node["Nombre"].json | Salida de un nodo específico | {{ $node["HTTP Request"].json }} |
$binary | Datos binarios (archivos) | {{ $binary.archivo.data }} |
| Función | Propósito | Ejemplo |
|---|---|---|
$ifEmpty(v, fallback) | Valor alternativo si vacío | {{ $ifEmpty($json.email, "sin-email") }} |
$ifNotEmpty(v, t) | Template si no vacío | {{ $ifNotEmpty($json.lead, "Lead: " + $json.lead, "") }} |
$jmespath(data, q) | Filtrar JSON con JMESPath | {{ $jmespath($json, "items[?score > `50`]") }} |
.map(fn) | Transformar cada elemento | {{ $json.leads.map(l => l.email) }} |
.filter(fn) | Seleccionar por condición | {{ $json.leads.filter(l => l.score > 50) }} |
.reduce(fn, ini) | Agregar a un valor | {{ $json.leads.reduce((s,l) => s + l.score, 0) }} |
.toUpperCase() | Mayúsculas | {{ $json.nombre.toUpperCase() }} |
.split(sep) | Dividir string en array | {{ $json.texto.split(",") }} |
.join(sep) | Unir array en string | {{ $json.nombres.join("; ") }} |
| Tipo | Expresión |
|---|---|
| Comparación | == === != > < >= <= |
| Lógica | && (y) || (o) ! (no) |
| Ternaria | condición ? valor_true : valor_falso |
| Concatenación | "Hola " + $json.nombre |
| Interpolación | Hola {{ $json.nombre }} |
// Ternaria para prioridad
{{ $json.score > 50 ? "Alta" : "Normal" }}
// Filtro combinado
{{ $json.leads.filter(l => l.score > 50).length }} leads calientes