Panduan/Untuk developer

Saya ingin bot AI menjawab pelanggan di aplikasi saya sendiri

Operator AI versi developer, otak AI WACO lewat API, kanalnya tetap milik Anda. 3 menit baca

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.

Prasyarat: langganan Operator AI aktif (Rp 300.000/bulan, aktifkan dari halaman Tagihan) + kunci API 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).

Kontrak terpenting: 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.

Masih menemui kendala setelah mengikuti panduan ini? Hubungi kami dari dashboard, sertakan tangkapan layar bila ada, itu mempercepat semuanya.