Skip to content
S SiPesan Docs
ID EN

Broadcast WhatsApp Web (QR)

Broadcast WhatsApp Web (QR) memungkinkan Anda mengirim satu pesan ke banyak nomor lewat channel WhatsApp Web — channel yang dipakai dengan memindai QR (seperti WhatsApp Web di browser), tanpa WhatsApp Business API resmi. Broadcast dipicu lewat API, dikirim bertahap dengan jeda otomatis agar aman dari pemblokiran, dan status terkirim/dibaca dilacak per penerima. Fitur ini gratis (tidak memotong saldo) dan untuk versi pertama hanya teks.

Kapan memakai ini

Gunakan broadcast WhatsApp Web bila Anda ingin menjangkau banyak pelanggan tetapi belum memakai WhatsApp Business API (WABA) resmi. Berbeda dengan broadcast WABA yang memakai template HSM berbayar, broadcast WhatsApp Web mengirim pesan teks biasa dari nomor yang Anda pindai. Karena memakai jalur tidak resmi, pengiriman sengaja dibuat lambat dan ada batas harian untuk menjaga nomor Anda tetap aman.

Persiapan

Sebelum mengirim broadcast, pastikan:

  • Channel WhatsApp Web sudah Connected. Buat dan pindai QR di panel bisnis pada menu WhatsApp Web. Status channel harus Connected. Jika terputus, broadcast akan ditunda otomatis sampai tersambung kembali.
  • API key sudah dibuat. Buka panel bisnis → menu Developers → API Access untuk mendapatkan Public Key (pk_…) dan Secret Key (sk_…).
  • Channel ID disiapkan. Salin Channel ID channel WhatsApp Web dari menu WhatsApp Web — ini dipakai saat memanggil API.

Cara kerja pengiriman bertahap (anti-blokir)

Broadcast WhatsApp Web tidak dikirim sekaligus. Sistem mengirim satu pesan setiap jeda acak (beberapa detik antar pesan), dengan beberapa pengaman:

  • Batas per jam dan per hari — membatasi jumlah pesan agar tidak terlihat seperti spam.
  • Warmup (opsional) — untuk nomor baru, kuota harian dinaikkan bertahap dari hari ke hari.
  • Jam kerja (opsional) — pengiriman hanya berjalan di rentang jam yang ditentukan.

Karena itu, daftar besar akan terkirim perlahan — bukan dalam hitungan detik. Status broadcast bergerak dari sending ke completed setelah semua penerima diproses. Pengaman ini diatur oleh admin per channel.

Mengatur kecepatan pengiriman (throttling)

Ada dua tingkat pengaturan throttling:

1. Yang bisa Anda atur sendiri — batas harian per channel. Buka panel bisnis → menu WhatsApp Web → edit channel → kolom Daily Message Limit. Ini membatasi jumlah pesan per hari untuk channel tersebut. Batas efektif = nilai terkecil antara batas channel Anda dan batas pengaman platform.

2. Yang diatur tim SIPESAN (tingkat platform). Knob berikut berlaku global dan disetel di konfigurasi server (.env), bukan per channel — hubungi admin SIPESAN bila ingin diubah. Nilai default:

  • Jeda antar pesan — 6–20 detik acak (WAWEB_BCAST_MIN_DELAY / WAWEB_BCAST_MAX_DELAY).
  • Batas per jam — 120 pesan (WAWEB_BCAST_HOURLY_CAP).
  • Batas harian maksimum / pengaman — 1000 pesan (WAWEB_BCAST_HARD_DAILY).
  • Warmup nomor baru — nonaktif secara default; bila diaktifkan, kuota hari ke-1 sampai ke-5 = 20 / 40 / 80 / 120 / 160 pesan (WAWEB_BCAST_WARMUP_ENABLED).
  • Jam kerja — nonaktif (kirim 24 jam) secara default (WAWEB_BCAST_HOURS_ENABLED, WAWEB_BCAST_HOURS_START, WAWEB_BCAST_HOURS_END).
  • Timeout channel terputus — 24 jam (WAWEB_BCAST_DISCONNECT_TIMEOUT).
  • Maksimum penerima per permintaan — 5000 (WAWEB_BCAST_MAX_RECIPIENTS).

Untuk nomor baru yang belum "panas", sebaiknya turunkan batas harian channel dan minta admin mengaktifkan warmup, agar nomor tidak cepat diblokir.

Mengirim broadcast

Broadcast dikirim lewat REST API. Detail teknis lengkap (header autentikasi, format request/response, kode error) ada di topik API, Testing & Kode Error. Ringkasnya, Anda memanggil endpoint POST /api/v1/business/waweb/broadcasts dengan:

  • channel_id — Channel ID WhatsApp Web yang Connected.
  • message — isi pesan teks (maksimal 4096 karakter).
  • recipients — daftar nomor tujuan (format bebas, otomatis dirapikan dan dihilangkan duplikatnya).
  • name (opsional) — nama broadcast untuk memudahkan pelacakan.

Anda akan menerima id broadcast yang bisa dipakai untuk mengecek status lewat GET /api/v1/business/waweb/broadcasts/{id}.

Variasi pesan (spintax)

Mengirim teks yang identik ke banyak nomor meningkatkan risiko pemblokiran. Pakai spintax untuk memberi variasi: tulis beberapa pilihan kata dalam kurung kurawal dipisah garis tegak, dan sistem memilih satu secara acak per pesan.

Contoh: {Halo|Hai|Selamat siang} kak, ada {promo|penawaran} baru! akan terkirim sebagai salah satu kombinasi, berbeda-beda antar penerima. Spintax bisa bertingkat.

Status terkirim & dibaca

Setiap penerima dilacak melalui status: pending → sent → delivered → read, atau undelivered bila gagal. Anda bisa memantau dua cara:

  • Dashboard — buka broadcast di menu Broadcasts untuk melihat ringkasan (terkirim, delivered, dibaca, gagal) dan status per penerima. Kolom biaya tidak ditampilkan karena broadcast WhatsApp Web gratis.
  • Webhook — bila Anda mengatur URL webhook (panel bisnis → Developers), SIPESAN mengirim notifikasi real-time setiap status delivered, read, dan undelivered (beserta alasannya). Detail payload dan verifikasi tanda tangan ada di topik Webhook.

Alasan kegagalan (reason) yang mungkin muncul: account_banned (nomor diblokir WhatsApp), channel_disconnected_timeout (channel terputus terlalu lama), opted_out (pelanggan berhenti berlangganan), dan channel_missing (channel tidak ditemukan).

Berhenti berlangganan (opt-out)

Pelanggan yang membalas STOP atau BERHENTI (juga UNSUBSCRIBE) otomatis tercatat sebagai opt-out. Nomor tersebut akan dilewati pada broadcast berikutnya, dan tercatat sebagai undelivered dengan alasan opted_out. Ini membantu Anda menghormati pilihan pelanggan dan menjaga reputasi nomor.

Batasan versi pertama

  • Hanya teks — gambar dan media belum didukung (akan ditolak).
  • Gratis — tidak ada biaya dan tidak memotong saldo.
  • Jalur tidak resmi — WhatsApp Web bukan API resmi Meta. Nomor bisa terkena pembatasan bila mengirim terlalu agresif; karena itu pengiriman dibuat bertahap dan ada opt-out. Tetap kirim ke pelanggan yang relevan dan dengan frekuensi wajar.
  • Maksimal 5000 nomor per permintaan.