Menerima balasan interaktif WhatsApp
Tap pada tombol balasan, baris daftar, atau tombol quick-reply template masuk sebagai pesan inbound tersendiri yang membawa interactive_reply. Arm ini mengembalikan handle yang Anda tetapkan saat mengirim, sehingga alur bercabang berdasarkan identifier Anda sendiri, bukan berdasarkan label yang dilihat kontak.
Apa yang dibawa balasan interaktif inbound
type menyebutkan jenis tap, dan field dengan nama yang sama membawanya:
Contoh kode
{
"id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
"direction": "inbound",
"from": { "phone_number": "+14155550100" },
"to": { "phone_number": "+13124495569" },
"status": "received",
"in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
"interactive_reply": {
"type": "button",
"button": { "slug": "cancel-booking", "text": "Cancel" }
},
"created_at": "2026-08-25T09:04:11Z"
}| type | Field | Apa yang dibawa |
|---|---|---|
| button | button | slug dan text dari tombol balasan, atau dari tombol quick-reply template |
| list | list | slug dan text dari baris yang dipilih kontak, ditambah description jika ada |
Baris daftar menggantikan button dengan list dan menambahkan baris kedua yang ditampilkan baris tersebut:
Contoh kode
{
"interactive_reply": {
"type": "list",
"list": {
"slug": "priority_express",
"text": "Priority Mail Express",
"description": "Next day to 2 days"
}
}
}slug adalah handle yang Anda deklarasikan dan tidak pernah dilihat kontak; text adalah label yang mereka baca. Buat percabangan berdasarkan slug. Label dapat diubah kata-katanya dan diterjemahkan, dan pada tap tombol quick-reply template, slug adalah payload yang dideklarasikan template tersebut, yang oleh WhatsApp diisi dengan label tombol itu sendiri.
Daftar jenis bersifat terbuka: WhatsApp menambahkan jenis interaktif dari waktu ke waktu, jadi perlakukan type yang tidak Anda kenali sebagai jenis baru, bukan kesalahan, dan lakukan fallback ke pencatatan pesan alih-alih menggagalkan pembacaan.
Menghubungkan tap ke pesan yang Anda kirim
in_reply_to_message_id menyebutkan pesan yang membawa tombol atau menu, sehingga Anda tahu pertanyaan mana yang dijawab. WhatsApp tidak selalu melaporkannya di setiap tap, dan resolusi juga bisa gagal; dalam hal ini field dihilangkan, bukan dilaporkan kosong. Halaman balasan yang dikutip di hub membahas arti kegagalan resolusi dan berapa lama pesan yang dikutip tetap dapat di-resolve.
Jika korelasi harus andal, taruh referensi Anda sendiri di dalam slug itu sendiri, atau di metadata saat mengirim, alih-alih bergantung pada field tersebut. Lihat mengutip pesan untuk sisi pengiriman.
Dua tap yang masuk di tempat lain
Dua jenis interaktif menjawab tanpa interactive_reply sama sekali:
- Permintaan lokasi kembali sebagai lokasi inbound biasa.
- Permintaan info kontak kembali sebagai kartu kontak, dengan origin diisi contact_request.
Tombol tautan tidak mengirim apa pun kembali: kontak berpindah ke URL, dan tidak ada pesan inbound yang mencatat tap tersebut. Integrasi yang hanya memantau interactive_reply akan melewatkan ketiganya.
Payload webhook
whatsapp.received membawa arm interactive_reply pada envelope event, sehingga bot dapat menjawab tap tanpa membaca ulang pesan:
Contoh kode
{
"type": "whatsapp.received",
"timestamp": "2026-08-25T09:04:11.118Z",
"data": {
"whatsapp_id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
"direction": "inbound",
"from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
"to": { "phone_number": "+13124495569" },
"in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
"interactive_reply": {
"type": "button",
"button": { "slug": "cancel-booking", "text": "Cancel" }
},
"tags": null,
"metadata": null
}
}Hal yang perlu diperhatikan
- interactive dan interactive_reply adalah arah yang berlawanan. interactive adalah apa yang Anda kirim dan tidak pernah masuk sebagai inbound; interactive_reply adalah apa yang di-tap kontak dan tidak pernah muncul di pesan outbound.
- Tap mereset jendela layanan. Tap adalah pesan inbound, sehingga membuka kembali 24 jam balasan bebas format sama seperti pesan teks.
- Kontak dapat men-tap tombol yang sama dua kali. Tidak ada deduplikasi tap, jadi setiap tap adalah pesan tersendiri dengan ID-nya sendiri. Pastikan tindakan yang Anda ambil pada slug bersifat idempoten.
- Tap pada menu lama tetap masuk. Kontak yang menggulir ke atas dapat men-tap tombol dari beberapa hari lalu, jadi validasi bahwa alur masih terbuka alih-alih mengasumsikan tap tersebut menjawab pesan terakhir Anda.
Langkah selanjutnya
- Cara kerja penerimaan: envelope inbound, pengambilan media, dan webhook whatsapp.received
- Pesan interaktif WhatsApp: enam jenis yang dapat di-tap penerima
- Tombol balasan WhatsApp: sisi pengiriman dari tap tombol
- Menu daftar WhatsApp: sisi pengiriman dari pilihan baris
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