Regra de ciclo de vida
As regras de ciclo de vida são a maneira mais fácil de adicionar automação à sua solução. Elas têm 2 partes: eventos de ciclo de vida e ações de ciclo de vida.
Os eventos de ciclo de vida são gerados sempre que ocorre qualquer alteração no sistema. Por exemplo, quando você atualiza um lead — sendo o lead um processo —, um evento chamado process:update:post é gerado com os detalhes da alteração.
Assim, podemos criar regras para executar ações automáticas de ciclo de vida com base nos eventos de ciclo de vida. Por exemplo, podemos definir que, sempre que um lead for atualizado, uma notificação seja enviada à pessoa responsável pelo lead. Nesse caso, send-notification é a ação de ciclo de vida que queremos executar.
Em resumo, o seguinte é uma regra de ciclo de vida
`Quando um lead for atualizado, envie uma notificação à pessoa responsável `
- Evento de ciclo de vida -> Quando um lead é atualizado
- Ação de ciclo de vida -> Enviar uma notificação à pessoa responsável
Condições do evento
Na maioria das vezes, queremos adicionar algumas condições para determinar quando uma regra deve ser executada. Dando continuidade ao exemplo anterior, seria muito mais útil notificar a pessoa responsável pelo lead quando ocorrerem atualizações importantes. Por exemplo:
When a lead's state changes to converted, send an email to the assignee
Aqui, adicionamos uma condição extra chamada "quando o status do lead mudar para convertido". Essas condições ou critérios extras são implementados por meio de condições de evento, que podemos adicionar a qualquer regra. As condições seguem a gramática padrão do mecanismo de regras.
Definição da ação
Na definição da ação, configuramos os parâmetros exatos necessários para executá-la. Por exemplo, aqui
When a lead's state changes to converted, send an email to the assignee
definiríamos o conteúdo do e-mail da seguinte forma:
{ "emailSubject": "{{process.data.lead_id}} has been conveerted", "emailBody": "Hi {{user.firstName}}, congratulations your lead {{process.data.lead_id}} is now converted."}Aqui, podemos configurar exatamente qual será a ação no contexto do evento, que neste caso é uma atualização de lead. Na definição da ação, você poderá acessar todos os dados relacionados à atualização, como detalhes do processo, dados do usuário etc.
Marcação
As regras de ciclo de vida devem ser associadas a uma entidade meta relevante, como procedure, entity ou statetask.
Síncrono/assíncrono
As regras podem ser processadas de forma síncrona ou assíncrona com o evento. Atualmente, a ordem das regras assíncronas não é garantida.
Preenchimento
Muitas vezes, precisamos preencher o evento original para obter informações extras. As principais preocupações relacionadas ao preenchimento são:
- latência — muitos preenchimentos = muitas buscas de dados = regras mais lentas
- regras mais complexas
Atualmente, o populate é feito em 3 níveis
- process-event
- todos os eventos de tarefa são populados com
populatedTask - process-action
- todos os eventos com a definição correta de populatePath são populados in situ — o objeto do evento original é alterado
- implementação da ação
- as próprias ações individuais também populam dados, geralmente em uma chave chamada
_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 ações
- 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