WA Bot Dashboard

Status Koneksi WhatsApp

-

Mengirim pesan test ke nomor bot sendiri (-) untuk memastikan pengiriman benar-benar berfungsi, tanpa perlu isi form di tab Kirim Pesan.

Kirim Pesan Tunggal

Broadcast Pesan

Riwayat Campaign

NamaTotalTerkirimGagalStatusDibuat

Jadwalkan Pesan

Daftar Jadwal

NomorPesanWaktuStatus

Log Pengiriman Pesan

NomorPesanStatusWaktu

Setting Webhook

URL ini akan dipanggil (POST) setiap ada pesan masuk ke nomor bot.

AI Auto-Reply (Claude)

Aktifkan supaya bot otomatis membalas chat masuk menggunakan Claude AI. Kode verifikasi (KQ-XXXXXX) tidak akan dibalas AI.

Belum ada API key tersimpan.

Atur supaya balasan AI singkat & enak dibaca di WhatsApp, bukan panjang seperti email. Kosongkan untuk pakai aturan bawaan (singkat, maks. beberapa kalimat, pecah jadi beberapa pesan kalau perlu panjang).

Batas keras panjang satu balasan AI. Makin kecil, makin dipaksa singkat. 250-350 cocok untuk gaya chat WA singkat; naikkan kalau butuh jawaban lebih rinci.

Batasan universal, berlaku untuk semua lini bisnis di bawah -- larangan janji uang/refund, topik sensitif, bocor data, dsb. Larangan yang KHUSUS satu lini diisi di tab lini masing-masing, bukan di sini.

Handover ke CS Manusia

Atur kapan AI berhenti membalas dan menyerahkan percakapan ke admin. Hitungan balasan otomatis reset kalau kontak tidak chat lagi selama beberapa jam (sesi baru).

Kalau pelanggan mengetik salah satu kata ini, AI langsung berhenti dan percakapan diserahkan ke admin. Pisahkan dengan koma atau baris baru.

Sama seperti handover, TAPI Anda dinotifikasi WA dengan tanda 🚨 prioritas tinggi -- pakai untuk kata yang menandakan situasi genting (mis. "kecewa berat", "rugi", "lapor polisi"), terpisah dari kata kunci handover biasa di atas.

Setiap kali AI handover ke manusia (kata kunci biasa/darurat, atau limit balasan tercapai), nomor ini otomatis dikirimi notifikasi WA berisi ringkasan situasinya -- supaya Anda tidak perlu buka dashboard manual untuk tahu ada pelanggan yang butuh respons. Kosongkan untuk mematikan notifikasi ini.

Hemat Token

Basis Pengetahuan Eksternal

Basis Pengetahuan per Lini Bisnis

Nomor ini melayani 6 lini sekaligus. Isi pengetahuan TIAP lini terpisah di sini -- AI hanya membaca lini yang sedang dibahas pelanggan, bukan keenamnya sekaligus, supaya jawaban tetap akurat & tidak tercampur.

Keyboard Android (IME) + CRM kontak + AI auto-reply WhatsApp -- produk siap pakai, langganan, dijual lewat jaringan reseller/agen.

Jasa pembuatan aplikasi & website custom (bukan produk siap pakai seperti DreamPos/DreamBoard).

Kata/frasa yang menandakan pelanggan sedang bahas lini ini. Dipakai untuk mengunci topik percakapan TANPA panggil AI. Pisahkan koma/baris baru.

Angka di sini dipakai apa adanya oleh AI -- jangan biarkan kosong kalau tidak mau AI mengarang/menghindar soal harga.

Tulis dengan 3 bagian: [PROSPEK/CALON KONSUMEN], [CALON MITRA] (subkontraktor/freelancer kalau ada), [KONSUMEN AKTIF/SUPPORT].

Aplikasi kasir/POS untuk UMKM -- produk siap pakai, langganan.

Layanan antar/ojek/errand on-demand -- ada sisi konsumen (pemesan) DAN sisi mitra (kurir/vendor jasa).

Aplikasi/tools edit video -- rekam/impor klip, potong & gabung manual, unduh dari platform lain untuk diedit ulang.

Aplikasi warga RT/RW/Desa -- data warga, surat-menyurat, pengumuman, iuran, sampai Ojek/Kurir & Laporan Bulanan tingkat desa.

Balasan Kalengan (di luar AI)

Balasan tetap yang dikirim TANPA memanggil Claude -- tetap jalan meski AI di atas dimatikan. Rule kata kunci dicek lebih dulu (cocok kalau pesan MENGANDUNG kata kuncinya); kalau tidak ada yang cocok, dipakai rule "text random" (fallback untuk pesan apa saja) kalau ada yang aktif.

JenisKata KunciBalasanAktif

Simulator Uji Coba Chat

Uji persona/SOP/FAQ/kata kunci di sini tanpa kirim WA sungguhan -- jalur logikanya PERSIS sama dengan pesan asli (canned > FAQ > cache > Claude, deteksi lini & audiens), termasuk BENERAN memanggil Claude & memakai token kalau sampai ke situ. Percakapan simulator disimpan terpisah dan tidak ikut masuk ke laporan Pemakaian Token / Pertanyaan Sering Masuk.

