ChakraHQChakraHQ
Funciones

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

En esta página