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.