Flow Builder
El Flow Builder es el editor visual para crear y modificar automatizaciones y flujos conversacionales.
Vista General
FLOW BUILDER - Mi Automatizacion
| Seccion | Contenido |
|---|---|
| PALETTE | Lista de nodos disponibles |
| CANVAS | Area de trabajo para construir flujos |
| PROPIEDADES | Configuracion del nodo seleccionado |
Botones de accion: [Guardar] [Ejecutar]
Componentes del Editor
Palette (Paleta)
La paleta contiene todos los nodos disponibles:
TRIGGERS
- Evento: Dispara por evento del sistema
- Programado: Dispara por horario
- Webhook: Dispara por llamada externa
MENSAJERIA
- Enviar Email
- Enviar SMS
- Enviar WhatsApp
- Enviar Notificacion
- Mensaje In-App
TAREAS
- Crear Tarea
- Mover Etapa
- Asignar Usuario
- Agregar a Proceso
- Actualizar Estado
DOCUMENTOS
- Solicitar Documento
- Validar Documento
- Solicitar Firma
- Crear Onboarding
CALENDARIO
- Crear Evento
- Verificar Disponibilidad
- Agendar Entrevista
- Enviar Recordatorio
IA
- Analizar CV
- Calcular Match
- Generar Respuesta
- Analizar Sentimiento
- Buscar RAG
CONTROL
- Condicion (If/Else)
- Switch
- Delay
- Loop
- Parallel
- Stop
Canvas (Lienzo)
El canvas es donde se construye el flujo:
Acciones:
- Arrastrar nodos desde palette
- Conectar nodos con lineas
- Mover y reorganizar
- Zoom in/out
- Pan (mover vista)
- Seleccionar multiples
Atajos:
- Ctrl+C: Copiar nodo
- Ctrl+V: Pegar nodo
- Del: Eliminar seleccion
- Ctrl+Z: Deshacer
- Ctrl+S: Guardar
- Space+Drag: Pan
Panel de Propiedades
Al seleccionar un nodo, aparece su configuracion:
PROPIEDADES: Enviar Email
| Campo | Valor |
|---|---|
| Nombre | Email de bienvenida |
| Para* | {{postulant.email}} |
| Asunto* | Bienvenido a {{company.name}} |
| Template* | welcome_email |
Variables:
- name: {{postulant.name}}
- job: {{job.title}}
Avanzado:
- CC: (vacio)
- Delay: 0 minutos
- Reintentos: 3
Crear un Flujo
Paso 1: Agregar Trigger
- Arrastrar "Evento" al canvas
- Configurar:
- Tipo: APPLICATION_CREATED
- Filtros: (opcional)
El trigger es siempre el primer nodo.
Paso 2: Agregar Acciones
- Arrastrar acciones deseadas
- Conectar desde trigger a primera accion
- Conectar entre acciones en secuencia
Conexion:
- Click en puerto de salida (circulo)
- Arrastrar hasta puerto de entrada
- Soltar para conectar
Paso 3: Agregar Control de Flujo
Para logica condicional:
- Arrastrar "Condicion"
- Configurar expresion
- Conectar rama "Si" (verde)
- Conectar rama "No" (rojo)
- Opcionalmente: merge al final
Paso 4: Configurar Nodos
Por cada nodo:
- Click para seleccionar
- Configurar en panel de propiedades
- Usar variables {{}} para datos dinamicos
- Probar con "Preview"
Tipos de Conexiones
Secuencial
Nodo A -> Nodo B -> Nodo C
Ejecuta A, luego B, luego C.
Condicional
SI -> [Nodo B]
[Condicion] -|
NO -> [Nodo C]
Ejecuta B si condicion es verdadera, sino C.
Paralelo
-> [Nodo B] ->
[Parallel]-| |->[Merge]
-> [Nodo C] ->
Ejecuta B y C simultaneamente, luego continua.
Loop
[Loop] -> [Accion] -|
^ |
|-----------------|
Repite Accion para cada elemento.
Nodos de Trigger
Trigger de Evento
TRIGGER: Evento
| Campo | Valor |
|---|---|
| Tipo de Evento* | APPLICATION_CREATED |
| Filtros (opcional) | |
| Campo | jobPositionId |
| Operador | equals |
| Valor | 123 |
Opciones:
- Ejecutar solo una vez por entidad
Trigger Programado
TRIGGER: Programado
| Campo | Valor |
|---|---|
| Frecuencia | Cada 60 minutos |
| Dias | Lun, Mar, Mie, Jue, Vie |
| Zona horaria | America/Mexico_City |
Alternativas de frecuencia:
- Hora especifica: 09:00
- Cron personalizado: (expresion cron)
Nodos de Control
Condicion (If/Else)
CONTROL: Condicion
| Campo | Valor |
|---|---|
| Expresion* | {{matchScore}} >= 80 |
Puertos de salida:
- SI (verde): Cuando es verdadero
- NO (rojo): Cuando es falso
Opcion: [+ Agregar "Else If"]
Switch
CONTROL: Switch
| Campo | Valor |
|---|---|
| Variable | {{application.source}} |
Casos:
- "linkedin" -> Puerto 1
- "referral" -> Puerto 2
- "career_page" -> Puerto 3
- default -> Puerto 4
Delay
CONTROL: Delay
| Campo | Valor |
|---|---|
| Tipo | Tiempo fijo: 2 horas |
| Zona horaria | America/Mexico_City |
Alternativas:
- Hasta fecha: {{event.date}}
- Horas laborales: 4 horas
Opciones:
- Solo dias habiles
Loop
CONTROL: Loop
| Campo | Valor |
|---|---|
| Iterar sobre | {{candidates}} |
| Variable de item | candidate |
| Max iteraciones | 100 |
Opciones:
- Ejecutar en paralelo
Herramientas del Editor
Toolbar
Botones disponibles:
- [Guardar] [Deshacer] [Rehacer]
- [Zoom +] [Zoom -] [Fit]
- [Ejecutar]
Minimap
Mapa miniatura en esquina inferior derecha:
- Muestra vista actual
- Muestra flujo completo
- Click para navegar rapidamente
Buscar
Ctrl+F para buscar:
| Campo | Valor |
|---|---|
| Buscar |
Resultados:
- Nodo "Enviar Email" (linea 3)
- Nodo "Email de rechazo" (linea 7)
Validacion y Errores
Validacion Automatica
El editor valida automaticamente:
- Trigger presente
- Todas las conexiones completas
- Nodos configurados correctamente
- No hay ciclos infinitos
- Variables existen
Mensajes de Error
Errores de Validacion:
- Error: Nodo "Email" sin conexion de entrada
- Error: Variable {{usuario.nombre}} no existe
- Advertencia: Delay muy largo (7 dias)
Acciones: [Ir al error] [Ignorar advertencias]
Probar el Flujo
Modo Debug
- Click en [Debug]
- Proporcionar datos de prueba
- Ver ejecucion paso a paso
- Inspeccionar valores en cada nodo
- Verificar resultado final
Panel de Debug
DEBUG MODE
Datos de prueba:
- postulant.name: "Juan Perez"
- postulant.email: "juan@test.com"
- matchScore: 85
Ejecucion:
- [OK] Trigger
- [OK] Condicion (score>=80) -> true
- [Ejecutando...] Email
- [Pendiente] Crear Tarea
Controles: [Pausar] [Siguiente] [Continuar]
Exportar e Importar
Exportar Flujo
Click en [...] -> Exportar
Formatos:
- JSON: Para backup o migracion
- Imagen: PNG del diagrama
- PDF: Documentacion
El JSON incluye:
- Configuracion de nodos
- Conexiones
- Variables
- Metadata
Importar Flujo
Click en [...] -> Importar
- Seleccionar archivo JSON
- Revisar preview
- Resolver conflictos si existen
- Confirmar importacion
Buenas Practicas
Organizacion
DO:
- Nombres descriptivos para nodos
- Agrupar nodos relacionados
- Usar comentarios
- Flujos de izquierda a derecha
- Conexiones claras
DON'T:
- Nodos sin nombre
- Conexiones cruzadas excesivas
- Flujos muy complejos (dividir)
- Variables sin documentar
- Falta de manejo de errores
Performance
Optimizar:
- Usar paralelo cuando posible
- Evitar loops muy grandes
- Minimizar llamadas externas
- Cache de datos repetidos
- Limitar profundidad de anidacion
Proximos Pasos
- Variables y Placeholders - Datos dinamicos
- Ejecucion y Monitoreo - Ver logs
- Ejemplos Practicos - Casos de uso