Temporizadores (Timers) en flujos de proceso: interruptivos y no interruptivos
Los temporizadores —o timers— son herramientas que te permiten incorporar condiciones de tiempo a una Tarea de Usuario activa. Funcionan como una combinación entre un cronómetro y un despertador: al llegar a una tarea con un temporizador, este comienza a contar y, cuando se cumple el intervalo configurado, se dispara una acción específica.
Dependiendo del tipo de temporizador, pueden suceder dos cosas:
- Con un temporizador interruptivo, la tarea vinculada se interrumpe y el flujo continúa por una ruta alternativa.
- Con un temporizador no interruptivo, la tarea principal continúa activa y se genera una ejecución adicional por otra ruta del proceso.
Aquí te explicamos las diferencias, cuándo usar cada uno, cómo configurarlos y ejemplos prácticos.
Cuándo usar cada tipo
- Usa un temporizador interruptivo cuando quieras que, si no se cumple la tarea en el tiempo establecido, el proceso avance automáticamente por una ruta alternativa. Por ejemplo, si alguien debe revisar una solicitud en 3 días y, si no lo hace, se envie automáticamente a un supervisor o se rechace el pedido.
- Usa un temporizador no interruptivo cuando quieras generar acciones complementarias (recordatorios, alertas, seguimientos) sin impedir que la tarea principal siga activa. Por ejemplo, enviar un email de recordatorio al usuario si no ha actuado en 24 horas, pero permitir que siga trabajando en la tarea.
Cómo añadir un timer
Para agregar un timer simplemente arrastra el elemento y conéctalo con una Tarea de Usuario. Por defecto el timer estará configurado como interruptivo. Más adelante te explicamos cómo cambiar su tipo.
Configurar un temporizador interruptivo
- Una vez añadido, haz doble clic en el timer para definir el plazo (puedes combinar entre años, meses, días, horas, minutos, segundos), establecer una duración a partir de tu configuración de días laborables, o usar una fecha absoluta basada en un campo de tipo fecha.
- Establece la ruta alternativa del flujo que debe ejecutarse cuando el timer venza (es decir, si la tarea no se completa en ese plazo).
Comportamiento: si el usuario no completa la tarea antes del plazo, esa tarea se cancela y el flujo continúa exclusivamente por la ruta del timer.
Configurar un temporizador no interruptivo
- Al añadir un timer, por defecto aparecerá como interruptivo. Haz clic sobre el timer y selecciona la opción de configuración (ícono de llave inglesa) y cambia a tipo no interruptivo.
- Haz doble clic en el timer para definir el plazo (puedes combinar entre años, meses, días, horas, minutos, segundos), establecer una duración a partir de tu configuración de días laborables, o usar una fecha absoluta basada en un campo de tipo fecha.
- Configura la ruta paralela que el workflow debe seguir cuando venza el temporizador.
Comportamiento: si el usuario no completa la tarea en el plazo, el temporizador activa la ruta alternativa sin cancelar la tarea original. Ambas rutas (la del usuario y la del timer) pueden coexistir.
Ejecuciones recurrentes
Puedes configurar los timers no interruptivos para que se ejecuten de forma recurrente hasta que su Tarea de usuario asociada sea completada.
Para ello deberás configurar el campo Cantidad de ejecuciones con la cantidad máxima de veces que quieres disparar el temporizador.
Esto es útil para enviar recordatorios recurrentes mientras la tarea se encuentra activa.
Comportamiento: cada vez que el temporizador es ejecutado, comenzará a contar nuevamente el plazo configurado, tras el cual se disparará una nueva ejecución.
Ejecución en bucle y posibles problema
Al configurar temporizadores no interruptivos debes tener especial cuidado en no crear ejecuciones en bucle como la siguiente:
Al estar conectado el flujo paralelo con la tarea de usuario, se creará una copia de la instancia de proceso cada vez que se ejecute el temporizador.
Desconecta el flujo adicional de la tarea de usuario para asegurarte de que los caminos se mantengan independientes.
Ejemplos prácticos
Ejemplo de timer interruptivo: expiración de revisión
Supongamos que en un proceso de aprobación, hay una tarea "Revisar solicitud" con plazo de 3 días. Si no se revisa en ese plazo, quieres que automáticamente la solicitud vaya al gerente para revisión.
- Colocas un temporizador interruptivo vinculado a esa tarea, con plazo de 3 días.
- Definimos la ruta alternativa: “revisión por gerente”.
- Si el usuario revisa la solicitud antes de los 3 días, el flujo sigue normalmente.
- Si no lo hace, la tarea "Revisar solicitud" se cancela y el flujo va por la ruta “revisión por gerente”.
Ejemplo de timer no interruptivo: recordatorio de tarea pendiente
Supongamos un proceso donde una tarea “Completar informe” debe realizarse en 5 días. Quieres enviar un recordatorio al usuario 2 días antes si aún no lo hizo, pero permitir que siga trabajando.
- Agregas un temporizador no interruptivo vinculado a la tarea, con plazo de 3 días (o equivalente, según cuándo quieras el recordatorio).
- Definimos una ruta paralela que envíe un correo recordatorio.
- Si el usuario ya ha completado el informe antes de los 3 días, ese recordatorio no tendrá efecto.
- La tarea “Completar informe” sigue activa durante todo el plazo de los 5 días y hasta tanto no se complete.
- Puedes añadir más de un timer no interruptivos: por ejemplo, uno para recordatorios que se ejecutará cada 1 día (durante 5 días), y un timer adicional que se ejecutará una vez sola transcurridos los 5 días de plazo que creará un flujo adicional de notificación al Supervisor. Pero cuidado de no generar duplicados o ciclos infinitos.
Buenas prácticas y recomendaciones
- No mezclar timers interruptivos: una tarea no puede tener más de uno, ni conviene porque solo uno se activará.
- Limita el uso de timers no interruptivos: aunque puedes tener varios por tarea, cada ruta debe tener sentido y evitar loops indeseados.
- Evita bucles o duplicaciones: especialmente con timers no interruptivos disparando acciones que reactivan la misma tarea o instancias del proceso.
- Documenta claramente las rutas alternativas: al diseñar el flujo, asegúrate de que cada temporizador tiene una ruta bien definida y que no genera ambigüedad con la ruta principal.
- Usa fechas absolutas con cuidado: cuando el timer dependa de un campo de tipo fecha, asegúrate de que ese campo siempre estará disponible y con valor válido (fecha posterior al día de asignación), de lo contrario el timer podría ejecutarse de inmediato.
Actualizado el: 30/09/2025
¡Gracias!