Saya ingin bot AI menjawab pelanggan di aplikasi saya sendiri
Operator AI yang menjawab percakapan di ruang percakapan WACO juga tersedia sebagai API murni: aplikasi Anda mengirim pesan pelanggan, kami mengembalikan jawaban dari pengetahuan yang Anda ajarkan, atau berkata jujur bahwa ia tidak tahu. Kanalnya (WhatsApp Anda sendiri, live chat website, Telegram, apa pun) tetap sepenuhnya milik Anda.
waco_ dari halaman Pengaturan. Pengetahuan bisa diisi dari portal (kartu, wawancara, unggah PDF) maupun lewat API ini.Minta balasan
POST https://waco.id/api/v1/asisten/balas
Authorization: Bearer waco_xxxx
{ "sesi": "cust-8812", "teks": "kalau hari minggu buka nggak?" }
β 200 { "jawab": true, "teks": "Kami buka Senin, Sabtu 08.00β17.00, Minggu tutup." }
β 200 { "jawab": false, "alasan": "di_luar_pengetahuan" }
sesi adalah ID percakapan versi Anda, pakai apa pun yang konsisten per
pelanggan. Untuk konteks percakapan berlanjut, sertakan riwayat:
larik {"peran":"pelanggan"|"bot","teks":"..."} (maksimal 10 terakhir yang dipakai).
jawab:false WAJIB Anda tangani sebagai serah-terima ke manusia. Alasannya bisa di_luar_pengetahuan, anggaran_habis, sibuk (batas percakapan bersamaan), bot_nonaktif, atau galat_sementara, apa pun itu, pelanggan harus tetap dijawab oleh tim Anda. Bot yang ragu lalu diam lebih buruk daripada tidak ada bot.Kelola pengetahuan
GET /api/v1/asisten/pengetahuan β { "kartu": [...] }
POST /api/v1/asisten/pengetahuan
{ "judul": "Jam buka", "isi": "Senin, Sabtu 08.00β17.00." } β kartu baru (aktif)
{ "id": 12, "isi": "...", "aktif": true } β ubah kartu
{ "url": "https://situs-anda.com/faq" } β sulingkan jadi kartu draf
DELETE /api/v1/asisten/pengetahuan/:id
Kartu dari url masuk sebagai draf nonaktif: tinjau lalu
aktifkan (dari portal atau POST {"id":β¦,"aktif":true}). Bot tidak pernah memakai
pengetahuan yang belum Anda setujui.
Cek sisa kuota
GET /api/v1/asisten/pemakaian
β { "aktif": true, "terpakaiIdr": 12500, "kuotaBulananIdr": 50000,
"topupIdr": 0, "sisaIdr": 37500, "percakapanAktif": 1, "batasBersamaan": 5 }
Kuota bulanan sudah termasuk langganan dan direset tiap bulan; top-up berlaku 30 hari sejak
dibeli. Saat kuota habis bot berhenti menjawab (jawab:false), percakapan
mengalir ke tim Anda, layanan tidak pernah putus.
Contoh integrasi (Node.js), pola serah-terima yang benar
async function balasPelanggan(idPercakapan, pesanPelanggan) {
const r = await fetch('https://waco.id/api/v1/asisten/balas', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + process.env.WACO_API_KEY,
},
body: JSON.stringify({ sesi: idPercakapan, teks: pesanPelanggan }),
});
const j = await r.json();
if (j.jawab) {
await kirimKePelanggan(idPercakapan, j.teks); // kanal Anda sendiri
} else {
// WAJIB: apa pun alasannya, manusia mengambil alih.
await tandaiButuhManusia(idPercakapan);
await beriTahuTim(idPercakapan, 'Bot menyerahkan: ' + j.alasan);
}
}
Versi PHP/Laravel, Python, atau Go tinggal menerjemahkan pola yang sama: satu POST, satu
percabangan jawab. Yang tidak boleh: menampilkan "maaf saya tidak tahu" ke
pelanggan lalu berhenti. jawab:false artinya orang yang melanjutkan.