Como usar webhooks?

Última atualização em Nov 04, 2024

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.