For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhook de Canal

📡 Webhooks - Dados Enviados pelo WHAZING

O WHAZING enviará requisições POST automaticamente para a URL configurada no canal (aba Integrações por Canal) toda vez que um dos eventos marcados acontecer.

Cada tipo de evento enviará uma estrutura JSON específica. Se desejar sugerir o envio de novas informações, abra uma issue no repositório!

💡 Como funcionam os envios:

  • Requisição POST com Content-Type: application/json;

  • Se um Bearer Token / API Key estiver configurado, ele vai no cabeçalho X-N8N-API-KEY;

  • O envio ocorre com um atraso de ~3 segundos e, em caso de falha, o sistema tenta até 3 vezes (com 3 minutos de intervalo entre as tentativas).


🆕 Evento: Novo Ticket Criado pelo Usuário (tipo NewTicketUserCreate)

Enviado quando um usuário cria um novo ticket manualmente (disparado pela opção “Novo ticket”).

const dataToSend = {
  Type: "NewTicketUserCreate",
  messageBody: "",
  ticket: {
    id: ticket.id,
    status: ticket.status,
    protocol: ticket.protocol,
    queueId: ticket.queueId,
    userId: ticket.userId,
    apiConfig: ticket.apiConfig
  },
  contact: ticket.contact ? {
    id: ticket.contact.id,
    name: ticket.contact.name,
    phoneNumber: ticket.contact.number,
    profilePicUrl: ticket.contact.profilePicUrl,
    email: ticket.contact.email,
    isGroup: ticket.contact.isGroup,
    pushname: ticket.contact.pushname,
    lid: ticket.contact.lid,
    kanbanId: ticket.contact.kanbanId,
    followupId: ticket.contact.tunelId
  } : null,
  whatsapp: {
    id: whatsapp.id,
    name: whatsapp.name
  }
};

🆕 Evento: Novo Ticket (tipo NewTicket)

Enviado quando um novo ticket é aberto automaticamente por uma mensagem recebida (disparado pela opção “Novo ticket”).

💡 Diferença entre os dois eventos de “Novo ticket”: o NewTicketUserCreate é enviado quando o ticket é criado manualmente por um usuário (com messageBody vazio). O NewTicket é enviado quando o ticket é aberto automaticamente ao receber uma mensagem (com o texto da mensagem em messageBody). Ambos são controlados pela mesma opção “Novo ticket” na tela.


🔀 Evento: Ticket Transferido (tipo TransferTicket)

Enviado quando um ticket é transferido para outro setor ou usuário (disparado pela opção “Ticket transferido”).


✅ Evento: Ticket Fechado (tipo ClosedTicket)

Enviado quando um ticket é finalizado/encerrado (disparado pela opção “Ticket fechado”).

💡 No evento ClosedTicket, o campo status do ticket é sempre enviado como "closed", e o campo closingReasonId traz o motivo de encerramento (quando informado).


💬 Evento: Mensagem Recebida ou Enviada

Enviado a cada nova mensagem (enviada ou recebida), respeitando os eventos marcados (“Mensagem recebida”, “Mensagem enviada”, “Ticket em atendimento”, “Ticket pendente”, “Mensagens de grupo” e “Enviar mídia em base64”).

⚠️ Atenção: diferente dos eventos de ticket acima, o evento de mensagem não possui o campo Type — a identificação do evento é feita pelos próprios campos (fromMe, ticket.status, etc.).

💡 Em mensagens de grupo, o campo contact traz o contato do ticket do grupo e o campo contactmessage traz quem realmente enviou a mensagem dentro do grupo. Para conversas individuais, contactmessage é null.


🔑 Sobre o Campo apiConfig

  • O campo apiConfig é preenchido quando você configura a opção externalKey no ticket (via API).

  • Ele permite associar uma ID única do seu sistema para facilitar a automação via Webhooks.

Exemplo:


🛠️ Observações

  • Todos os dados são enviados no formato application/json, via requisição POST;

  • O token configurado (opcional) é enviado no cabeçalho X-N8N-API-KEY;

  • Em caso de falha, o sistema tenta até 3 vezes (atraso inicial de ~3s e intervalo de 3 minutos entre as tentativas);

  • Recomendamos que o seu sistema esteja preparado para tratar os diferentes tipos de Type que serão recebidos;

  • Novos tipos de eventos podem ser adicionados no futuro. Acompanhe o repositório para atualizações!


Feito para tornar seu sistema ainda mais integrado com o WHAZING! 🚀

Atualizado