Skip to main content

Visão geral

Quando uma sessão processa uma mensagem, o whatabot envia uma requisição POST para a URL de callback configurada na sua Chave de API. É assim que seu sistema recebe as respostas do bot — mensagens de texto, mídia, menus interativos, transferências e finalização de sessão.

Configuração

A URL do webhook é definida por Chave de API através do campo callbackUrl. Consulte Criar Chave de API ou Atualizar Chave de API.
A URL de callback deve usar HTTPS e não pode apontar para localhost, endereços de loopback ou faixas de IP privadas (10.x.x.x, 192.168.x.x, etc.).

Estrutura do Payload

Todo webhook é uma requisição POST com o seguinte corpo JSON:

Campos de Nível Superior

O Array changes

O array changes informa ao seu sistema o que aconteceu durante esta etapa do fluxo. Existem três tipos possíveis de mudança: Um único webhook pode conter múltiplos tipos de mudança — por exemplo, quando um nó envia uma mensagem, transfere a conversa e emite um evento kanban na mesma etapa.

Tipos de Mensagem

Quando field é "messages", o array value.messages contém uma ou mais mensagens. Cada mensagem tem um type que determina sua estrutura. Todas as mensagens podem conter um campo opcional tags (string[]) com as tags configuradas no nó do fluxo que gerou a mensagem. Use as tags para categorizar ou rotear mensagens no seu sistema.

Texto

Uma mensagem de texto simples.

Mídia

Um anexo de arquivo (imagem, vídeo, áudio, documento ou sticker).

Template

Uma mensagem de template (modelo pré-aprovado pelo WhatsApp).

Interativo — Botão

Uma mensagem com botões clicáveis (até 3).

Interativo — Lista

Uma lista rolável com seções e linhas.

Interativo — CTA URL

Uma mensagem com um botão de link.

Tipos de Função

Quando field é "function", o array value.functions contém uma ou mais ações disparadas pelo fluxo.

Transferência

A conversa foi transferida para um agente humano ou setor.

Finalização

A sessão foi finalizada.

Tipos de Evento

Quando field é "event", o array value.events contém eventos de domínio emitidos durante o processamento do fluxo. Cada evento tem domain, type, payload e timestamp.

Kanban

Eventos emitidos quando o fluxo interage com o kanban (nó Kanban Move) ou quando operações são feitas em cards vinculados a sessões ativas.

Exemplo Completo

Um webhook típico onde o bot envia uma saudação e apresenta botões:
Um webhook onde o bot transfere a conversa:
Um webhook com evento kanban (card criado e movido durante o fluxo):

Entrega

Seu endpoint deve responder em no máximo 5 segundos. Após esse tempo, a requisição será considerada como falha e será tentada novamente. Certifique-se de que o processamento no seu servidor seja rápido ou utilize filas para processar os dados de forma assíncrona.
Seu endpoint deve responder com um código de status 2xx. Respostas diferentes de 2xx são tratadas como falhas e serão tentadas novamente até 3 vezes.