Kami akan menghentikan On-Premises API. Lihat Proses Penghentian On-Premises API dokumen untuk detailnya, dan untuk mempelajari cara bermigrasi ke Cloud API generasi berikutnya.
Panduan ini mengajarkan kepada Anda cara mengirim tiap-tiap opsi pesan interaktif. Pesan interaktif memberi pengguna Anda cara yang lebih mudah untuk menemukan dan memilih apa yang mereka inginkan dari bisnis Anda di WhatsApp. Selama pengujian, bot obrolan yang menggunakan fitur pesan interaktif mencapai tingkat tanggapan dan konversi yang jauh lebih tinggi dibandingkan dengan yang berbasis teks.
Jenis pesan interaktif:
Lihat bagaimana pesan teks dibandingkan dengan pesan interaktif:
Lihat contoh bagaimana pesan berisi Daftar dan tombol Balas dapat digabungkan dalam alur yang sama:
Bila dibandingkan dengan daftar berbasis teks, pesan interaktif memberikan format yang lebih sederhana dan lebih konsisten bagi orang-orang untuk menemukan dan memilih apa yang mereka inginkan dari suatu bisnis. Selama pengujian, tingkat pemahaman orang-orang saat berinteraksi dengan fitur-fitur ini memang lebih tinggi.
Selama pengujian, bot obrolan yang menggunakan fitur pesan interaktif mencapai tingkat tanggapan dan konversi yang jauh lebih tinggi dibandingkan dengan yang berbasis teks.
Diisi secara dinamis secara realtime sehingga dapat dipersonalisasi sesuai pelanggan atau situasi. Contoh: Anda dapat menampilkan pesan berisi Daftar slot waktu yang tersedia untuk janji temu, atau menggunakan tombol Balas untuk menunjukkan alamat pengiriman sebelumnya.
Pesan Interaktif tidak memerlukan template atau persetujuan terlebih dahulu.
Pesan berisi Daftar adalah yang terbaik untuk menyajikan beberapa opsi, seperti:
Tombol Balas adalah yang terbaik untuk menawarkan tanggapan cepat dari serangkaian opsi terbatas, seperti:
Tombol Balas sangat berharga untuk kasus penggunaan 'dipersonalisasi' ketika tanggapan generik tidak memadai.
Pesan alur paling baik untuk komunikasi terstruktur di satu atau beberapa layar, seperti:
Dengan pesan alur, pelaku bisnis dapat menawarkan pengalaman pengguna yang lebih kaya dan lebih menarik yang dapat membantu pelanggan menyelesaikan sesuatu dengan lebih cepat di WhatsApp tanpa harus beralih ke aplikasi lain, atau mengunjungi situs web.
Pada level API, pesan interaktif diatur dengan menentukan type
pesan ke interactive
dan menambahkan objek interactive
. Umumnya, pesan-pesan ini mencakup 4 bagian utama: header
, body
, footer
, dan action
.
{ "recipient_type": "individual", "to" : "whatsapp-id", "type": "interactive" "interactive":{ "type": "list" | "button" | ..., "header": {}, "body": {}, "footer": {}, "action": {} } }
Lihat informasi selengkapnya di bawah ini tentang cara mengirimkan pesan-pesan ini.
Sebelum mengirim setiap pesan, Anda perlu mendapatkan ID WhatsApp penerima dengan panggilan ke node /contacts
.
Kami merekomendasikan pengaturan Webhooks untuk menerima notifikasi status pesan dan pesan masuk. Dengan cara ini, Anda dapat melacak: apakah pesan terkirim dan jawaban dari pelanggan. Lihat Webhooks untuk informasi selengkapnya.
interactive
AndaUntuk mengirim pesan berisi daftar, Anda harus menyusun objek interactive
dari jenis list
dengan komponen berikut:
Objek | Deskripsi |
---|---|
| Opsional. Jika Anda memutuskan untuk menyertakannya, Anda harus mengatur jenis tajuk ke teks dan menambahkan kolom teks dengan konten yang diinginkan. Maksimal 60 karakter. |
| Wajib. Body pesan Anda. Maksimal 1.024 karakter. |
| Opsional. Footer pesan Anda. |
| Wajib. Di dalam action, Anda harus menyusun:
Di dalam |
Pada akhirnya, objek interactive
harus terlihat seperti ini:
"interactive":{ "type": "list", "header": { "type": "text", "text": "your-header-content" }, "body": { "text": "your-text-message-content" }, "footer": { "text": "your-footer-content" }, "action": { "button": "cta-button-content", "sections":[ { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, ... ] } }
Untuk mengirim pesan tombol balasan, Anda harus menyusun objek interactive
berjenis button
dengan komponen berikut:
Objek | Deskripsi |
---|---|
| Opsional. Untuk pesan interaktif Setelah Anda memilih
Contoh: "header": { "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } } |
| Wajib. |
| Opsional. |
| Wajib. Anda harus menambahkan setidaknya satu Tidak boleh ada spasi di depan atau di belakang saat mengatur ID. Contoh: "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } |
Pada akhirnya, objek interactive
harus terlihat seperti ini:
"interactive": { "type": "button", "header": { # optional "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } }, # end header "body": { "text": "your-text-body-content" }, "footer": { # optional "text": "your-text-footer-content" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } # end action } # end interactive
Pesan permintaan lokasi berisi teks isi dan tombol Kirim lokasi yang dapat diketuk pengguna. Mengetuk tombol menampilkan layar bagikan lokasi yang kemudian dapat digunakan pengguna untuk membagikan lokasi mereka.
Untuk mengirim pesan permintaan lokasi, pertama-tama susun objek interactive
dengan teks yang ingin Anda tampilkan dalam pesan:
{ "type": "location_request_message", "body": { "type": "text", "text": "<TEXT>" }, "action": { "name": "send_location" } }
Properti | Deskripsi |
---|---|
| Atur ke |
| Atur ke |
| Atur ke teks yang ingin Anda tampilkan di atas tombol Kirim lokasi. |
| Atur ke |
Pesan alur berisi tombol ajakan bertindak yang dapat diketuk oleh pengguna. Ketukan pada tombol akan menampilkan Alur kustom Anda.
Untuk mengirim pesan Alur, Anda harus merangkai objek interactive
berjenis flow
. Lihat di sini untuk detail lengkapnya.
Setelah objek interaktif selesai, tambahkan parameter lain yang menyusun pesan: recipient_type
, to
, dan type
. Jangan lupa mengatur type
ke interactive
.
{ "recipient_type": "individual", "to" : "whatsapp-id", // WhatsApp ID of your recipient "type": "interactive", "interactive":{ // Your interactive object } }
Lihat parameter yang umum untuk semua jenis pesan di sini.
POST
ke /messages
Kirim panggilan POST
ke endpoint /messages
dengan objek JSON
yang disusun di Langkah 1 dan 2. Jika pesan berhasil dikirim, Anda mendapatkan tanggapan berikut:
{ "messages": [{ "id": "{message-id}" }] }
Jika Anda mengatur Webhooks Anda, periksa perubahan status pesan Anda serta tanggapan yang berasal dari pengguna.
Webhooks pengguna yang menanggapi pesan interaktif menyertakan komponen baru yang disebut interactive
, yang berisi informasi tentang pilihan pengguna. Lihat Webhooks, Komponen untuk informasi selengkapnya.
Contoh: berikut ini adalah permintaan Webhooks yang menjelaskan pengguna yang telah membagikan lokasinya.
{ "object": "whatsapp_business_account", "entry": [ { "id": "12345", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "12345", "phone_number_id": "12345" }, "contacts": [ { "profile": { "name": "John Doe" }, "wa_id": "12345" } ], "messages": [ { "context": { "from": "12345", "id": "test-id" }, "from": "123450", "id": "test-id", "timestamp": "16632", "location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 37.421996751527, "longitude": -122.08407156636, "name": "Solomon R. Guggenheim Museum" #Optional }, "type": "location" } ] }, "field": "messages" } ] } ] }
Komponen location
dalam payload berisi garis lintang dan garis bujur pengguna. Perhatikan bahwa address
dan name
bersifat opsional bagi pengguna dan mungkin tidak disertakan.
"location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 40.782910059774, "longitude": -73.959075808525, "name": "Solomon R. Guggenheim Museum" #Optional }