Sign inGet started

Pesan layanan WhatsApp

Pesan layanan adalah apa pun yang Anda kirim selain template yang sudah disetujui: konten bebas yang dikirim bisnis dalam percakapan yang sedang terbuka. POST /v1/whatsapp/messages membawa tepat satu dari sembilan jenis konten pesan layanan, atau sebuah template. Halaman ini membahas kesamaan di antara sembilan jenis tersebut; halaman masing-masing jenis membahas bentuk datanya dan batasannya sendiri.

Jenis konten

TipeFieldIsiGunakan saat
Teks biasatextIsi teks hingga 4.096 karakter, dengan pratinjau tautan opsionalAnda mengirim pesan tanpa lampiran
GambarimageURL gambar publik dan keterangan opsionalAnda mengirim foto atau grafik
VideovideoURL video publik dan keterangan opsionalAnda mengirim klip video
AudioaudioURL audio publik, opsional ditampilkan sebagai pesan suaraAnda mengirim pesan suara atau klip audio
StikerstickerURL gambar WebP publikAnda mengirim stiker
DokumendocumentURL file publik, keterangan opsional, dan nama file opsionalAnda mengirim PDF, spreadsheet, atau file lain
LokasilocationLintang dan bujur, dengan nama dan alamat opsionalAnda mengirim pin lokasi, misalnya titik penjemputan
Kartu kontakcontact_cardsSatu hingga lima kartu kontak, masing-masing berisi nama dan nomor, email, situs web, atau alamat apa punAnda membagikan detail seseorang, misalnya nomor rekan kerja
Pesan interaktifinteractiveTeks isi ditambah tombol, menu, tautan, kartu, atau permintaan lokasi atau kontakAnda ingin penerima mengetuk sesuatu alih-alih mengetik balasan bebas
Sebuah request membawa tepat satu dari template atau salah satu dari sembilan field ini. Request yang tidak membawa satu pun, atau membawa lebih dari satu, ditolak dengan 422.

Jendela layanan pelanggan

Pesan layanan, yaitu salah satu dari sembilan jenis di atas, hanya terkirim di dalam jendela layanan pelanggan 24 jam yang terbuka. Kontak membuka jendela tersebut dengan mengirim pesan atau menelepon nomor bisnis Anda, dan setiap pesan berikutnya dari mereka mengatur ulang jendela menjadi 24 jam.
Pesan layanan yang dikirim ke jendela yang sudah tertutup ditolak langsung: request mengembalikan 422 E15044 WhatsAppServiceWindowClosed, dan tidak ada yang dibuat atau dikenakan biaya. Kirim template yang sudah disetujui sebagai gantinya; template menjangkau kontak terlepas dari jendela, dan balasan mereka membuka kembali jendela. Jendela yang tertutup di saat antara penerimaan dan pengiriman tetap gagal, tetapi secara asinkron: pesan mencapai failed dengan service_window_expired pada last_error.
Pemeriksaan saat penerimaan bersifat upaya terbaik, bukan jaminan: gerbang ini gagal terbuka, sehingga cache yang kosong atau kesalahan baca membiarkan pengiriman lewat alih-alih memblokirnya. 202 oleh karena itu bukan bukti bahwa jendela terbuka saat pengiriman dilakukan; sinyal akhir adalah status pesan itu sendiri, bukan respons penerimaan.
Setiap pesan layanan juga memerlukan from, nomor yang dimiliki workspace Anda. Nomor terkelola Bird tidak dapat membawanya, sehingga pesan layanan memerlukan nomor milik Anda sendiri yang sudah terhubung terlebih dahulu; lihat Penyiapan nomor telepon.
Lihat jendela layanan pelanggan untuk siklus lengkapnya: cara jendela dibuka, apa yang mengatur ulangnya, dan bagaimana jendela dilacak.

Mengirim media melalui URL

image, video, audio, sticker, dan document semuanya menerima url yang menunjuk ke file yang diambil WhatsApp saat pengiriman, bukan file yang Anda unggah ke Bird. Bird memeriksa bentuk URL saat penerimaan, sebelum apa pun diantrikan:
  • Tidak kosong dan dapat diurai, memiliki host dan tanpa spasi mentah
  • Skema adalah https
URL http ditolak dengan 422 saat penerimaan, meskipun WhatsApp sendiri dapat mengambilnya tanpa masalah. Itu adalah kebijakan Bird, bukan batasan yang diterapkan WhatsApp.
Bird tidak memeriksa ukuran file, tipe MIME-nya, atau apakah URL dapat dijangkau. WhatsApp mengambil URL itu sendiri setelah mengirimkan pesan, sehingga URL bertanda tangan harus tetap valid melewati momen tersebut, bukan hanya saat Anda mengirim request; URL yang bersifat privat atau kedaluwarsa gagal saat WhatsApp mencoba mengambilnya. WhatsApp juga meng-cache URL yang sudah diambil selama kurang lebih 10 menit, sehingga mengirim ulang URL yang identik dalam jendela tersebut menyajikan kembali hasil pengambilan pertama alih-alih mengambil ulang.

Saat media gagal

Pengiriman media mengikuti jalur asinkron yang sama seperti pesan WhatsApp lainnya: Bird mengembalikan 202 dan menerima pesan, lalu WhatsApp mengambil URL saat mengirimkannya. Jika pengambilan tersebut gagal, pesan mencapai failed dengan media_rejected pada last_error, yang merupakan 131053 milik Meta di baliknya.
media_rejected adalah kode payung yang mencakup file terlalu besar, 404, kegagalan DNS, dan tipe MIME yang salah; Bird tidak memecahnya lebih lanjut, jadi jangan harapkan kode berbeda untuk setiap penyebab.
Pengiriman media yang gagal secara asinkron tetap dikenakan biaya. Penagihan terjadi saat Bird memproses pengiriman yang diterima, sebelum WhatsApp mengambil URL, dan tidak ada jalur pengembalian dana setelah tagihan tercatat. Perhitungkan hal ini: pesan yang gagal belakangan di media_rejected sudah mengeluarkan biaya yang sama dengan pesan yang berhasil terkirim.

Membaca pesan yang dikirim kontak

Pesan masuk membawa salah satu dari sembilan jenis yang sama, sehingga field yang Anda baca sesuai dengan tipe yang digunakan kontak. Kartu kontak terbaca pada field contact_cards yang sama, baik kontak yang membagikannya maupun Anda yang mengirimnya. Menerima pesan WhatsApp membahas cara membaca pesan masuk melalui API, mengambil media yang dikirim kontak, dan webhook whatsapp.received.

Langkah selanjutnya