Aqui abordaremos com exemplos práticos de como os webhooks disparados em casos de envio de mensagem do tipo buttons.
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.
Exemplo real
Adicionamos comentários nas propriedades 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": "fc0345bc-d5f4-4592-ab2b-f263c12c8c42", // 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,
"id": "BAE5E1A381AEBFEF",
"messageUuid": "fc0345bc-d5f4-4592-ab2b-f263c12c8c42"
},
"message": {
"viewOnceMessage": {
"message": {
"messageContextInfo": {
"deviceListMetadataVersion": 2,
"deviceListMetadata": {}
},
"buttonsMessage": {
"contentText": "O que você está achando de usar a Zapfy?",
"footerText": "Não compartilhamos nada.",
"buttons": [
{
"buttonId": "ID-0",
"buttonText": {
"displayText": "Muuito bom."
},
"type": "RESPONSE"
},
{
"buttonId": "ID-1",
"buttonText": {
"displayText": "Excelente."
},
"type": "RESPONSE"
},
{
"buttonId": "ID-2",
"buttonText": {
"displayText": "Quero ver o site"
},
"type": "RESPONSE"
},
{
"buttonId": "ID-3",
"buttonText": {
"displayText": "Quero ligar"
},
"type": "RESPONSE"
}
],
"headerType": "EMPTY"
}
}
}
},
"messageTimestamp": {
"low": 1674322049,
"high": 0,
"unsigned": true
},
"status": 1
},
"ids": [
"fc0345bc-d5f4-4592-ab2b-f263c12c8c42"
]
}
Dica
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