Como criar Webhooks
Para começar, Webhooks são chamadas feitas em tempo real para seu URL personalizado quando qualquer evento é acionado no WhatsApp.
Por exemplo: Quando uma nova mensagem é recebida/enviada ou se houver alteração de status de uma mensagem que foi enviada, como: "Lido" ou "Entregue". O sistema dispara a notificação para SEU URL.
Regras:
A partir de 09/03/2024 os webhooks começarão a ser pausados automaticamente em caso de erros excessivos. Para obter mais detalhes e entender o que consideramos como erro em relação ao Webhook, consulte os tópicos a seguir.
Se é isso que deseja, os próximos tópicos lhe ajudarão com a integração. Familiaridade com o tópico é recomendado. Senão, a ajuda de desenvolvedores pode ser necessária.
{
"Type": "Message", // String contendo o tipo do evento. Veja o t�pico abaixo para mais detalhes das possibilidades
"EventDate": "2024-02-07T18:44:01.3135533Z", // A data que o evento ocorreu, no formato ISO 8601
"Payload": {
"Type": "Chat", // At� o momento, sempre Chat. Corresponde ao objeto BasicChatModel que � o mesmo que est� descrito no schema da API.
"Content": { } // O objeto correspondente a propriedade Type. Atualmente, sempre do tipo BasicChatModel
},
"EventId": "ZcPPcWpimiD3EiER" // Id �nico para cada evento. Persiste entre re-tentativas
}
Uma mensagem nova do contato ou de um membro. Pode ser analisada via o objeto LastMessage do payload. Propriedades notáveis desse objeto incluem:
Content: O conteúdo do texto da mensagem
IsPrivate: Mensagens "privadas" é como chamamos as notas internas. Indica que é uma nota quando true
Source: Informa quem foi a origem da mensagem. (contato, membro, bot etc)
MemberTranfer
Um chat foi transferido para algum membro, ou foi removido. A propriedade relevante do payload é a OrganizationMember.
ChatClosed
Ocorre quando um chat é finalizado.
ChatSectorChanged
Ocorre quando o setor de um chat é alterado. A propriedade relevante do payload é a Sector.
ChatPrivateStatusChanged
Ocorre quando um chat é privado ou des-privado. As propriedades relevantes do payload são Private e OrganizationMember (de quem pertence caso esteja privado).
Observação: Ainda não temos eventos para atualizações de status de mensagens enviadas.
- O código de status deve ser entre 200 e 299
- O tempo de resposta deve ser inferior a 5 segundos
- O corpo de resposta (se houver) é ignorado.
Por causa do tempo de resposta máximo de 5 segundos, recomendamos que a resposta seja produzida o mais cedo possível de quando é recebida. Se a sua lógica inclui operações que podem demorar, um sistema de fila para que seja executado em background após enviar a resposta seria o ideal.
Um envio não sucedido causará até 2 re-tentativas. O número da tentativa é incluída no header x-attempt. O Id do webhook (na raiz do JSON) permanece constante durante as re-tentativas. Muitas falhas de entrega podem causar que seu Webhook seja automaticamente pausado. Veja o tópico abaixo para mais informações.
- A contagem de erros é zerada toda meia noite UTC-0 (em 3 horas) ou quando o Webhook é des-pausado.
- A contagem é incrementada apenas se a última re-tentativa falhar a ser entregue.
Criando um Webhook
Agora que você já sabe sobre o conceito e utilização de um Webhook, para acessá-lo na versão 2.0, siga os passos abaixo!
-
Passo 1
Vá em configurações (ícone da engrenagem) > Webhooks.
-
Passo 2
Clique em Criar webhook.
-
Passo 3
Preencha as informações como nome do webhook, url onde ele será notificado e canais que quer ser notificado(a). Em seguida, clique em salvar.
- Pronto, ao finalizar o processo acima o seu Webhook estará criado!
Caso queira editar os dados do Webhook criado, clique sobre o ícone da caneta, caso queira excluí-lo clique sobre o ícone da lixeira.
Para ordenar a busca de A-Z por um Webhook já criado, clique sobre o ícone com a seta para baixo.
Já para fazer a ordenação por nome, url ou data clique sobre ordenar por nome.
Para buscar um Webook da sua lista, você pode usar diretamente a barra de pesquisa para digitar o nome do Webhook que está procurando.