Menerima reaksi WhatsApp
Berlangganan perubahan reaksi untuk mengetahui kapan kontak menambahkan emoji ke salah satu pesan Anda, menggantinya, atau mencabutnya. Reaksi menandai pesan yang sudah ada dan masuk melalui whatsapp.reacted.
Prasyarat
Siapkan endpoint webhook untuk workspace Anda. Untuk mengambil reaksi terkini atau riwayatnya, gunakan kunci API dengan izin baca WhatsApp.
1. Berlangganan perubahan reaksi
Tambahkan whatsapp.reacted ke langganan webhook Anda. Langganan whatsapp.received tidak mencakup reaksi. Ikuti panduan webhook untuk verifikasi tanda tangan, percobaan ulang pengiriman, dan konfigurasi endpoint.
Reaksi tidak membuat pesan baru di daftar pesan atau membuka jendela layanan pelanggan. Jika Anda perlu membalas, periksa aturan jendela layanan sebelum mengirim pesan bebas.
2. Identifikasi pesan dan perubahannya
Baca data.whatsapp_id pada event untuk menemukan pesan yang direaksi oleh kontak. Ini adalah ID pesan Bird asli (wam_…), bukan ID reaksi terpisah.
Gunakan data.from untuk mengidentifikasi kontak dan data.to untuk mengidentifikasi pengirim WhatsApp Anda. Keduanya adalah objek alamat WhatsApp; tangani ID pengguna cakupan bisnis jika alamat kontak tidak memiliki nomor telepon.
Kontak yang menambahkan reaksi jempol ke atas menghasilkan webhook berikut:
Contoh kode
{
"data": {
"emoji": "👍",
"from": { "phone_number": "+14155550100" },
"to": { "phone_number": "+13124495569" },
"whatsapp_id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
},
"timestamp": "2026-08-28T19:01:10.000Z",
"type": "whatsapp.reacted"
}Interpretasikan data.emoji sebagai berikut:
- Emoji non-null menambahkan atau mengganti reaksi kontak tersebut pada pesan yang dirujuk.
- Emoji null menghapus reaksi kontak tersebut. Field ini ada pada event penghapusan.
Penggantian tiba sebagai satu event yang membawa emoji baru; tidak ada event penghapusan terpisah untuk emoji lama. Pertahankan string persis: ❤ dan ❤️ adalah nilai yang berbeda dalam payload.
3. Ambil reaksi terkini
Jika aplikasi Anda menampilkan reaksi yang saat ini melekat pada pesan, ambil pesan tersebut dan baca reactions-nya. Daftar ini berisi satu reaksi aktif per pengirim dan dihilangkan jika tidak ada reaksi yang aktif.
Untuk GET /v1/whatsapp/messages/wam_01ky8b3xq4gd7pmzn2ka51f7te, field terkait reaksi memiliki bentuk berikut (field pesan lainnya dihilangkan):
Contoh kode
{
"id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
"reactions": [
{
"emoji": "👍",
"from": { "phone_number": "+14155550100" }
}
]
}Pesan tetap mempertahankan konten, arah, dan status pengiriman aslinya. reactions[].from mengidentifikasi orang yang memberikan reaksi.
Jangan memperlakukan webhook terakhir yang Anda terima sebagai kondisi terkini. WhatsApp melaporkan waktu reaksi hingga detik, sehingga perubahan bisa memiliki timestamp yang sama, dan percobaan ulang webhook dapat mengubah urutan kedatangan. Gunakan webhook untuk memicu pembaruan reaksi terkini pada pesan.
4. Periksa riwayat reaksi
Daftar event reaksi untuk memeriksa perubahan pada pesan yang dirujuk. Perubahan kontak masuk memiliki status received; penghapusan membawa emoji: null. Daftar ini juga mencakup hasil reaksi yang dikirim workspace Anda.
Reaction-events API mengembalikan respons berpaginasi. Contoh ini menampilkan reaksi bisnis yang ditolak dan reaksi kontak yang diterima sebelumnya:
Contoh kode
{
"data": [
{
"id": "war_01krdgeqcxet5s7t44vh8rt9mh",
"emoji": "🎉",
"status": "rejected",
"from": {
"phone_number": "+13124495569"
},
"error": {
"code": "internal_error",
"description": "the receiving number is no longer connected",
"occurred_at": "2026-08-28T19:04:22Z"
},
"occurred_at": "2026-08-28T19:04:22Z"
},
{
"id": "war_01krdgeqcxet5s7t44vh8rt9mg",
"emoji": "👍",
"status": "received",
"from": {
"phone_number": "+14155550100",
"bsuid": "US.13491208655302741918"
},
"occurred_at": "2026-08-28T19:01:10Z"
}
],
"next_cursor": null,
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiMjAyNi0wOC0yOFQxOTowNDoyMloiLCJpIjoiMDE5ZTFiMDctNWQ5ZC03NjhiLTkzZTgtODRkYzUxOGQyNjkxIn0"
}Riwayat reaksi terpisah dari event pengiriman pesan. Endpoint message-events tidak berisi perubahan whatsapp.reacted. Untuk retensi dan paginasi, ikuti referensi log reaksi.
Pemecahan masalah
- Tidak ada webhook reaksi: Periksa apakah langganan mencakup whatsapp.reacted. Reaksi terhadap pesan lama yang referensi penyedianya tidak lagi dapat diselesaikan tidak menghasilkan reaksi yang cocok, entri log, atau webhook.
- Reaksi tidak muncul di daftar pesan: Cari pesan aslinya. Reaksi melekat pada pesan tersebut dan tidak memiliki baris pesan terpisah.
- Status reaksi berubah tak terduga: Perbarui reactions pesan asli alih-alih mengurutkan event webhook berdasarkan waktu kedatangan atau timestamp.
Langkah selanjutnya
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.
Tonton panduannyaConnecting WhatsApp to Bird: from buying a number to a live channelPahami konsepnyaWhat is the 24-hour customer service window on WhatsApp?Gunakan alatnyaWhatsApp message builderJelajahi kemampuannyaWhatsApp
Coba praktiknya dan dapatkan ringkasan implementasi