Webhook pesan, dan status pesan

Webhook ini berfungsi untuk mengirimkan data ketika ada pesan masuk, pesan masuk berupa text, reply, reaction, dan status perubahan pesan. Ada 4 kategori webhook yang akan dikirim :

  • message

  • message_ack

  • message_ack_browser

Message

Karena webhook message ini kompleks, ada beberapa hal yang perlu Anda ketahui, di webhook message dibagi menjadi 3 object type lagi :

  • reactionMessage

  • extendedTextMessage

  • conversation

reactionMessage adalah pesan yang diberikan reaction oleh pengguna whatsapp lain

extendedTextMessage dan conversation adalah object type untuk menerima pesan masuk berupa text, kedua object ini memiliki struktur yang sama, jadi Anda tidak perlu bingung dengan kedua type ini, karena keduanya tidak berbeda struktur json!.

Lebih lengkapnya silahkan lihat object json dibawah

{
  "type": "message", // Tipe webhook yang dikirim
  "results": { // Kumpulan object dari event message
    "key": { // Informasi pengirim
      "remoteJid": "[email protected]", // Nomer pengirim
      "fromMe": false, // Dikirim dari nomer sendiri ?
      "id": "xxxxx" // ID pesan
    },
    "messageTimestamp": 1691639955, // Waktu pesan
    "pushName": "xxxxx", // Nama Whatsapp
    "broadcast": false, // Apakah pesan broadcast ?
    "status": 2, // Object ini hanya muncul ketika mengirim pesan via API
    "message": {
      ... // Object disini adalah raw pesan whatsapp, bisa berubah sewaktu2
    },
    "verifiedBizName": "WHAPI", // Object untuk nama whatsapp bisnis
    "t": 1691639955, // Waktu pesan
    "id": "xxxxx", // ID pesan
    "from": "[email protected]", // Nomer pengirim
    "fromMe": false, // Dikirim dari nomer sendiri ?
    "chatId": "[email protected]", // Nomer pengirim
    "isGroupMsg": false, // Apakah pesan dari grup ?
    "isStories": false, // Apakah pesan story ?
    "sender": "[email protected]", // Nomer pengirim
    "pushname": "WHAPI", // Object untuk nama whatsapp bisnis
    "timestamp": 1691639955, // Waktu pesan
    "isEphemeralMessage": false,
    "viewOnce": false, // Pesan dilihat 1x
    "type": "extendedTextMessage", // ada 3 type reactionMessage | extendedTextMessage | conversation
    "isMedia": false, // Apakah pesan media?
    "quotedMsg": { // Jika pesan berupa quote, akan ada data disini
     ... // Data object disini adalah raw dari whatsapp.
    }, 
    "mentionedJidList": [], // Mention nama akan muncul disini
    "body": "Isi Pesan", // Berisi isi pesan / caption pada gambar / caption pada dokumen
    "apiKey": "xxxxx" // Alamat API Key dari device 
  }
}

Struktur dari webhook json message seperti contoh diatas, kami akan jelaskan beberapa object tertentu :

  • verifiedBizName, object ini hanya akan muncul ketika whatsapp yang digunakan adalah whatsapp bisnis.

  • status, berfungsi untuk penanda bahwa pesan berhasil dikirim dengan status pending. Terkait status ini, nanti akan dibahas pada message_ack dan message_ack_browser. Object ini hanya akan muncul ketika mengirim pesan via API.

  • messageTimestamp, timestamp, dan t. Ketiga object ini sama - sama untuk menampilkan waktu pesan dikirim

  • results -> message, ini adalah object raw dari whatsapp. Isi dari object ini bisa berubah sewaktu - waktu. Perlu dilihat secara berkala jika ada perubahan, karena object ini tidak statis. Jika kebutuhannya mengambil text/caption pesan, silahkan ambil di object body.

  • quotedMsg, ini adalah object ketika ada pesan yang di quote, raw json pada object ini berubah - ubah, silahkan diesuaikan dengan kebutuhan Anda.

  • mentionedJidList, ketika isi pesan memiliki mention nomor, akan ditampilkan disini

Message Ack

Event webhook dengan type message_ack akan dikirim ketika ada perubahan status pesan di device. Status pesan ada 4 tipe, yaitu :

  • 0 -> Error

  • 2 -> Pending

  • 3 -> Pesan berhasil dikirim

  • 4 -> Pesan dibaca

  • 5 -> Pesan audio berhasil didengarkan

{
  "type": "message_ack", // Tipe webhook yang dikirim
  "results": { // Kumpulan object dari event message_ack
    "apiKey": "xxxxx", // Alamat API Key dari device 
    "ack": {
      "ack": 2, // Status perubahan pesan 2, 3, 4, 5
      "id": "xxxxx", // ID dari pesan
      "serialized": "[email protected]" // Nomer tujuan
    }
  }
}

Message Ack Browser

Event webhook dengan type message_ack_browser akan dikirim ketika ada perubahan status pesan di whatsapp web. Object dari event ini sama saja dengan message_ack, hanya saja untuk event ini dikhususkan untuk perubahaan pesan whatsapp web.

Last updated