Skip to content

Variables Dinamicas

This content is not available in your language yet.

Las variables dinamicas son un sistema de plantillas que permite referenciar datos de nodos anteriores, almacenamiento en memoria y funciones especiales dentro de los campos de configuracion de cualquier nodo.

Cuando el motor procesa la configuracion de un nodo, resuelve todas las expresiones {{...}} antes de ejecutarlo. Esto permite construir valores dinamicos basados en la informacion que fluye a traves del workflow.


Sintaxis basica - Referencia al nodo anterior

Sección titulada «Sintaxis basica - Referencia al nodo anterior»

La forma mas simple de variable dinamica accede a los datos de salida (data) del nodo inmediatamente anterior.

  • {{campo}} - Accede a data.campo del nodo anterior
  • {{campo.subcampo}} - Accede a propiedades anidadas
  • {{campo[0].nombre}} - Accede a elementos de arrays

Ejemplo:

Si el nodo anterior retorna:

{
"email": "user@test.com",
"name": "Juan"
}

Entonces:

  • {{email}} se resuelve a user@test.com
  • {{name}} se resuelve a Juan

Permite acceder al resultado de cualquier nodo del workflow usando su etiqueta (label).

  • {{@Nombre_Nodo.campo}} - Accede al resultado de un nodo especifico por su label
  • Los espacios en el nombre se reemplazan por guiones bajos
  • Los caracteres especiales se eliminan

Ejemplo:

{{@HTTP_Request.body.total}} obtiene el campo body.total del nodo cuya etiqueta es “HTTP Request”.

Esto es util cuando se necesita acceder a datos de un nodo que no es el inmediatamente anterior, sino uno anterior en el flujo.


