WhatsApp

Apa perbedaan antara whatsapp.failed dan whatsapp.rejected?

Event whatsapp.rejected berarti Bird menghentikan pesan sebelum penagihan; whatsapp.failed mencatat kegagalan selama pengiriman.

Saat sebuah pesan berakhir, periksa event terminal dan kode error-nya sebelum memutuskan apakah akan mencoba lagi atau menyelidiki pengiriman.

Apa arti whatsapp.rejected?

Bird menghentikan pesan sebelum pengiriman dan tidak mengenakan biaya.

Pemeriksaan penerima dan penagihan dapat menghasilkan hasil penolakan. Gunakan kode yang menyertai untuk memilih tindakan selanjutnya:

KodePenyebabTindakan selanjutnya
undeliverableTidak ada alamat penerima yang dapat digunakanPerbaiki penerima
recipient_suppressedPenerima disuppresiHormati opt-out dan selidiki catatan persetujuan
price_not_foundBird tidak dapat menentukan harga pengirimanHubungi support dengan identifier pesan
insufficient_balanceWallet tidak dapat mendanai pengiriman atau organisasi tidak dapat ditagihSelesaikan masalah billing sebelum mengirim lagi

Pengiriman yang tidak dapat dihargai akan ditolak, bukan dianggap gratis. Mengulangi permintaan yang sama tidak menyediakan harga yang hilang.

Timestamp penolakan menggunakan waktu penerimaan awal. Gunakan secara konsisten dalam laporan agar penundaan antrean tidak memindahkan penolakan ke periode pelaporan berikutnya.

Apa arti whatsapp.failed?

Pesan gagal selama pengiriman, dengan penyebabnya tercatat di detail error.

Meta dapat melaporkan kegagalan melalui callback pengiriman. Meta juga dapat menolak permintaan pengiriman dari Bird sebelum menerima pesan untuk dikirim.

Bird mencatat internal_error ketika nomor pengirim tidak memiliki kredensial yang dapat digunakan atau pemrosesan menghabiskan percobaan ulangnya. meta_error_code adalah kode error Meta yang tercatat. Kode Bird ini tidak membawanya.

Habisnya percobaan ulang dapat mencakup error transport atau kegagalan upstream. Jangan menyimpulkan dari internal_error saja bahwa Meta tidak pernah menerima permintaan.

Periksa deskripsi dan koneksi nomor pengirim. Berikan identifier pesan kepada support ketika penyebabnya masih belum jelas.

Kegagalan dapat terjadi setelah penagihan. Periksa cost pesan alih-alih berasumsi bahwa setiap pengiriman gagal tidak dikenakan biaya.

Mengapa undeliverable muncul di kedua event?

Pada penolakan, Bird tidak dapat mengarahkan pesan ke penerima. Pada kegagalan, ini adalah hasil normalisasi Bird untuk penolakan Meta.

Kode error lebih luas dari pernyataan bahwa telepon tidak dapat menerima pesan. Bird juga menggunakan undeliverable ketika kode Meta tidak memiliki pemetaan yang lebih spesifik.

Baca meta_error_code untuk kode Meta yang tercatat dan description untuk penjelasan yang menyertai. Kegagalan yang dilaporkan tanpa detail error tetap menerima undeliverable.

Kode kegagalan normalisasi lainnya mengidentifikasi masalah yang lebih spesifik:

KodeYang harus diselidiki
service_window_expiredApakah konten bebas dikirim di luar jendela layanan
rate_limitedBatas pengiriman atau penerima dari Meta
media_rejectedAset media yang ditolak Meta
internal_errorKegagalan pemrosesan atau pengiriman yang dicatat Bird

Simpan kode yang tidak dikenal di log Anda. Kumpulan kode dapat bertambah, jadi nilai yang tidak dikenal tidak boleh membatalkan event yang masih dapat digunakan.

Bagaimana seharusnya event handler saya menginterpretasikan hasilnya?

Lakukan percabangan berdasarkan tipe event dan kode error-nya secara bersamaan.

Pesan yang ditolak tidak berlanjut ke event sent. Pesan yang gagal memerlukan detail error-nya untuk membedakan kegagalan internal dari respons Meta.

Pisahkan status pengiriman dari engagement. Event whatsapp.read mencatat pembacaan tanpa menggantikan status pengiriman pesan.

Bird mengeluarkan whatsapp.sent-nya sendiri setelah pengiriman berhasil. Event lain tidak dibuat dari callback status terkirim terpisah milik Meta.

Peninjauan template menggunakan kumpulan status yang berbeda. Periksa bahasa template ketika persetujuan menjadi masalah, bukan hasil pesan ini.

Apa yang harus saya lakukan sebelum mengirim lagi?

Perbaiki penyebab yang tercatat sebelum mengirim pesan lain.

Untuk service_window_expired, gunakan template yang sudah disetujui atau tunggu pesan dari pelanggan untuk membuka kembali jendela layanan.

Untuk supresi, hormati pilihan penerima. Menghapus opt-out akan mengabaikan preferensi penerima dan menciptakan risiko kepatuhan.

Untuk masalah billing atau koneksi pengirim, selesaikan kondisi akun tersebut terlebih dahulu. Simpan identifier pesan asli agar support dapat memeriksa percobaan yang gagal.

Jika nomor atau Business Account dibatasi atau diblokir, ikuti langkah pembatasan akun dan banding sebelum mencoba lagi.

Untuk kegagalan transport yang tidak pasti, selidiki sebelum membuat pesan baru. Pengiriman baru dapat menduplikasi permintaan yang hasilnya belum teramati.

Singkatnya

  1. Penolakan tidak dikenakan biaya.

    Bird menghentikan pesan sebelum pengiriman ketika pemeriksaan penerima atau penagihan mencegah pengiriman.

  2. Kegagalan dapat berasal dari Bird atau Meta.

    Periksa error yang tercatat sebelum memutuskan ke mana harus menyelidiki. internal_error tidak membawa kode error Meta.

  3. Interpretasikan event dan kode secara bersamaan.

    undeliverable muncul di kedua event. Artinya bergantung pada di mana pesan berhenti.

  4. Pilih pemulihan berdasarkan penyebab.

    Perbaiki masalah penerima, akun, konten, atau waktu sebelum mencoba pengiriman lagi. Simpan kode yang tidak dikenal untuk penyelidikan.

Bangun di jaringan yang sama.

Kunci API uji coba langsung tersedia untuk Anda. Akses produksi terbuka saat Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Ide Anda berikutnya.
Siap terhubung.