> For the complete documentation index, see [llms.txt](https://sejasuri.gitbook.io/manual-de-integracao/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sejasuri.gitbook.io/manual-de-integracao/webhooks.md).

# Webhooks

Suri ativamente conecta-se a serviço externo informando eventos importantes

Precisa ser informado de quando um evento importante acontecer na Suri Shop by Totvs? *Webhook* pode ser sua solução. Com eles, seu serviço externo (API, CRM, etc.) ficam informados sempre que determinada ação acontecer.

### Habilitando

Em seu [Portal](https://portal.chatbotmaker.io/) com acesso de administrador, acesse a página de Configurações, na aba Geral e procure por "*Webhook*". Preencha o campo com a URL do serviço no qual você deseja receber eventos e em seguida clique em Salvar.

{% hint style="warning" %}
Ao clicar no botão de Salvar desta tela, faremos uma chamada do tipo GET para a URL informada no campo. Esperamos receber uma resposta de **status 200** e um **corpo contendo unicamente o Identificador** do chatbot em questão (o mesmo que aparece no primeiro campo da tela). Fazemos isso por uma questão de segurança, um *handshake* com seu serviço.
{% endhint %}

<figure><img src="https://1837340083-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5E34bepJuSf1ssBFTTtX%2Fuploads%2FfiTur7VmTxhiNxsDa22F%2FPortal-Config.png?alt=media&amp;token=4c10ab9e-7a9a-4386-b1aa-b89936e236a7" alt=""><figcaption></figcaption></figure>

Ao salvar o *endpoint*, **todos os eventos** serão enviados para mesma URL na forma de requisição POST, cujo corpo da requisição é o dado referente ao tipo do evento. Confira os modelos de cada evento em nossa [documentação do Postman](https://documenter.getpostman.com/view/17684221/UUxz9mt5#16bce47e-967f-46a1-9fbc-8cff9ef9775e).

### Tipos de *Webhook*

Enviamos os seguintes eventos:

* **Novo contato:** quando uma pessoa fala pela primeira vez com seu chatbot através de algum dos canais conectados (WhatsApp, Instagram, etc.). Bem útil para quantificar novos leads, por exemplo;
* **Troca de fila:** quando um contato passa de uma fila do chatbot para outra. Por exemplo, quando sai do "Automático" para "Esperando atendimento" ao solicitar atendimento humano;
* **Finalização de atendimento:** quando um agente humano encerra atendimento com um contato;
* **Mensagem recebida:** quando um contato envia uma mensagem para o chatbot. Esse webhook é interessante quando você precisa espelhar as mensagens para um serviço externo ou para mapear mensagens de contatos que estão em um fluxo específico (por exemplo, quando a Suri Shop by Totvs solicita CPF do contato e ele responde).

{% hint style="info" %}
Note: como todos os webhooks são enviados para o mesmo endpoint, é necessário realizar um tratamento no serviço de destino, para que ele consiga identificar os eventos desejados. Para isso consulte a documentação e fique atento no atributo `type`, que identifica corretamente o tipo de evento que seu serviço está recebendo.
{% endhint %}
