Tipos de Trigger
- Los tres tipos de trigger disponibles: temporal, hook y manual
- Cómo funciona cada tipo de trigger y cuándo usarlo
- Cómo configurar el trigger en la sección Disparador del formulario del workflow
Un trigger es la condición que inicia tu workflow. Todo workflow tiene exactamente un trigger, y lo seleccionas del desplegable Tipo en la sección Disparador del formulario de creación del workflow. Hay tres tipos de trigger para elegir.
Temporal -- triggers programados
Un trigger temporal ejecuta tu workflow según un cronograma, similar a un cron job. Úsalo cuando quieras que tu workflow se ejecute a una hora específica o en un intervalo recurrente.
Ejemplos de triggers temporales:
- Ejecutar cada día laborable a las 9:00 AM para enviar recordatorios de citas
- Ejecutar una vez por semana, el lunes, para generar un reporte resumen
- Ejecutar cada hora para verificar conversaciones inactivas
Cuando seleccionas el tipo de trigger temporal, el formulario muestra campos donde defines el cronograma como una regla de recurrencia iCalendar: dtstart (la primera ocurrencia, una fecha-hora), repeats (si se repite) y rrule (la regla de recurrencia, ej.: FREQ=DAILY;INTERVAL=1 o FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR). No hay un campo cron o timezone separado -- la programación se expresa enteramente mediante el RRULE anclado en dtstart.
Los triggers temporales son ideales para tareas recurrentes que no dependen de que ocurra un evento específico en el sistema. Piensa en ellos como tareas programadas que se ejecutan como un reloj.
Hook -- triggers basados en eventos
Un trigger hook se dispara cuando ocurre un evento específico en el sistema. Úsalo cuando quieras que tu workflow reaccione a un evento como la llegada de un nuevo mensaje o la creación de un contacto.
Ejemplos de triggers hook:
- Se recibe un nuevo mensaje en una conversación
- Se crea un nuevo contacto en la base de datos
- Se abre una conversación desde un canal específico
- Se agenda o actualiza una cita o evento
Cuando seleccionas el tipo de trigger hook, especificas el model (la colección a observar, ej.: contacts) y el op -- la operación del ciclo de vida que dispara el hook. El op es uno de beforeSave, afterSave, beforeCreate, afterCreate, beforeUpdate, afterUpdate, beforeDelete o afterDelete (los hooks before* se disparan antes de la escritura y los hooks after* se disparan después de que se completa). En ambos casos el workflow recibe una instantánea de solo lectura del documento -- un workflow nunca puede modificar ni cancelar la escritura que lo disparó, y un workflow que falla nunca bloquea la escritura.
El documento modificado queda entonces disponible para los pasos de tu workflow como la variable CEL doc (con prev para el estado anterior en las actualizaciones, más op y model). Por ejemplo, referencia el nombre del nuevo registro con {"expr": "doc.name"}. Ten en cuenta que contact, conversation y contactMessage solo se completan cuando un workflow se ejecuta con un contexto de mensajería/padre (como un workflow invocado desde un asistente); para un trigger hook simple están vacíos, así que lee el registro que lo disparó mediante doc. No existe una variable trigger de nivel superior.
También puedes establecer una expresión CEL de filtro opcional en el trigger hook para acotar qué cambios disparan el workflow. Se evalúa contra las mismas variables doc y prev y debe evaluarse como verdadera para que el workflow se ejecute -- si devuelve falso o no logra evaluarse, el workflow se omite. Úsala para casos como "se abre una conversación desde un canal específico", donde model y op por sí solos se dispararían para todos los canales.
Los triggers hook son el tipo de trigger más común. Permiten que tus workflows respondan en tiempo real a eventos de todo el sistema, como mensajes de bienvenida, notificaciones y actualizaciones de datos.
Manual -- activado por el profesional
Un trigger manual significa que el workflow no se inicia automáticamente. En su lugar, un profesional lo inicia haciendo clic en el botón Ejecutar en la página del workflow. Úsalo cuando quieras que una persona decida cuándo debe ejecutarse el workflow.
Ejemplos de triggers manuales:
- Un profesional ejecuta un workflow de limpieza masiva de datos cuando es necesario
- Un líder de equipo activa un workflow de generación de reportes bajo demanda
- Un agente de soporte dispara manualmente una secuencia de seguimiento para un contacto específico
Cuando seleccionas el tipo de trigger manual, opcionalmente puedes definir campos de entrada personalizados que el profesional completa al iniciar el workflow. Por ejemplo, podrías pedirle al profesional que ingrese un ID de contacto o seleccione un rango de fechas antes de que comience la ejecución.
Importante: El botón Ejecutar solo aparece una vez que el workflow está activado y guardado. Mientras estás creando un nuevo workflow, no estará disponible.
Los triggers manuales son excelentes para workflows que requieren juicio humano sobre cuándo ejecutarse. También puedes definir entradas personalizadas para que el profesional proporcione datos específicos cada vez que se inicia el workflow.
Elegir el trigger correcto
| Quieres... | Usa este trigger |
|---|---|
| Ejecutar una automatización en un cronograma fijo (diario, semanal, por hora) | temporal |
| Reaccionar a un evento en el sistema (nuevo mensaje, nuevo contacto) | hook |
| Dejar que un profesional decida cuándo ejecutar el workflow | manual |
Cada workflow admite exactamente un trigger. Si necesitas que el mismo conjunto de pasos se ejecute para diferentes eventos, crea un workflow separado para cada tipo de trigger.