Kampanye dan Template Pesan
Kampanye dipakai untuk menyusun pesan massal ke daftar kontak, menjadwalkannya, dan melacak status pengiriman. Template pesan menyimpan konten yang bisa dipakai ulang dengan variabel.
Tujuan
- Membuat dan mengelola template pesan (nama, subjek, badan, variabel).
- Membuat kampanye, menetapkan inbox, jadwal, jendela pengiriman, dan batas laju.
- Menambahkan penerima dari kontak dan melihat status tiap penerima.
- Menjalankan simulasi (dry-run) untuk memperkirakan berapa pesan yang akan terkirim.
- Mengelola status kampanye (draf, terjadwal, berjalan, jeda, selesai, dibatalkan).
Untuk siapa
- Operations/agent: melihat template dan kampanye (
view_campaigns— agent memilikinya). - Owner/admin: membuat, mengubah, menghapus kampanye dan template, menambah penerima, dan mengubah status (
manage_campaigns). - Supervisor: memantau progres kampanye melalui daftar dan penghitungan pengiriman.
Prasyarat
- Izin
view_campaignsuntuk melihat (dimiliki semua peran);manage_campaignsuntuk membuat/mengubah (owner/admin). - Inbox tujuan sudah dikonfigurasi.
- Kontak penerima sudah ada di buku alamat.
- Bila kampanye memakai mode wajib izin (opt-in), kebijakan izin pengiriman dikelola pemilik
manage_consents.
Alur kerja
1. Membuat template pesan
- Buka tab Campaigns → Templates.
- Buat template baru.
- Isi nama, subjek (opsional), badan, dan daftar variabel yang akan diganti saat pengiriman.
- Pilih kanal (channel) tujuan, lalu simpan.
2. Membuat kampanye
- Buka tab Campaigns.
- Buat kampanye baru dan isi:
- nama dan inbox tujuan;
- template pesan;
scheduled_at(waktu jadwal, harus di masa depan);- jendela pengiriman
send_window(0–23; mis.20–8berarti lewat tengah malam); rate_limit_per_sec(1–1000);- mode wajib izin (opt-in) bila yang didukung.
- Simpan sebagai draf, lalu tambahkan penerima dari kontak.
- Jadwalkan untuk memindahkan status menjadi terjadwal.
- Status berjalan hingga selesai; boleh di-jeda dan dilanjutkan.
Transisi status yang sah: draft → scheduled, running ⇄ paused, running → completed/cancelled, paused → running/cancelled, draft → cancelled.
3. Menambahkan penerima dan mengawasi status
- Buka detail kampanye.
- Tambahkan penerima dari kontak (secara manual; tidak ada impor massal berkas).
- Pantau status per penerima:
pending,sent,delivered,failed,opted_out,skipped. - Lihat ringkasan agregat pada daftar kampanye: jumlah penerima, terkirim, dan gagal.
4. Menjalankan simulasi (dry-run)
- Gunakan aksi simulasi pada kampanye (lewat API; tidak ada tombol dry-run di antarmuka web).
- Sistem menghitung per penerima: di dalam/luar jendela pengiriman, lolos/diblokir izin, akan terkirim/dilewati berikut alasannya (mis.
eligible,opt_in_required,outside_send_window,no_phone). - Simulasi tidak menyimpan apa pun — hanya perkiraan deterministik.
5. Memantau pengiriman
- Pekerja penjadwal berjalan tiap menit dan memindahkan penerima yang memenuhi syarat dari
pendingkesent, lalu mencatat peristiwa pengiriman. - Penerima yang tidak lolos kualifikasi (di luar jendela, wajib izin tanpa izin eksplisit, tanpa nomor) ditandai
skippeddengan alasan. - Lihat agregat
sent/delivered/failedpada daftar kampanye.
Catatan tentang pengiriman nyata: prosesor kampanye memindahkan status penerima ke sent dan mencatat peristiwa pengiriman sebagai pencatatan antrean. Saluran transmisi ke penyedia pesan belum terpasang, jadi angka delivered mencerminkan penandaan antrean, bukan konfirmasi keberhasilan dari penyedia. Lihat Batasan.
Tanda berhasil
- Template dan kampanye tersimpan dan muncul pada daftar masing-masing.
- Status kampanye berpindah sesuai transisi sah; penerima menampilkan status terkini.
- Simulasi mengembalikan perkiraan jumlah akan terkirim beserta alasan lewatnya.
- Pekerja penjadwal memindahkan penerima
pending → sentdan agregat daftar memperbarui.
Jika terjadi masalah
| Gejala | Penyebab | Pemulihan |
|---|---|---|
403 saat membuat/mengubah kampanye | Tidak memiliki manage_campaigns (hanya owner/admin) | Hubungi owner workspace |
403 saat melihat kampanye | Tidak memiliki view_campaigns; izin baru perlu sinkronisasi | Masuk ulang setelah migrasi izin berjalan |
| Penjadwalan ditolak | scheduled_at bukan waktu masa depan | Pilih waktu di masa depan |
Penerima ditandai skipped (outside_send_window/opt_in_required) | Di luar jendela pengiriman atau tanpa izin eksplisit | Periksa send_window dan izin kontak |
rate_limit_per_sec ditolak | Nilai di luar 1–1000 | Perbaiki batas laju |
| Status tidak dapat berubah | Transisi tidak sah untuk status saat ini | Gunakan transisi yang diizinkan |
Batasan
- Pembuatan/ubah/status kampanye =
manage_campaigns(owner/admin); melihat dan simulasi =view_campaigns(semua peran termasuk agent). - Tidak ada tombol simulasi (dry-run) di antarmuka web — simulasi hanya lewat API (
view_campaigns), deterministik, tanpa penyimpanan. - Pengiriman nyata belum terpasang: pencatat pengiriman memindahkan penerima ke
sentdan mencatat peristiwanya; angkasent/deliveredmencerminkan penandaan antrean, bukan transmisi berhasil ke penyedia pesan. Jangan mengandalkan angka tersebut sebagai bukti bahwa pesan terkirim ke pelanggan. - Penerima ditambahkan secara manual satu per satu; tidak ada impor massal berkas.
- Kampanye wajib-izin (opt-in) hanya mengirim ke kontak dengan izin
grantedeksplisit yang tidak ditarik sesudahnya; izin ditolak bila tanpa catatan izin. - Perubahan
send_windowdan batas laju divalidasi; nilai di luar rentang ditolak. - Kontrak permintaan lengkap ada di Referensi API.
Tugas terkait
- Otomasi, Persetujuan, dan Perintah — persetujuan sebelum aksi dan perintah eksternal
- Mengelola pengguna, tim, dan inbox — sinkronisasi izin
- Referensi API