Saltar a contenido

Gestionar flows

Un flow es una máquina de estados conversacional: nodos (steps) + transiciones. El flow-engine ejecuta un flow por conversación y persiste su estado en DynamoDB.

Vista de listado

/flows muestra todos los flows del tenant:

┌─────────────────────────────────────────────────────────────┐
│  Flows                                          [+ Nuevo]    │
├─────────────────────────────────────────────────────────────┤
│  Nombre         │ Versión │ Estado    │ Última publicación  │
│  Bienvenida     │ v3      │ Publicado │ 2026-05-14 10:21    │
│  Soporte L1     │ v7      │ Borrador  │ —                   │
│  NPS post-chat  │ v1      │ Publicado │ 2026-05-10 16:03    │
└─────────────────────────────────────────────────────────────┘

Crear un flow

  1. Clic en + Nuevo.
  2. Ingresa nombre y descripción.
  3. Se abre el editor con un step inicial text vacío.

Editor

El editor usa Monaco (mismo motor que VS Code) en modo JSON con validación contra el schema Zod de packages/flow-schema.

Step types soportados

Tipo Uso
text Envía mensaje al usuario
condition Bifurca según expresión sobre el contexto
set-context Setea variables del contexto de conversación
handoff Transfiere a agente humano (Five9, Amazon Connect)
encuesta Lanza FSM de NPS post-conversación
http Llama endpoint externo (con timeout y retry)
llm Invoca LLM (Bedrock / OpenAI) con prompt parametrizado

Detalles del schema y semánticas en developers/flow-engine.

Validación en vivo

El editor marca en rojo:

  • Referencias a steps inexistentes.
  • Variables de contexto no declaradas.
  • Expresiones de condition que no parsean.

Probar el flow

Botón Probar (icono play) abre un panel lateral con un widget simulado. Las llamadas no salen a producción: usan el mock router del flow-engine.

Publicar

  1. Guardar como borrador: persiste sin afectar el flow activo.
  2. Publicar: crea una nueva versión inmutable y la marca como activa. El flow anterior queda disponible para rollback durante 30 días.

Versionado y rollback

  • Cada publicación incrementa la versión (v1, v2, ...).
  • En el detalle del flow → Historial puedes ver el diff y hacer rollback con un clic.
  • El rollback no borra la versión actual; crea una nueva versión que duplica el contenido de la anterior.

Importar flow legacy

Si vienes del legacy ZEngine V1, usa Importar legacy → pega el JSON del flow viejo. El transpiler (packages/flow-transpiler) lo convierte al schema v2. Resultado se valida contra el Parity Gate.