
- Diseñar flujos arrastrando y conectando nodos en un canvas interactivo
- Ejecutar código Python en un sandbox seguro, nodo por nodo
- Integrar servicios externos (HTTP, email, databases) con formularios dinámicos
- Desplegar agentes de IA con prompts estructurados dentro del flujo
- Generar flujos completos describiéndolos en lenguaje natural con el asistente IA
- Versionar cada cambio del flujo de forma automática
- Probar nodos individualmente antes de ejecutar el flujo completo
Navegación
| Acción | Cómo |
|---|---|
| Mover el canvas | Click y arrastra el fondo |
| Hacer zoom | Rueda del mouse sobre el canvas |
| Centrar vista | Botón de controls (esquina inferior izquierda) |
| Mover un nodo | Click y arrastra el nodo |
| Seleccionar nodo | Click en el nodo |
| Deseleccionar | Click en el fondo del canvas |
Tipos de nodo
Trigger
Acción
HTTP Request
Código Python
Agente IA
Comentario
Crear tu primer flujo
Agrega el Trigger
Agrega pasos
- Botón
+del nodo — aparece al pasar el cursor sobre un nodo y abre el Node Picker. - Botón
+ Pasode la toolbar — agrega un nodo en la posición más baja del canvas. - Asistente IA — describe el flujo completo y la IA lo genera por ti.
Elige la integración
Trigger — el punto de inicio
Solo puede existir un trigger por flujo. No se puede eliminar (icono de candado) y define cómo se dispara el flujo:Trigger Manual (Run Once)
Sin configuración adicional. Se dispara con el botón Ejecutar en la toolbar. Útil para flujos one-shot o testing.Trigger Webhook
Genera una URL que puedes registrar en sistemas externos. CualquierPOST a esa URL dispara el flujo. El body de la petición queda disponible como {{trigger_data}} en los nodos siguientes.
Trigger Schedule (Cron)
| Campo | Descripción |
|---|---|
| Expresión Cron | Define cuándo se ejecuta (0 9 * * 1-5 = lunes a viernes a las 9:00 AM) |
| Timezone | Zona horaria (ej. America/Santiago, America/Mexico_City) |
Nodos de Acción
Cada nodo de Acción ejecuta una integración predefinida (enviar email, escribir en una database, petición HTTP, etc.). Al hacer click en el icono de lápiz se abre un panel con un formulario dinámico por cada parámetro de la integración:| Tipo de campo | Cómo se muestra |
|---|---|
string | Textarea con Variable Picker |
number | Input numérico |
dropdown | Select con opciones |
boolean | Toggle |
json | Textarea monospace |
credential | Input password con botón para mostrar/ocultar |
HTTP Request
El nodo HTTP Request es una versión especializada con interfaz estilo Postman: params, headers, autenticación y body. Acepta importación directa desde comandos cURL.Nodo de Código (Python)
Sandbox Python con syntax highlighting completo. Ejecuta el script de forma segura nodo por nodo.Variables de nodos anteriores
Referencia outputs de pasos previos con{{context_key.campo}}. Las referencias se resuelven justo antes de ejecutar, sustituyendo el placeholder por el valor Python equivalente:
Asistente IA en el nodo
El editor incluye un asistente IA que entiende el código actual y puede generar código desde cero, modificar o extender el existente, explicar qué hace o detectar y corregir errores. El código generado se inserta automáticamente en el editor. Puedes elegir el modelo de IA del chat.Nodo de Agente IA
Ejecuta un prompt contra un modelo de lenguaje, con selector de modelo. Tiene dos modos de configuración y un chat de prueba integrado.- Smart Mode
- Manual Mode
- Rol — quién es el agente
- Tarea — qué debe hacer
- Contexto — información de fondo relevante
- Guidelines — estilo y tono
- Restricciones — qué NO debe hacer
- Output — cómo estructurar la respuesta
{{context_key.campo}} con preview del valor resuelto.Campo Input y chat de prueba
El campo Input define la entrada de datos del agente (texto libre o una referencia{{context_key.campo}}). El chat de prueba te deja probar el agente de forma interactiva antes de usarlo en el flujo:
| Escenario | Mensaje enviado al agente |
|---|---|
| Solo Input | El valor del Input |
| Solo mensaje de prueba | El texto del chat |
| Input + mensaje | Input seguido del mensaje de prueba |
Sistema de variables {{ }}
Todos los campos de texto soportan referencias a outputs de nodos anteriores.
Sintaxis
nombre_del_nodo_N es el context key: label + _ + número de secuencia.
| Nodo | Label | Nº secuencia | Context Key |
|---|---|---|---|
| Trigger | run_once | (ninguno) | run_once |
| Primer paso | fetch_datos | 1 | fetch_datos_1 |
| Segundo paso | procesar | 2 | procesar_2 |
| Tercer paso | enviar_email | 3 | enviar_email_3 |
Ejemplo
Sifetch_datos_1 retorna { "nombre": "Ana", "email": "ana@empresa.com" }, en el siguiente nodo puedes usar:
Variable Picker
Click en{ } Variables en cualquier campo y se abre el picker con todos los outputs disponibles de nodos upstream que ya fueron ejecutados en la sesión. Organiza los campos por nodo, muestra su tipo y, al seleccionar uno, lo inserta automáticamente.
Conectar nodos
Localiza los handles
Arrastra de salida a entrada
Indicadores visuales
| Color | Significado |
|---|---|
| Borde oscuro | Estado normal |
| Verde | Conexión válida (mientras arrastras) |
| Rojo | Conexión inválida |
Eliminar una conexión
Click en la línea y presionaDelete o Backspace.
Guardar y versionar
Primer guardado
Al guardar por primera vez (botón Guardar oCmd/Ctrl + S):
- Se crea el flujo en el backend
- Se asigna la versión 1
- Aparece la pill superior con el nombre editable
Guardados posteriores
Cada guardado crea una nueva versión del mismo flujo (v2, v3, etc.). La versión más reciente es la activa y la que se ejecuta por defecto; las anteriores quedan disponibles en el historial.Estado activo/inactivo
| Estado | Descripción |
|---|---|
draft | Borrador — en construcción |
active | Habilitado para ejecución desde sistemas externos |
inactive | Deshabilitado temporalmente |
Ejecutar el flujo
Click en Ejecutar en la toolbar inferior.Qué ocurre
- El canvas se bloquea con overlay “Ejecutando…”
- El backend ejecuta los nodos en orden topológico
- Cada nodo pasa por los estados
pending,running,completedofailed - Al finalizar se muestran los resultados
Comportamiento ante errores
Cada nodo tiene un settingon_error:
| Valor | Comportamiento |
|---|---|
| Stop (default) | Si falla, el flujo se detiene y los nodos siguientes quedan en pending |
| Continue | Si falla, registra el error y sigue con el siguiente nodo |
Ejecutar nodos individualmente
Desde el panel de cualquier nodo (icono de lápiz y luego Ejecutar), puedes correr ese nodo aislado. Útil para testing iterativo. El resultado queda disponible como variable{{context_key.campo}} para los nodos siguientes en la sesión.
Panel de Resultados e Historial
Resultados
Aparece automáticamente al ejecutar un nodo. Muestra:- Resultado — Output en JSON con árbol interactivo
- Logs — stdout y stderr
- Error — mensaje de error si falló
- Historial — ejecuciones anteriores del nodo en la sesión
Historial completo
Accede desde el botón Historial en la toolbar. Lista todas las ejecuciones del flujo, de más reciente a más antigua, con el estado, la versión ejecutada y el resultado de cada nodo paso a paso.Asistente IA (ChatPanel)
Click en IA en la toolbar. Desliza un panel desde la derecha donde puedes:- Generar un flujo completo describiéndolo en lenguaje natural
- Modificar nodos existentes (“agrega un paso que envíe un email”)
- Extender el flujo (“agrega una validación antes del envío”)
Bookmarks — nodos favoritos
Guarda la configuración de un nodo (código, inputs, prompt, etc.) para reutilizarla rápido.- Abre el panel de un nodo y haz click en ⭐ Bookmark en el header.
- El nodo aparece en la sidebar de Bookmarks.
- Arrastra cualquier bookmark al canvas para crear un nodo con toda la configuración guardada.
Importar y exportar escenarios
| Acción | Cómo |
|---|---|
| Exportar | Toolbar inferior, click en Exportar, descarga un .json con la definición del flujo |
| Importar | Toolbar inferior, click en Importar, selecciona un .json exportado previamente |
Barra de herramientas inferior
| Botón | Función |
|---|---|
| IA | Abre/cierra el asistente IA |
| + Paso | Abre el Node Picker para agregar un nodo |
| Alinear | Redistribuye los nodos en columna vertical centrada |
| Comentario | Agrega un nodo de comentario al canvas |
| Importar | Importa un flujo desde JSON |
| Exportar | Exporta el flujo actual a JSON |
| Activo | Toggle de estado activo/inactivo |
| Guardar | Guarda/versiona el flujo |
| Ejecutar | Ejecuta el flujo completo |
Atajos útiles
| Atajo | Acción |
|---|---|
Cmd/Ctrl + S | Guardar |
Delete / Backspace | Eliminar nodo o conexión seleccionada |
Preguntas frecuentes
¿Por qué el botón Ejecutar no aparece activo?
¿Por qué el botón Ejecutar no aparece activo?
scenarioId). Verifica las conexiones y guarda antes de ejecutar.¿Puedo probar un nodo sin ejecutar todo el flujo?
¿Puedo probar un nodo sin ejecutar todo el flujo?
{{context_key.campo}} para los demás nodos en la sesión de testing.¿Qué pasa si un nodo falla a mitad del flujo?
¿Qué pasa si un nodo falla a mitad del flujo?
on_error del nodo. Por default (Stop), el flujo se detiene, los nodos siguientes quedan en pending y el flujo se marca como failed. Con Continue, el error se registra y el flujo avanza al siguiente nodo. Puedes ver el error exacto en el panel de Resultados.¿Cuánto tiempo puede correr un flujo?
¿Cuánto tiempo puede correr un flujo?
¿Puedo programar reintentos automáticos?
¿Puedo programar reintentos automáticos?
¿Los workflows tienen rate limits?
¿Los workflows tienen rate limits?
¿Cómo conecto un workflow a una database?
¿Cómo conecto un workflow a una database?
Insertar fila, Actualizar fila o Leer filas desde cualquier paso del flujo.¿Cuántas versiones del flujo se guardan?
¿Cuántas versiones del flujo se guardan?
¿El asistente IA puede modificar un flujo existente?
¿El asistente IA puede modificar un flujo existente?
¿Puedo cambiar el nombre de un nodo?
¿Puedo cambiar el nombre de un nodo?

