Webhooks são callbacks HTTP configurados para cada conta, disparados quando ações como criação de mensagens ocorrem no Chatwoot. É possível configurar múltiplos webhooks para uma única conta.
Como adicionar um webhook?
Passo 1: Vá para Configurações → Integrações → Webhooks e clique no botão "Configurar".
Passo 2: Clique no botão "Adicionar novo webhook". Uma janela modal será aberta, onde você deve inserir a URL para a qual a requisição POST será enviada. Depois, selecione os eventos que deseja assinar, para que apenas eventos relevantes no Chatwoot sejam notificados.
O Chatwoot enviará uma requisição POST com o seguinte payload para as URLs configuradas, quando ocorrerem atualizações em sua conta.
Exemplo de payload de webhook:
{
"event": "message_created", // Nome do evento
"id": "1", // ID da mensagem
"content": "Oi", // Conteúdo da mensagem
"created_at": "2020-03-03 13:05:57 UTC", // Data e hora em que a mensagem foi enviada
"message_type": "incoming", // Pode ser incoming (entrada), outgoing (saída) ou template
"content_type": "enum", // Pode ser input_select, cards, form ou texto. O valor padrão é texto
"content_attributes": {}, // Atributos do conteúdo, podem variar
"source_id": "", // ID externo se for uma integração com Twitter ou Facebook
"sender": { // Detalhes do agente que enviou a mensagem
"id": "1",
"name": "Agente",
"email": "[email protected]"
},
"contact": { // Detalhes do usuário que enviou a mensagem
"id": "1",
"name": "nome-do-contato"
},
"conversation": { // Detalhes da conversa
"display_id": "1", // ID da conversa visível no painel
"additional_attributes": {
"browser": {
"device_name": "Macbook",
"browser_name": "Chrome",
"platform_name": "Macintosh",
"browser_version": "80.0.3987.122",
"platform_version": "10.15.2"
},
"referer": "<http://www.chatwoot.com>",
"initiated_at": "Tue Mar 03 2020 18:37:38 GMT-0700 (Mountain Standard Time)"
}
},
"account": { // Detalhes da conta
"id": "1",
"name": "Chatwoot"
}
}
Eventos de webhook suportados no Chatwoot
O Chatwoot publica vários eventos para os endpoints de webhooks configurados. Cada evento tem sua estrutura de payload baseada no tipo de modelo a que se refere. A seguir, estão descritos os principais objetos usados no Chatwoot e seus atributos.
Objetos
Um payload de evento pode incluir os seguintes objetos:
-
Conta (Account): Detalhes da conta.
-
Caixa de Entrada (Inbox): Detalhes sobre a caixa de entrada.
-
Contato (Contact): Informações sobre o contato.
-
Usuário (User): Dados do usuário envolvido.
-
Conversa (Conversation): Informações da conversa.
-
Mensagem (Message): Dados da mensagem.
Exemplo de eventos suportados
-
conversation_created: Disparado quando uma nova conversa é criada.
-
conversation_updated: Disparado quando há uma alteração em algum atributo da conversa.
-
conversation_status_changed: Disparado quando o status da conversa é alterado.
-
message_created: Disparado quando uma mensagem é criada em uma conversa.
-
message_updated: Disparado quando uma mensagem é atualizada.
-
webwidget_triggered: Disparado quando o widget de chat é aberto pelo usuário final.
Esses eventos podem ser assinados ao configurar um webhook no painel ou via API.