Administración de Flujos
Kuatia tiene dos tipos de flujo independientes:
- Flujo de expediente (dossier-flow) — se asocia a un Tipo de Expediente. Arranca al crearse cada expediente nuevo.
- Flujo de documento (doc-flow, Layer 2) — se asocia a un Tipo de Documento. Arranca después de la clasificación automática de cada documento. Permite procesar/revisar documentos automáticamente, con o sin asistencia de IA.
Acceder al diseñador
Flujo de expediente:
- Ir a Administración → Tipos de Expediente.
- Seleccionar un tipo.
- Pestaña Flujo.
Flujo de documento:
- Ir a Administración → Tipos de Documento.
- Seleccionar un tipo.
- Pestaña Flujo.
Diseñar un flujo
El diseñador visual permite arrastrar nodos y conectarlos:
- Arrastrar nodos desde el panel izquierdo al canvas.
- Conectar nodos arrastrando desde los puntos de conexión (handles).
- Configurar cada nodo haciendo click sobre él (panel derecho).
- Click en Compilar para validar el flujo.
- Si no hay errores, click en Publicar.
Cada Publicar genera una versión nueva e inmutable. Las ejecuciones en curso siguen usando la versión publicada al momento en que arrancaron; los cambios aplican a ejecuciones nuevas.
Nodos para flujos de expediente
| Nodo | Qué hace |
|---|---|
| Inicio | Punto de entrada (obligatorio, uno solo) |
| Fin | Punto de salida con estado final |
| Tarea Humana | Crea una tarea en la bandeja para un usuario o rol |
| Tarea UI Externa | Tarea que abre una UI embebida (UI Endpoint) |
| Requerir Documento | Exige que se suba un documento específico |
| Esperar Estado Doc | Pausa hasta que un documento llegue a cierto estado |
| Decisión | Bifurca el flujo según condiciones sobre metadata |
| Emitir Webhook | Envía un POST a un sistema externo |
| Esperar Webhook | Pausa hasta recibir un POST de un sistema externo |
| Notificar | Envía email o notificación |
| Consultar Documentos | Búsqueda semántica RAG sobre los documentos del tenant |
Nodos para flujos de documento
| Nodo | Qué hace |
|---|---|
| Extraer con Procesador | Corre un procesador especializado (OCR, parser de PDF, extractor de cheques, etc.) y guarda los campos extraídos en el documento |
| Revisión Manual | Pausa el flujo con una tarea para que un operador revise/corrija los campos extraídos |
| Revisión con Asistente IA | Pausa el flujo con una tarea de chat operador↔IA: el asistente sugiere atributos y el operador los acepta o agrega los suyos |
Configurar "Revisión con Asistente IA"
| Campo | Descripción |
|---|---|
| System prompt | Override del prompt base; útil para casos verticales (ej. cheques bancarios uruguayos) |
| Atributos permitidos | Whitelist de keys (separadas por coma). Vacío = libre. Recomendado para schemas conocidos |
| Saludo inicial | Automático (el asistente saluda al abrir el chat) o Manual (espera al operador) |
| Máximo mensajes | Cuota por revisión (default 20). Si se agota, el operador puede aprobar igual |
| Tier del modelo | local (gpt-oss:20b en Ollama) o cloud (gpt-oss-120b cloud). Si el budget del tenant no alcanza, hace fallback automático a local |
| Asignar a rol | Si vacío, queda en bandeja del rol reviewer |
Ciclo de vida
- Borrador — editable, no se ejecuta.
- Compilado — validado, listo para publicar.
- Publicado — se ejecuta en ejecuciones nuevas.
- Error — el compilador detectó problemas, corregir y recompilar.
Webhooks: dejar que un sistema externo reanude un flujo
El nodo Esperar Webhook genera un token único. Lo devolvés a un sistema externo (en una tarea, en un email, donde corresponda), y cuando ese sistema hace POST /flow/webhook/:token, el flujo reanuda automáticamente desde el edge received del nodo.
Estados del wait: WAITING (esperando), RESOLVED (llegó el POST), EXPIRED (pasó el TTL). Los expirados los limpia un job repeatable cada 60s — el flujo se reanuda por el edge expired si lo conectaste.
Contenedores (zip/tar) → sub-expedientes automáticos
Cuando un usuario sube un zip/tar/tar.gz, Kuatia lo desempaca y crea:
- Un expediente raíz auto-clasificado por el contenido.
- Sub-expedientes para cada carpeta interna.
- Documentos para cada archivo, con clasificación + doc-flow propios.
Si querés desactivar este comportamiento para una subida específica: tildar "No expandir contenedor" en el dialog de upload. El zip queda como un documento único.
Límites de seguridad anti zip-bomb (configurables en parámetros): máximo 10 niveles de profundidad, 10.000 archivos, 2 GB descomprimidos. Si se exceden, el upload falla y el contenedor no se procesa.
Monitoreo
Cada flujo deja trazas en SigNoz (centralizado) con tenantId, dossierId, nodeId, duración. El dashboard Activity muestra p50/p95/p99 de duración de flujo y rates de éxito/error. Alerta HighWorkflowLatencyP95 dispara si p95 > 30s durante 10m.