Regla del ciclo de vida
Las reglas del ciclo de vida son la forma más sencilla de agregar automatización a tu solución. Las reglas del ciclo de vida tienen 2 partes: eventos del ciclo de vida y acciones del ciclo de vida.
Los eventos del ciclo de vida se generan cada vez que ocurre un cambio en el sistema. Por ejemplo, cuando actualizas un lead —un lead es un proceso—, se genera un evento llamado process:update:post que contiene los detalles del cambio.
Así, podemos escribir reglas para ejecutar acciones automáticas del ciclo de vida en función de los eventos del ciclo de vida. Por ejemplo, podemos indicar que cada vez que se actualice un lead, se envíe una notificación a la persona asignada al lead. En este caso, send-notification es la acción del ciclo de vida que queremos ejecutar.
En resumen, lo siguiente es una regla del ciclo de vida
`Cuando se actualice un lead, enviar una notificación a la persona asignada `
- Evento del ciclo de vida -> Cuando se actualiza un lead
- Acción del ciclo de vida -> Enviar una notificación a la persona asignada
Condiciones del evento
La mayoría de las veces, querremos agregar algunas condiciones para determinar cuándo ejecutar una regla. Si continuamos con el ejemplo anterior, sería mucho más útil notificar a la persona asignada a un lead cuando se produzcan cambios importantes en el lead. Por ejemplo
When a lead's state changes to converted, send an email to the assignee
Aquí agregamos una condición adicional llamada «cuando el estado del lead cambie a convertido». Estas condiciones o criterios adicionales se implementan mediante condiciones de evento que podemos agregar a cualquier regla. Las condiciones siguen la gramática estándar del motor de reglas.
Definición de la acción
En la definición de la acción configuramos los parámetros exactos que se necesitan para ejecutar una acción. Por ejemplo, aquí
When a lead's state changes to converted, send an email to the assignee
querríamos definir qué incluir en el correo electrónico
{ "emailSubject": "{{process.data.lead_id}} has been conveerted", "emailBody": "Hi {{user.firstName}}, congratulations your lead {{process.data.lead_id}} is now converted."}Aquí podemos configurar exactamente cuál será la acción en el contexto del evento, que en este caso es una actualización de lead. En la definición de la acción, podrás acceder a todos los datos relacionados con la actualización, como los detalles del proceso, los detalles del usuario, etc.
Etiquetado
Las reglas del ciclo de vida deben etiquetarse con una entidad meta pertinente, como procedure, entity o statetask.
Síncrono/asíncrono
Las reglas se pueden procesar de forma síncrona o asíncrona con el evento. Actualmente, no se garantiza el orden de las reglas asíncronas.
Completar datos
Muchas veces necesitamos completar el evento original para obtener información adicional. Los principales aspectos que hay que considerar al completar datos son
- latencia: demasiadas operaciones para completar datos = demasiadas consultas de datos = reglas más lentas
- reglas más complejas
Actualmente, los datos se completan en 3 niveles
- process-event
- todos los eventos de tareas se completan con
populatedTask - process-action
- todos los eventos que tienen la definición populatePath correcta se completan in situ; el objeto del evento original se modifica
- implementación de la acción
- las acciones individuales también completan datos, normalmente en una clave llamada
_meta
Lista de eventos
- api-check:post
- booking:update:post
- call:create:post
- call:create:pre
- call:update:post
- email:received:post
- form-response:create:post
- process:allocate:post
- process:create:post
- process:create:pre
- process:state-change:post
- process:update:post
- process:update:pre
- record:create:post
- record:update:post
- task:create:post
- task:create:pre
- task:update:post
- task:update:pre
- upload-job:complete:post
- user:login:post
- user:logout:post
- webhook:inbound:post
Lista de acciones
- process:start
- record:create
- record-process:create
- process:complete
- process:update
- process:bulk-update
- process:find-one-and-update
- task:create-from-statetask
- task:allocate
- task:bulk-update
- record:find-and-update
- script:run
- task:webhook-task-external
- process:webhook-process-external
- call:webhook-call-external
- task:webhook
- process:bulk-find-and-complete
- process:update-using-rule
- process:modify-query
- external-api:call
- call:link-record-and-process
- notify:email
- notify:sms
- notification:create
- external-data-store:push