Flujos de trabajo¶
Para qué sirve¶
El flujo de trabajo define el recorrido de las solicitudes de un formulario: por qué estados pasan, quién puede moverlas de uno a otro, qué condiciones deben cumplirse, qué datos extra se piden en el camino, qué aprobaciones hacen falta y cuánto tiempo hay para resolverlas (SLA). Cada versión de un formulario tiene su propio flujo, que se congela cuando la versión se publica.
Quién puede usarla¶
Se edita con los mismos permisos que el formulario: editar (template:update) y publicar (template:publish). Ver Formularios. Las pantallas no filtran por permiso: si no estás autorizado, el servidor rechaza la acción con un mensaje de error.
Dónde encontrarla¶
Menú lateral > Configuración > Formularios > abrí un formulario > pestaña Flujo de trabajo.
- La pestaña está deshabilitada hasta guardar el formulario por primera vez: "Guardá el formulario para habilitar el flujo de trabajo.".
- Si la versión está publicada, el flujo es de solo lectura: "Esta versión está publicada y es de solo lectura. Creá una nueva versión borrador para editarla.".
La pestaña Flujo de trabajo ("Diseñá los estados, transiciones y SLA de esta versión del formulario.") tiene el botón Validar flujo y dos secciones: Estados y transiciones y SLA.
📷 IMAGEN PENDIENTE
Captura: pestaña Flujo de trabajo con el grafo de estados y transiciones, la lista Estados a un lado y el botón Validar flujo.
Archivo sugerido: img/configuracion-flujo-grafo.png
Flujo por defecto¶
Todo formulario nuevo nace con un flujo ya válido:
Nuevo (inicial) → Asignado → En Análisis → En Gestión → Suspendido → Retomado → Resuelto → Cerrado, más el estado Cancelado. El cierre normal es Resuelto → Cerrado. Podés modificarlo, ampliarlo o simplificarlo.
Estados¶
Cada estado tiene los siguientes datos (botón Agregar en la lista Estados, o clic en un estado existente):
| Campo | Descripción |
|---|---|
| Nombre | Nombre visible del estado. |
| Nombre técnico | Identificador interno (minúsculas, sin acentos, con guion bajo). |
| Tipo | Inicial, Intermedio, Suspendido, Resuelto, Cerrado o Cancelado. |
| Color | Color con que se dibuja el estado en el flujo y en los tableros. |
| Visible para el requirente | Si está apagado, el solicitante no ve este estado: ve el último estado visible. |
| Requiere observación al ingresar | Quien mueva la solicitud a este estado debe escribir una observación. |
| Congela el SLA | Mientras la solicitud esté en este estado no corre el tiempo del SLA. Los estados Suspendido siempre lo congelan. |
En la lista, cada estado muestra insignias (Terminal, congela el SLA, visible/oculto al requirente, requiere observación) y la cantidad de transiciones "{n} entrantes · {n} salientes".
Reglas de los estados¶
Para poder publicar, el flujo debe cumplir:
- Exactamente un estado Inicial, al menos un Intermedio, exactamente un Resuelto y exactamente un Cerrado. Suspendido y Cancelado son opcionales.
- Todo estado que no sea final debe tener al menos una salida, y todos deben ser alcanzables desde el inicial.
- Desde cada estado Intermedio se debe poder llegar a Resuelto (o terminar en Cancelado).
- Resuelto solo puede ir a Cerrado, y a Cerrado solo se llega desde Resuelto. Desde Cerrado no hay salidas.
- Cancelado es final, pero podés dibujar salidas normales desde él (por ejemplo Cancelado → Nuevo).
- Toda entrada a Resuelto exige observación (el resumen de la resolución). El estado Resuelto ya viene con Requiere observación al ingresar activado.
- No se puede eliminar ni cambiar de tipo el único estado Inicial, Resuelto o Cerrado, ni el último Intermedio; el editor lo avisa ("No se puede eliminar el único estado Inicial: el flujo publicado necesita exactamente uno.").
- Al eliminar un estado se eliminan también sus transiciones; el sistema pide confirmación (Eliminar de todas formas).
Reaperturas y cierre anticipado
La reapertura de una solicitud resuelta por parte del solicitante, el cierre anticipado y la reapertura de un administrador desde Cerrado o Cancelado son acciones globales del sistema: no se dibujan como flechas en el flujo. Ver Estados y SLA.
Transiciones¶
Una transición es una flecha entre dos estados: es lo que el agente ejecuta para mover la solicitud.
Crear una transición¶
- En el grafo, arrastrá el ícono de enlace (Conectar con otro estado) de un estado hasta otro. O usá el diálogo Nueva transición.
- Completá Nombre, Estado origen y Estado destino y hacé clic en Crear transición.
- Hacé clic en la flecha para abrir Editar transición y completar el resto de la configuración.
En el grafo podés usar Reordenar grafo, Reset vista, Acercar, Alejar y Snap (ajuste a la grilla). Sobre cada flecha, íconos indican si es automática por tiempo, automática al crear, si tiene condiciones, formulario intermedio o aprobación.
Configuración de una transición¶
La ventana Editar transición ("Configurá permisos, condiciones, formulario intermedio, acciones y aprobación.") tiene estas secciones:
| Sección | Qué configura |
|---|---|
| General | Nombre, estados, Requiere observación, Evaluar al crear el ticket, Permisos requeridos. |
| Condiciones de habilitación | Reglas que habilitan la transición. |
| Formulario intermedio | Datos a completar antes de que se ejecute. |
| Acciones automáticas | Notificaciones, reasignación y cambio de prioridad. |
| Aprobación | Cadena de aprobadores. |
| Disparador por tiempo | Ejecución automática tras un tiempo. |
Datos de la sección General:
- Requiere observación: quien ejecute la transición debe escribir una observación. Es obligatoria si el estado destino la exige o si la transición la exige; no puede quedar vacía.
- Permisos requeridos: permisos adicionales que debe tener quien la ejecute. Vacío = cualquier usuario con acceso al ticket y permiso para hacer transiciones. Se eligen del catálogo de permisos; si una referencia guardada ya no existe, el editor la marca como inválida para que la corrijas.
- Evaluar al crear el ticket: la transición se ejecuta sola una vez, cuando se crea la solicitud, si se cumple su condición. Solo se puede activar en transiciones que salen del estado Inicial, requiere una condición configurada y no puede tener disparador por tiempo.
- Es una reapertura: se marca automáticamente cuando el origen es Resuelto o Cerrado y el destino no es final. Cancelado no cuenta.
Para borrar una transición usá Eliminar transición (pide confirmación).
📷 IMAGEN PENDIENTE
Captura: ventana Editar transición con las secciones General, Condiciones, Formulario intermedio, Acciones, Aprobación y Disparador por tiempo.
Archivo sugerido: img/configuracion-flujo-transicion.png
Condiciones de habilitación¶
Si la transición tiene condiciones y no se cumplen, el botón aparece deshabilitado para el agente, con el motivo. Sin condiciones: "Sin condiciones. La transición está siempre habilitada.".
- En Condiciones de habilitación hacé clic en Agregar condiciones.
- Elegí el Operador lógico del grupo: todas las condiciones deben cumplirse (Y) o al menos una (O).
- Con Agregar condición sumá filas. Cada fila tiene Fuente, Campo, Operador y Valor.
- Con Agregar grupo anidado creás subgrupos con su propia lógica Y/O. Quitar condición, Quitar grupo y Quitar condiciones eliminan elementos.
| Fuente | Qué compara |
|---|---|
| Campo del ticket | Prioridad, Área asignada, Equipo asignado, Agente asignado, Canal de ingreso, Estado actual. |
| Campo del formulario original | Una respuesta del formulario que completó el solicitante. |
| Campo de formulario intermedio | Una respuesta de un formulario intermedio de otra transición anterior (elegís primero la Transición de origen). |
| Tiempo en el estado | Minutos que la solicitud lleva en el estado actual. No requiere campo. |
Operadores: Igual a, Distinto de, Mayor que, Menor que, No es nulo (este último no lleva valor).
Cómo se comparan los valores
La comparación respeta el tipo: el texto "3" no es igual al número 3. Mayor que y Menor que solo tienen sentido con números y fechas. Si el dato buscado no existe, Distinto de se considera cumplido. Si la respuesta es una lista, Igual a se cumple cuando la lista contiene el valor.
Formularios intermedios¶
Un formulario intermedio pide datos adicionales antes de ejecutar la transición, a quien corresponda. Mientras está pendiente, la solicitud queda bloqueada para otras transiciones.
- En la sección Formulario intermedio hacé clic en Agregar formulario intermedio.
- Completá Título y Lo completa (Agente o Requirente).
- Definí Plazo (minutos) y, opcionalmente, Recordatorios antes del plazo (minutos) (por ejemplo
60, 30, 10). - Elegí Al vencer el plazo: Sin acción, Cancelar solicitud, Escalar (extiende el plazo y abre nuevos recordatorios) o Ejecutar otra transición (elegí la Transición alternativa; debe partir del mismo estado de origen).
- Con Notificar cada recordatorio y Notificar el vencimiento elegís canal y plantilla del aviso.
- En Campos, usá Agregar campo y completá Etiqueta, Tipo de campo y Obligatorio. Los tipos son los mismos que en Formularios. Podés reordenar con Mover campo arriba/abajo y sacar con Quitar campo.
- Para eliminarlo usá Quitar formulario intermedio.
Importante
Un formulario intermedio sin campos no es válido para publicar. Los catálogos que use se congelan al publicar la versión: cambios posteriores en el catálogo no lo afectan.
Quién lo completa: si es Requirente, solo el dueño de la solicitud. Si es Agente, el agente asignado (o quien supervise o administre). El solicitante no puede completar un formulario destinado al agente aunque sea el dueño.
Acciones automáticas¶
Efectos que se disparan al ejecutar la transición. Podés agregar varias (botones Agregar notificación, Agregar reasignación, Agregar cambio de prioridad) y ordenarlas con Mover arriba/abajo. Sin acciones: "Sin acciones configuradas.".
| Tipo | Qué hace | Datos |
|---|---|---|
| Notificación | Envía un aviso. | Canal (Interno o Email), Plantilla de mensaje, Destinatarios (Requirente, Agente asignado, Supervisor de área, Permiso específico). |
| Reasignación | Cambia dónde está la solicitud. | Reasignar a: Área, Equipo o Agente específico (uno solo). |
| Cambio de prioridad | Modifica la prioridad. | Nueva prioridad (Baja, Media, Alta, Crítica). |
Todas tienen:
- Momento: Antes de cambiar de estado o Después de cambiar de estado.
- Si falla: Continuar (fail-soft) (se registra el error y la transición sigue) o Bloquear (solo tiene efecto antes del cambio de estado: aborta la transición).
Sobre las notificaciones: la plantilla se elige de las plantillas de notificación activas para ese canal. Si la referencia guardada ya no existe, el editor pide elegir otra antes de publicar. El destinatario Permiso específico llega a las personas con ese permiso en el área de la solicitud.
Importante
El envío real de correos depende de una configuración del servidor que, por defecto, está apagada. Si está apagada, los avisos por Email quedan registrados como no enviados. Los avisos Interno (campana) no dependen de eso.
Aprobaciones en cadena¶
Una transición puede exigir que una cadena de aprobadores autorice antes de aplicarse. La aprobación se configura dentro de la transición (no es una acción aparte).
- En la sección Aprobación hacé clic en Agregar aprobación.
- Elegí Estado durante la aprobación (donde queda la solicitud mientras se decide) y Estado si se aprueba (debe coincidir con el destino de la transición).
- En Si se rechaza elegí Volver al estado anterior o Ir a un estado fijo (y elegí Estado si se rechaza).
- En Pasos de aprobación usá Agregar paso. Cada paso tiene:
- Tipo de aprobador: Usuario específico, Permiso (cualquier persona con ese permiso puede decidir; gana la primera) o Supervisor de área.
- Plazo (meses, días, horas o minutos).
- Acción al vencer: Escalar (extiende el plazo), Aprobar automáticamente o Rechazar automáticamente.
- Ordená los pasos con Mover arriba/abajo y sacá uno con Quitar paso. Quitar aprobación elimina toda la cadena.
Cómo funciona en la práctica:
- Los pasos se deciden en orden. Al aprobarse el último, la solicitud pasa al estado de aprobación resuelta.
- Un rechazo en cualquier paso cancela los pasos pendientes y deriva según Si se rechaza. Las aprobaciones ya dadas quedan en el historial.
- El comentario de la decisión es obligatorio.
- Todos los aprobadores necesitan además el permiso de aprobar (
ticket:approve) y acceso al ticket; el tipo de aprobador solo determina quién puede decidir cada paso. - Mientras hay una cadena en curso no se puede ejecutar otra transición.
Si la cadena queda incompleta el editor avisa ("La aprobación está incompleta. Podés guardar el borrador, pero deberás corregir pasos, referencias y estados antes de publicar."). Ver Aprobaciones.
Límites conocidos
Las cadenas de aprobación no se pueden reutilizar entre transiciones: se arman en cada una. El escalamiento al vencer un paso extiende el plazo sin nombrar a un supervisor específico y puede repetirse indefinidamente.
Disparador por tiempo (avance automático)¶
Permite que la transición se ejecute sola cuando la solicitud lleva un tiempo en el estado.
- En Disparador por tiempo hacé clic en Agregar disparador por tiempo.
- Completá Ejecutar después de (minutos) y, si querés, Observación automática.
- La transición se ejecuta hacia el estado destino de la misma transición. Para quitarlo: Quitar disparador por tiempo.
El sistema revisa los disparadores de forma periódica, por lo que la ejecución puede demorar unos minutos respecto del plazo exacto. Antes de ejecutar vuelve a comprobar el estado, las condiciones y los bloqueos, y deja registrado que la ejecutó el sistema. Además existe un cierre automático global: una solicitud Resuelta que el solicitante no confirma se cierra a las 24 horas activas del calendario hábil (lunes a viernes, 09:00 a 17:00, hora de Buenos Aires; sin feriados). No se configura por formulario.
SLA¶
En la sección SLA se define el tiempo máximo de resolución de esta versión del formulario.
| Campo | Descripción |
|---|---|
| SLA activo | Interruptor general. Apagado, no hay límite ni alertas. |
| Límite de resolución | Días, horas y minutos ("Total: {n} minutos"). Debe ser mayor a 0. |
| Calendario | Corrido (todas las horas) o Hábil (solo el horario de atención). |
| Zona horaria | Obligatoria con calendario Hábil. |
| Horario de atención | Franjas por día (botones Agregar franja, Agregar Lun-Vie, Quitar franja), con Día, Desde y Hasta. Las franjas de un mismo día no pueden superponerse y Hasta debe ser posterior a Desde. |
| Alertas | Botón Agregar alerta: porcentaje consumido (por ejemplo 50, 80), destinatarios (Agente asignado, Supervisor de área) y cómo enviarla (Enviar esta alerta: canal y plantilla). |
Reglas:
- Los porcentajes de las alertas no se pueden repetir y cada alerta necesita al menos un destinatario.
- El reloj se pausa en los estados Suspendido y en los que tengan Congela el SLA. Una reapertura conserva el tiempo ya consumido.
- Cada alerta se emite una sola vez por solicitud. Llegar al 100 % se considera vencido.
- El calendario hábil solo excluye fines de semana: no contempla feriados.
- El solicitante no ve el SLA.
Ver Estados y SLA.
Validar el flujo¶
- Hacé clic en Validar flujo ("Validando..."). Si todo está bien: "El flujo es válido.".
- Si hay problemas verás "Se encontraron {n} problema(s) de validación." con un botón Ver que lleva al elemento con el error.
- Corregí y volvé a validar. Antes de la primera validación se lee: "Todavía no se validó esta versión.".
Validar no modifica nada. Guardar un borrador con errores está permitido, pero Publicar exige un flujo válido. El flujo se guarda junto con el formulario, con el botón Guardar del editor.
Errores y mensajes frecuentes¶
| Mensaje | Qué hacer |
|---|---|
| "La versión cambió" | Otra persona guardó antes. Recargar versión del servidor o Seguir editando. |
| "No se puede eliminar el único estado..." | El flujo necesita ese estado; cambiá el tipo de otro estado primero si corresponde. |
| "La referencia guardada {código} no existe para este canal..." | Elegí otra plantilla de mensaje. |
| "Elegí un permiso válido antes de publicar." | Reemplazá el permiso desconocido por uno del catálogo. |
| "Definí un límite mayor a 0 para que el SLA tenga efecto." | Completá el Límite de resolución. |
| "Ya hay otra alerta configurada para este porcentaje." | Cambiá el porcentaje de la alerta. |
| "Elegí al menos un destinatario para esta alerta." | Marcá un destinatario. |
Los errores de validación del servidor se muestran tal cual llegan.