Aqui abordaremos com exemplos práticos de como os webhooks disparados em casos de envio de mensagem do tipo text.
No geral, quando se envia uma mensagem no Zapfy, após a fila executar a mensagem, é disparado um webhook inicial do tipo NEW-MESSAGE, esse webhooks é disparado toda vez que uma instância envia ou recebe uma nova mensagem.
Exemplos reais
Instância envia uma mensagem do tipo text
Adicionamos comentários em cada propriedade para melhor entendimento.
{"type":"NEW-MESSAGE","instanceKey":"b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7",// key de identificação da instância que recebeu/enviou a mensagem"id":"c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9",// ID da mensagem (esse ID só terá valor caso a mensagem seja enviada via API zapfy)"data": {"isOnWhatsApp": [ {"exists":true,// Propriedade que diz se o contato existe ou não no WhatsApp"jid":"5527997320619@s.whatsapp.net"// Contato que foi o destinatário da mensagem } ],"messageStubParameters": [],"labels": [],"userReceipt": [],"reactions": [],"pollUpdates": [],"key": {"remoteJid":"5527997320619@s.whatsapp.net","fromMe":true,// Propriedade que indica se a mensagem foi enviada pelo número conectado na instância"id":"BAE5773A4D88E1B4",// ID da mensagem no WhatsApp"messageUuid":"c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9"// UUID da mensagem que foi adicionada à fila do Zapfy, essa propriedade só existirá em casos em que a mensagem foi enviada pela ZAPFY },"message": {"extendedTextMessage": {"text":"Uma mensagem de texto direto da Zapfy :)"// Objeto completo da mensagem de texto, aqui será possível ver o que foi enviado nessa mensagem de texto } },"messageTimestamp": {"low":1674317457,"high":0,"unsigned":true },"status":1// Status da mensagem, você poderá entender melhor sobre status no Webhook de alteração de status de mensagem },"ids": ["c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9" ] // Array contendo os uuids das mensagens que foram enviadas nessa instância, nesse job.}
Instância recebe mensagem do tipo text:
{"type":"NEW-MESSAGE","instanceKey":"b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7",// Key da instância que recebeu a mensagem"id":null,// ID da mensagem, nesse caso, como a mensagem não foi enviada pela Zapfy, o ID retorna como null."data": {"isOnWhatsApp": [ {"exists":true,// Propriedade que diz se o contato existe ou não no WhatsApp"jid":"5527997320619@s.whatsapp.net"// Contato de quem enviou a mensagem } ],"key": {"remoteJid":"5527997320619@s.whatsapp.net",// ID de identificação do contato que enviou a mensagem no whatsapp"fromMe":false,// Propriedade indicando que a mensagem não foi enviada pelo número conectado na instância"id":"3EB0CBF3275965A42934",// ID único de identificação da mensagem no whatsapp"messageUuid":null// O uuid é nulo pois essa mensagem não foi enviada pela Zapfy },"messageTimestamp":1674318916,// Timestamp da mensagem"pushName":"André Rebonato",// Nome do usuário que enviou a mensagem no whatsapp"message": {"conversation":"Opa, beleza?",// Texto enviado pelo usuário"messageContextInfo": {"deviceListMetadata": {"senderKeyHash":"NBrlAUVzZa0X2g==","senderTimestamp":"1674267191","recipientKeyHash":"gwKoARMTqmLUWw==","recipientTimestamp":"1674267207" },// Informações de autenticidade da mensagem"deviceListMetadataVersion":2 } } },"ids": [null ]}
Dica
É importante lembrar que todo envio ou recebimento de mensagem gera eventos do tipo MESSAGE-UPDATED, dê uma olhada para entender melhor do que se trata em Alteração de status da mensagem.
Sempre se baseie na propriedade fromMe para saber se foi sua instância que enviou a mensagem.
Se essa propriedade for false, significa que a mensagem foi recebida, e não enviada, ou seja, alguém mandou essa mensagem para o número conectado na sua instância