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
POSTcomContent-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 (commessageBodyvazio). ONewTicketé enviado quando o ticket é aberto automaticamente ao receber uma mensagem (com o texto da mensagem emmessageBody). 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 campostatusdo ticket é sempre enviado como"closed", e o campoclosingReasonIdtraz 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
contacttraz o contato do ticket do grupo e o campocontactmessagetraz 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çãoexternalKeyno 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çãoPOST;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
Typeque 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