🤖 Wahnotif AI Chat API

Dokumentasi ini menjelaskan cara menggunakan "Otak AI CS" yang telah Anda konfigurasi di Dashboard Wahnotif untuk digunakan di platform lain (seperti Web Widget, Aplikasi Mobile, atau AditoryProject).

POST /api/ai/chat

Endpoint ini digunakan untuk mengirim pesan pelanggan ke AI dan mendapatkan balasan sesuai dengan Konteks Bisnis dan Persona CS yang sudah diatur di dashboard.

Headers Authentication

Anda wajib menyertakan API Key dari Dashboard Wahnotif Anda di header setiap request.

x-api-key: YOUR_SECRET_API_KEY

Request Body (JSON)

Parameter Type Wajib Deskripsi
message String Ya Pesan terbaru yang dikirimkan oleh pengguna / pelanggan.
chatHistory Array of Objects Tidak Riwayat percakapan sebelumnya untuk memberikan konteks kepada AI. Format: [{role: 'user', text: '...'}, {role: 'model', text: '...'}]

Contoh Request (Node.js / Axios)

const axios = require('axios');

const response = await axios.post('https://domain-wahnotif.com/api/ai/chat', {
    message: "Berapa harga sepatu tipe A?",
    chatHistory: [
        { role: "user", text: "Halo min, mau tanya" },
        { role: "model", text: "Halo Kak! Ada yang bisa saya bantu hari ini?" }
    ]
}, {
    headers: {
        'x-api-key': 'API_KEY_ANDA_DISINI',
        'Content-Type': 'application/json'
    }
});

console.log(response.data.reply);

Contoh Request (PHP / cURL)

<?php
$curl = curl_init();

$payload = json_encode([
    "message" => "Berapa harga sepatu tipe A?",
    "chatHistory" => [] // Kosongkan jika tidak ada riwayat
]);

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://domain-wahnotif.com/api/ai/chat',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $payload,
  CURLOPT_HTTPHEADER => array(
    'x-api-key: API_KEY_ANDA_DISINI',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;

Response Format (JSON)

Success Response:

{
    "success": true,
    "reply": "Harga sepatu tipe A mulai dari Rp 150.000 saja Kak. Kebetulan hari ini kita ada promo gratis ongkir, mau langsung diproses pesanannya?"
}

Error Response:

{
    "success": false,
    "message": "AI Assistant is not active for this device."
}

🛠️ Custom AI Tools (Webhook Integrations)

Fitur revolusioner Wahnotif yang mengubah AI sekadar "Penjawab Chat" menjadi Asisten Eksekutor. Dengan fitur ini, Anda bisa mendaftarkan API sistem Anda sendiri (misal: TokoOnlineKu, Pembukuanku) agar AI bisa memanggil fungsi tersebut saat dibutuhkan secara otomatis.

Cara Kerja

  1. Anda menambahkan Tool baru di Client Dashboard (Tab AI CS Assistant > Custom AI Tools).
  2. Isi parameter dengan format JSON Schema. Misal, jika butuh input nama kota: {"type": "object", "properties": {"kota": {"type": "string"}}}
  3. Saat ada pelanggan yang menanyakan hal terkait (berdasarkan deskripsi Tool), AI akan menunda balasannya dan menyuruh Wahnotif memanggil Webhook URL Anda.
  4. Sistem Anda mengolah data, dan merespons Webhook dengan format JSON.
  5. AI Wahnotif akan membaca hasil JSON tersebut, mengubahnya ke bahasa manusia, dan merespons chat pelanggan.

Format Webhook Payload (Yang Wahnotif Kirim ke Server Anda)

Wahnotif akan melakukan HTTP POST ke URL Webhook Anda dengan mengirimkan body JSON berisi argumen yang telah diekstrak oleh AI dari chat pelanggan.

POST https://api.domain-anda.com/webhook/ongkir
{
    // Argumen dari percakapan yang diminta oleh JSON Schema
    "kota": "Bandung",
    "kecamatan": "Cibeunying Kaler",
    "kurir": "JNE",
    
    // Variabel bawaan (Injected Context) untuk identifikasi
    "_wahnotif_deviceId": "user-device-uuid",
    "_wahnotif_jid": "from_chat",
    "_wa_role": "kasir",
    "_wa_user": "Budi"
}

Format Respons Webhook (Yang Harus Server Anda Kembalikan)

Server Anda harus membalas request tersebut secepat mungkin (maksimal 5 detik) dengan format JSON. Isi JSON ini bebas, AI kami cukup pintar untuk membaca dan menyimpulkan isinya.

// Contoh Respons API Anda (HTTP 200 OK)
{
    "status": "success",
    "ongkir": 15000,
    "estimasi": "2-3 hari",
    "pesan": "Tersedia promo gratis ongkir minimal belanja 100rb"
}

Kirim Dokumen PDF Otomatis via Webhook!

Jika fungsi yang dipanggil bertugas mencetak laporan atau invoice, server Anda cukup menambahkan parameter generate_pdf dan html_content. Wahnotif akan merender HTML tersebut menjadi PDF dan otomatis mengirimkannya ke WhatsApp pengguna tanpa campur tangan AI.

// Contoh Respons Mencetak PDF
{
    "generate_pdf": true,
    "filename": "Invoice-INV001.pdf",
    "html_content": "<h1>Invoice INV001</h1><p>Total Tagihan: Rp 150.000</p>",
    "pesan_tambahan": "Data berhasil dibuat, AI tolong sampaikan pdf akan segera dikirim."
}

Hasil Akhir di WhatsApp:
"Ongkir ke Cibeunying Kaler pakai JNE itu Rp 15.000 ya Kak dengan estimasi sampai 2-3 hari. Kebetulan lagi ada promo gratis ongkir nih minimal belanja 100rb, mau nambah barang lain biar sekalian Kak?"