Modelo Webhook
No modelo Webhook, o gatilho reage à requisição que está entrando nele. Portanto, é absolutamente necessário configurar o parser da resposta (analisador sintático) e selecionar o content-type que estará vindo. Somente o tipo selecionado será esperado.
Além disso, para que os gatilhos do tipo Webhook funcionem, certifique-se de criar um campo do tipo Webhook na guia de campos da chave de acesso.
A personalização da guia deve seguir os direcionamentos indicados na resposta do widget de requisição. Se você marcar “Return data array”, quando vários objetos (entidades) chegarem ao evento, o gatilho será lançado uma automação cada vez, separadamente para cada entidade.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1iuu4to.png)
Um gatilho com este modelo de comportamento também possui um filtro que pode ser configurado em uma janela separada. O botão está na lista de gatilhos. Para a filtragem, você não precisa criar campos separados e lembrá-los; a configuração é feita usando valores estáticos.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1428k4d.png)
Se o aplicativo usar um gatilho do tipo Webhook, a configuração do filtro é opcional. O gatilho estará funcionando e capturando toda e qualquer requisição. Se você criar dois ou mais gatilhos, então o filtro já deverá ser configurado para cada um deles; caso contrário, eles não funcionarão.
Um filtro especifica uma ou mais condições com um operador AND / OR (e/ou) entre eles. Em cada condição, no campo esquerdo, você precisa especificar a chave da variável na requisição. Se a variável estiver no corpo da solicitação, o valor deve começar com "data"; se a variável estiver em cabeçalhos, o valor do campo deve começar com "headers". Especificados estes campos, prossegue-se com as regras de mapeamento usuais.
No campo central, o operador da condição é selecionado (igual, NÃO igual, contém etc.).
No campo direito, o valor que deve ser esperado é especificado, o que significará que este gatilho pode ser acionado. Exemplo:
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1fnopp7.png)
Se o gatilho precisar capturar um conjunto de campos dinâmico, que é desconhecido de antemão, e o mapeamento não pode ser configurado, precisamos configurar um apanhador de Webhooks. Após criado, o apanhador de Webhooks é adicionado ao gatilho.
![](https://storage.crisp.chat/users/helpdesk/website/aba3370d8ed67000/27c7a53a-1281-4772-b2bf-19c13c_1ojyrmw.png)
É possível adicionar outro widget de requisição completo após o widget Response, que já possui todas as guias e faz uma solicitação HTTP completa. Essa requisição ocorre logo após o recebimento do evento na URL do Webhook, com a substituição dos dados que chegaram no próprio Webhook.
Considere, por exemplo, o caso quando o Webhook recebe o próprio fato do evento, mas o corpo da requisição contém apenas o ID da entidade, o tipo de evento e o tipo de entidade. Para obter mais informações sobre a entidade que veio com o evento, você precisa solicitar seus dados em uma requisição separada.
Para fazer isso, você precisa criar um campo de gatilho, que armazenará o valor que veio para o próprio Webhook (como a ID). Após isso, já no segundo widget da requisição de saída, você pode substituir este campo, por exemplo, na URL. Nesse caso, a configuração principal do parser de resposta (análise sintática) ocorre no segundo widget, mas os dados de ambas as requisições podem ser armazenados e transferidos para a automação.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1nox2if.png)
Além disso, para que os gatilhos do tipo Webhook funcionem, certifique-se de criar um campo do tipo Webhook na guia de campos da chave de acesso.
A personalização da guia deve seguir os direcionamentos indicados na resposta do widget de requisição. Se você marcar “Return data array”, quando vários objetos (entidades) chegarem ao evento, o gatilho será lançado uma automação cada vez, separadamente para cada entidade.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1iuu4to.png)
Filtro do gatilho
Um gatilho com este modelo de comportamento também possui um filtro que pode ser configurado em uma janela separada. O botão está na lista de gatilhos. Para a filtragem, você não precisa criar campos separados e lembrá-los; a configuração é feita usando valores estáticos.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1428k4d.png)
Se o aplicativo usar um gatilho do tipo Webhook, a configuração do filtro é opcional. O gatilho estará funcionando e capturando toda e qualquer requisição. Se você criar dois ou mais gatilhos, então o filtro já deverá ser configurado para cada um deles; caso contrário, eles não funcionarão.
Um filtro especifica uma ou mais condições com um operador AND / OR (e/ou) entre eles. Em cada condição, no campo esquerdo, você precisa especificar a chave da variável na requisição. Se a variável estiver no corpo da solicitação, o valor deve começar com "data"; se a variável estiver em cabeçalhos, o valor do campo deve começar com "headers". Especificados estes campos, prossegue-se com as regras de mapeamento usuais.
No campo central, o operador da condição é selecionado (igual, NÃO igual, contém etc.).
No campo direito, o valor que deve ser esperado é especificado, o que significará que este gatilho pode ser acionado. Exemplo:
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1fnopp7.png)
Apanhador de Webhooks
Se o gatilho precisar capturar um conjunto de campos dinâmico, que é desconhecido de antemão, e o mapeamento não pode ser configurado, precisamos configurar um apanhador de Webhooks. Após criado, o apanhador de Webhooks é adicionado ao gatilho.
![](https://storage.crisp.chat/users/helpdesk/website/aba3370d8ed67000/27c7a53a-1281-4772-b2bf-19c13c_1ojyrmw.png)
Solicitação HTTP adicional
É possível adicionar outro widget de requisição completo após o widget Response, que já possui todas as guias e faz uma solicitação HTTP completa. Essa requisição ocorre logo após o recebimento do evento na URL do Webhook, com a substituição dos dados que chegaram no próprio Webhook.
Considere, por exemplo, o caso quando o Webhook recebe o próprio fato do evento, mas o corpo da requisição contém apenas o ID da entidade, o tipo de evento e o tipo de entidade. Para obter mais informações sobre a entidade que veio com o evento, você precisa solicitar seus dados em uma requisição separada.
Para fazer isso, você precisa criar um campo de gatilho, que armazenará o valor que veio para o próprio Webhook (como a ID). Após isso, já no segundo widget da requisição de saída, você pode substituir este campo, por exemplo, na URL. Nesse caso, a configuração principal do parser de resposta (análise sintática) ocorre no segundo widget, mas os dados de ambas as requisições podem ser armazenados e transferidos para a automação.
![](https://storage.crisp.chat/users/helpdesk/website/d71b68b4c7a6c80/captura-de-tela-2023-04-18-as-_1nox2if.png)
Atualizado em: 18/04/2023
Obrigado!