Kelola Percakapan (Handover)

Daftar kontak yang pernah dibalas AI. "Dijeda" berarti AI tidak membalas kontak itu (karena limit, kata kunci, atau admin mengambil alih — baik dari dashboard maupun balas langsung dari aplikasi WhatsApp). Klik "Ambil Alih" untuk pause manual, atau "Kembalikan ke AI" untuk aktifkan lagi.

NomorStatusJml BalasanAktivitas Terakhir

Cache Jawaban AI

Pertanyaan yang sudah pernah dijawab AI dan disimpan supaya tidak perlu panggil Claude lagi untuk pertanyaan persis sama (hemat token). Hapus baris ini kalau ada jawaban yang salah/usang.

PertanyaanJawabanDipakai

Pemakaian Token

Angka mentah dari respons Claude -- Cache Read yang besar dibanding Input biasa artinya prompt caching bekerja (token itu dibayar jauh lebih murah daripada input biasa). Tidak menampilkan estimasi biaya dalam Rupiah karena tarif per-token bisa berubah -- pakai angka ini sebagai perbandingan relatif dari waktu ke waktu.

TanggalPanggilanInputOutputCache WriteCache Read

Per Lini

LiniPanggilanInputOutput

Pertanyaan Sering Masuk (Belum Ke-cache)

Pertanyaan pelanggan yang jawabannya masih SELALU manggil Claude (belum tertangkap FAQ/cache) dalam 30 hari terakhir. Kalau ada pertanyaan yang sering muncul di sini, klik "Pakai" lalu tulis jawaban baku-nya supaya masuk FAQ lini terkait -- pertanyaan berikutnya yang mirip langsung dijawab gratis, tanpa panggil Claude.

PertanyaanLini TerdeteksiJumlahTerakhir Ditanya

Riwayat Percakapan AI

Bot mengingat percakapan per kontak agar balasan AI nyambung dengan konteks sebelumnya. Kosongkan filter nomor untuk lihat semua kontak.

NomorPeranIsi PesanWaktu

Dokumentasi API

Semua endpoint /api/* di bawah ini butuh header X-API-Key (buat lewat node src/scripts/createApiKey.js <nama> di server). Base URL: https://wa.bigdream.id

1. Verifikasi Pendaftaran (pengganti OTP)

Dipakai saat user menyelesaikan pendaftaran / klik tombol Daftar. Sistem Anda minta kode + link WA, tampilkan sebagai tombol, bot otomatis verifikasi saat user kirim pesannya.

POST /api/verify/request

{
  "phone": "08123456789",
  "reference": "id-unik-dari-sistem-anda",
  "callbackUrl": "https://sistem-anda.com/webhook/wa-verified",  // opsional
  "ttlMinutes": 15                                               // opsional, default 15
}

Respons (201):

{
  "code": "KQ-XXXXXX",
  "phone": "62812xxxxxxxx",
  "expiresAt": "2026-08-07T12:00:00.000Z",
  "waLink": "https://wa.me/62852xxxxxxxx?text=KQ-XXXXXX"
}

Tampilkan waLink sebagai tombol "Verifikasi via WhatsApp". User tinggal tap kirim (pesan sudah terisi otomatis).

GET /api/verify/:code

Cek status berdasarkan kode.

GET /api/verify?reference=id-unik-anda

Cek status berdasarkan reference yang Anda kirim saat request (berguna kalau tidak menyimpan kode sendiri). Contoh respons kedua endpoint di atas:

{
  "code": "KQ-XXXXXX",
  "phone": "62812xxxxxxxx",
  "reference": "id-unik-dari-sistem-anda",
  "status": "pending",   // pending | verified | expired
  "createdAt": "...",
  "expiresAt": "...",
  "verifiedAt": null
}

Callback otomatis (kalau callbackUrl diisi, atau fallback ke Setting Webhook)

Begitu user mengirim kode dari nomor yang sesuai, server Anda akan menerima POST:

{
  "event": "verification.verified",
  "code": "KQ-XXXXXX",
  "phone": "62812xxxxxxxx",
  "reference": "id-unik-dari-sistem-anda",
  "verifiedAt": "2026-08-07T12:03:11.000Z"
}

Keamanan: kode hanya valid kalau dikirim dari nomor HP yang sama dengan yang didaftarkan saat request dibuat — kode yang bocor ke orang lain tidak bisa dipakai untuk verifikasi nomor tersebut.

2. Kirim Pesan Tunggal

POST /api/send

{ "phone": "08123456789", "message": "Isi pesan" }

3. Broadcast

POST /api/broadcast

{
  "name": "Nama campaign",
  "recipients": ["08123456789", "08987654321"],
  "message": "Isi pesan"
}

Respons 202 berisi campaignId. Cek progres via:

GET /api/broadcast/:campaignId

4. Webhook Pesan Masuk (semua chat, bukan cuma verifikasi)

Kalau URL diisi di tab Setting Webhook, setiap pesan masuk ke bot (termasuk chat biasa) akan di-POST ke sana:

{
  "event": "message.received",
  "from": "6281234567890@c.us",
  "body": "isi pesan",
  "timestamp": 1786090000,
  "type": "chat"
}