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) ataunumber_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.broadcastshanya berguna untuk membaca data broadcast.Untuk menerima pesan masuk, gunakan webhook per nomor:
wz.whatsapp.webhook(wabaId)ataudevice.webhook. Fiturwz.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.upsertmengosongkan field yang tidak dikirim. Selalu kirim semua field yang ingin dipertahankan, atau gunakanwz.lists.subscribers.upsertyang mempertahankan field lama.Status opt-out hanya dicatat dan tidak otomatis memblokir pengiriman. Cek sendiri sebelum mengirim pesan.
bulkUpsertdansyncmaksimal 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(). Hindariwz.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.