For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tips Sebelum Go-Live

Hal-hal penting yang perlu diperhatikan sebelum integrasi WatZap SDK dipakai untuk pelanggan sungguhan.

Sebelum integrasi dipakai untuk pelanggan sungguhan, pastikan poin-poin berikut sudah Kamu perhatikan.

Keamanan

  • Simpan API Key di environment variable (file .env), bukan di dalam kode.

  • Jalankan SDK hanya di server. SDK sengaja menolak berjalan di browser.

  • Buat URL webhook yang sulit ditebak dan jangan dibagikan. Karena request webhook tidak ditandatangani, cocokkan juga phone_number_id (WABA) atau number_key (Unofficial) di payload dengan milik Kamu.

  • Payload webhook berisi data akun dan pelanggan. Jangan simpan payload mentah ke log yang bisa dibuka banyak orang.

WhatsApp Official (WABA)

  • Aturan 24 jam: pesan teks, media, dan tombol hanya sampai ke pelanggan yang chat dalam 24 jam terakhir. Di luar itu, gunakan template. Baca Memahami Aturan 24 Jam WhatsApp.

  • Pesan dikirim dari nomor WABA yang terhubung di akun. Saat ini nomor WABA pengirim belum bisa dipilih lewat SDK.

  • Pesan tombol maksimal 3 tombol, dengan judul maksimal 20 byte per tombol (satu emoji dihitung 4 byte).

  • Menghapus template lewat SDK akan menghapus semua versi bahasa template tersebut.

WhatsApp Unofficial

  • Tidak ada ID pesan maupun status terkirim/dibaca. Server tidak bisa membedakan pesan yang masih antre dengan yang sudah sampai.

  • Maksimal 30 pesan per menit per nomor (gambar dan file: 15 per menit).

  • Ikuti Tips Anti-Banned WhatsApp supaya nomor tetap aman.

Broadcast dan Webhook

  • Buat dan kirim broadcast dari dashboard, bukan lewat SDK. Saat ini wz.whatsapp.broadcasts hanya berguna untuk membaca data broadcast.

  • Untuk menerima pesan masuk, gunakan webhook per nomor: wz.whatsapp.webhook(wabaId) atau device.webhook. Fitur wz.webhooks (webhook per event) saat ini baru sebatas pendaftaran dan belum mengirim event.

  • Webhook yang gagal diterima tidak dikirim ulang, jadi pastikan server Kamu selalu aktif.

Kontak dan List

  • wz.contacts.upsert mengosongkan field yang tidak dikirim. Selalu kirim semua field yang ingin dipertahankan, atau gunakan wz.lists.subscribers.upsert yang mempertahankan field lama.

  • Status opt-out hanya dicatat dan tidak otomatis memblokir pengiriman. Cek sendiri sebelum mengirim pesan.

  • bulkUpsert dan sync maksimal 500 data per panggilan, dan tidak dibatalkan seluruhnya jika gagal di tengah jalan.

Lain-lain

  • Untuk melihat daftar nomor beserta statusnya, gunakan wz.senders.list(). Hindari wz.account.checkKey() untuk keperluan ini, karena setiap host yang diperiksa akan memakai satu slot domain API Key Kamu.

  • Jangan membuat loop retry sendiri untuk kirim pesan. Lihat Menangani Error.

  • Selalu uji dengan nomor HP sendiri sebelum mengirim ke pelanggan.

  • Panduan ini untuk SDK versi 0.2.0. Info versi terbaru ada di halaman npm @watzapid/sdk.