Permite acceder a nodos anteriores usando su posicion relativa en el flujo de ejecucion.

  • {{#1.campo}} - Nodo anterior (1 paso atras)
  • {{#2.campo}} - Dos nodos atras
  • {{#3.campo}} - Tres nodos atras

Es util cuando los nombres de los nodos pueden cambiar pero la posicion relativa se mantiene estable.

Ejemplo:

Si el flujo ejecuta: Webhook -> Transform -> HTTP Request, y estamos en HTTP Request:

  • {{#1.resultado}} accede al campo resultado de Transform
  • {{#2.body}} accede al campo body de Webhook

Permiten leer variables almacenadas en el sistema de memorystorage.

  • {{var.nombre_variable}} - Lee una variable almacenada en memorystorage
  • {{var.usuario.email}} - Accede a propiedades anidadas de la variable
  • Las variables se crean con el nodo SetVariable y se leen con GetVariable
  • Persisten entre ejecuciones del workflow (tabla memorystorage)

Ejemplo:

Si previamente se almaceno una variable llamada empresa_nombre con el valor "Floogos S.L.", entonces {{var.empresa_nombre}} se resuelve a Floogos S.L..


Funciones integradas que generan valores dinamicos en el momento de la ejecucion.

  • {{$guid}} - Genera un UUID v4 unico
  • {{$timestamp}} - Timestamp actual en milisegundos
  • {{$datetime}} - Fecha y hora actual en formato ISO 8601
  • {{$randomInt min max}} - Numero entero aleatorio entre min y max

Ejemplos:

  • {{$guid}} -> 3f2a7b1c-9d4e-4a8f-b6c2-1e5d7f9a0b3c
  • {{$timestamp}} -> 1679582400000
  • {{$datetime}} -> 2026-03-23T10:30:00.000Z
  • {{$randomInt 1 100}} -> 42

Permiten incluir contenido de forma condicional basandose en los datos disponibles.

Estructura basica if/else:

{{if data.status === 'active'}}
Bienvenido, usuario activo
{{else}}
Su cuenta esta inactiva
{{endif}}

Estructura con elseif:

{{if data.amount > 1000}}
Pedido grande
{{elseif data.amount > 100}}
Pedido mediano
{{else}}
Pedido pequeno
{{endif}}

Las condiciones se evaluan como JavaScript, por lo que se pueden usar operadores como ===, !==, >, <, >=, <=, &&, ||.


Permiten iterar sobre arrays de datos para generar contenido repetitivo.

Bucle basico:

{{loop data.items}}
- Producto: {{name}} - Precio: {{price}}
{{endloop}}

Bucle con limite:

{{loop data.items limit=5}}
{{name}}
{{endloop}}
  • limit controla la cantidad maxima de iteraciones
  • Dentro del loop, se accede a las propiedades del item directamente por su nombre (sin prefijo)

Ejemplo: Si data.items contiene [{"name": "Camiseta", "price": 20}, {"name": "Pantalon", "price": 40}], el resultado seria:

- Producto: Camiseta - Precio: 20
- Producto: Pantalon - Precio: 40

Las variables dinamicas se pueden usar en cualquier campo de texto de la configuracion de un nodo. Algunos ejemplos comunes:

  • URLs: https://api.example.com/users/{{user_id}}
  • Bodies: {"email": "{{@Form.email}}", "name": "{{@Form.nombre}}"}
  • Consultas SQL: SELECT * FROM users WHERE id = '{{user_id}}'
  • Mensajes: Hola {{var.nombre}}, tu pedido {{order_id}} esta listo
  • Asuntos de email: Confirmacion de pedido #{{order_id}}
  • Nombres de archivos: reporte_{{$datetime}}.pdf
  • Headers HTTP: Bearer {{var.api_token}}

SintaxisDescripcionEjemplo
{{campo}}Campo del nodo anterior{{email}} -> email del nodo anterior
{{campo.subcampo}}Propiedad anidada del nodo anterior{{address.city}} -> ciudad de la direccion
{{campo[0].prop}}Elemento de array del nodo anterior{{items[0].name}} -> nombre del primer item
{{@Nombre_Nodo.campo}}Campo de un nodo especifico por label{{@HTTP_Request.body.total}} -> total del body
{{#N.campo}}Campo de un nodo N pasos atras{{#2.email}} -> email de 2 nodos atras
{{var.nombre}}Variable de memorystorage{{var.empresa_nombre}} -> nombre de la empresa
{{$guid}}UUID v4 generado3f2a7b1c-9d4e-...
{{$timestamp}}Timestamp actual (ms)1679582400000
{{$datetime}}Fecha/hora ISO 86012026-03-23T10:30:00.000Z
{{$randomInt min max}}Entero aleatorio entre min y max{{$randomInt 1 100}} -> 42
{{if ...}}...{{endif}}Contenido condicionalVer seccion Condicionales
{{loop ...}}...{{endloop}}Iteracion sobre arraysVer seccion Bucles

A continuacion se muestra un workflow completo que utiliza varios tipos de variables dinamicas:

Escenario: Procesamiento de un pedido recibido por Webhook

Sección titulada «Escenario: Procesamiento de un pedido recibido por Webhook»

1. Nodo Webhook (label: “Webhook”)

Recibe los datos del pedido:

{
"order_id": "ORD-2024-001",
"customer_email": "cliente@email.com",
"total": 250.00
}

2. Nodo HTTP Request (label: “HTTP Request”)

Llama a una API externa para verificar el pedido usando el ID recibido.

  • URL: https://api.tienda.com/orders/{{order_id}}

Aqui {{order_id}} se resuelve a ORD-2024-001 tomandolo del nodo anterior (Webhook).

3. Nodo Decision

Evalua el estado devuelto por la API.

  • Condicion: {{@HTTP_Request.status}} === 'confirmed'

Aqui {{@HTTP_Request.status}} accede al campo status del resultado del nodo con label “HTTP Request”.

4. Nodo SendMail (rama true)

Envia un correo de confirmacion al cliente.

  • Para: {{@Webhook.customer_email}}
  • Asunto: Confirmacion de pedido {{@Webhook.order_id}}
  • Cuerpo:
Estimado cliente,
Su pedido {{@Webhook.order_id}} por un total de {{@Webhook.total}} EUR ha sido confirmado.
Gracias por confiar en {{var.empresa_nombre}}.
ID de seguimiento: {{$guid}}
Fecha de confirmacion: {{$datetime}}

En este ejemplo:

  • {{@Webhook.customer_email}} obtiene el email del nodo Webhook
  • {{@Webhook.order_id}} obtiene el ID del pedido del nodo Webhook
  • {{var.empresa_nombre}} lee el nombre de la empresa desde memorystorage
  • {{$guid}} genera un identificador unico de seguimiento
  • {{$datetime}} inserta la fecha y hora actual de la confirmacion