Sign inGet Started

Event reaksi WhatsApp

Reaksi emoji menganotasi pesan yang sudah ada alih-alih membuat pesan baru, sehingga tidak pernah muncul sebagai pesan tersendiri atau di antara event status pesan. Bird menyimpan dua tampilan untuk reaksi: reaksi yang saat ini melekat pada pesan, dan log setiap perubahan yang menghasilkan kondisi tersebut. Keduanya mencatat perubahan oleh kontak maupun oleh nomor bisnis Anda.

Untuk menerima pemberitahuan saat kontak memberikan reaksi, subscribe ke whatsapp.reacted. Untuk menambah atau menghapus reaksi Anda sendiri, lihat Mengirim reaksi.

Prasyarat

Kunci API dengan izin baca WhatsApp, dan ID (wam_…) dari pesan yang diberi reaksi.

1. Baca reaksi saat ini

Jika aplikasi Anda menampilkan reaksi yang saat ini terpasang pada pesan, ambil pesan tersebut dan baca reactions-nya. Daftar ini berisi satu reaksi aktif per pengirim dan dihilangkan jika tidak ada reaksi yang terpasang.

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.

Ini adalah state yang perlu ditampilkan. Webhook reaksi dapat memiliki timestamp yang sama dan tiba tidak berurutan, jadi gunakan webhook sebagai pemicu untuk membaca ulang pesan, bukan sebagai state terkini.

2. Baca log reaksi

Daftar event reaksi dengan GET /v1/whatsapp/messages/{message_id}/reaction-events untuk melihat setiap perubahan pada pesan yang dirujuk, terbaru lebih dulu: penambahan, penggantian, dan penghapusan. Setiap entri memiliki ID reaksi (war_…), emoji, siapa yang melakukan perubahan di from, timestamp occurred_at, dan status:

  • received: perubahan dari kontak.
  • sent: WhatsApp menerima perubahan dari nomor bisnis Anda.
  • failed: WhatsApp menolak perubahan Anda.
  • rejected: Bird menolak perubahan Anda sebelum mengirimnya.

Entri failed atau rejected memuat alasan pada error. Penghapusan memuat emoji: null. Perubahan Anda yang masih tertunda tidak memiliki entri sampai hasilnya diketahui. Reaksi tidak pernah dikenakan biaya, jadi kegagalan di sini bukan masalah penagihan.

API event reaksi mengembalikan respons berpaginasi. Contoh ini menunjukkan 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 event status pesan tidak memuat perubahan whatsapp.reacted. Untuk retensi dan paginasi, ikuti referensi log reaksi.

Pemecahan masalah

  • Reaksi tidak ada di daftar pesan: Cari pesan aslinya. Reaksi terpasang pada pesan tersebut dan tidak memiliki baris pesan tersendiri.
  • State reaksi berubah secara tidak terduga: Baca reactions pesan tersebut alih-alih mengurutkan event webhook berdasarkan waktu kedatangan atau timestamp.

Langkah selanjutnya