Knowledge Base

HTTP Knowledge Base

Ambil data dari API endpoint dengan dukungan headers dan authentication

Apa itu HTTP KB?

HTTP Knowledge Base memungkinkan Anda mengambil data dari API endpoint dengan dukungan custom headers dan authentication. Cocok untuk data yang memerlukan API key atau token, atau data yang sering berubah dan perlu di-refresh secara berkala.

Dengan Auth

Support custom headers & API keys

Data Dinamis

Cocok untuk data yang sering berubah

API Response

Ekstrak data dari JSON/XML

Kapan Menggunakan HTTP KB?

Data Produk dari API

Ambil data produk, harga, stok dari e-commerce API

Konten dari CMS API

Artikel, blog posts, atau konten dari headless CMS

Data Real-time

Data yang sering berubah seperti harga, status, availability

Data yang Butuh Auth

Resource yang memerlukan API key atau Bearer token

Cara Membuat HTTP KB

  1. 1
    Buka Resources β†’ Create Resource
    Resources Page

    Halaman Resources Agent

    Pilih Knowledge β†’ HTTP

  2. 2
    Isi Nama & Deskripsi
    HTTP KB Form

    Form HTTP URL

    Berikan nama dan deskripsi yang jelas untuk knowledge base ini

    Name

    Product Catalog API

    Description

    Mengambil data produk dari API
  3. 3
    Masukkan API URL
    HTTP KB Form

    Form HTTP Knowledge Base

    Masukkan URL lengkap dari API dan pilih HTTP method

    Pilih HTTP Method:

    GET
    POST
    PUT
    PATCH
    DELETE

    Masukkan URL:

    https://api.example.com/v1/products
    https://api.example.com/articles?limit=100
    Dynamic Parameters

    Gunakan <param> untuk parameter dinamis yang akan diekstrak dari percakapan:

    https://api.example.com/users/<userId>/orders
    https://api.example.com/products?category=<category>&limit=<limit>

    Agent akan otomatis ekstrak parameter dari percakapan user

  4. 4
    Tambahkan Headers (Opsional)
    HTTP KB Headers

    Tambahkan Headers untuk Authentication

    Custom headers untuk authentication atau konfigurasi:

    Authorization: Bearer YOUR_API_KEY
    Content-Type: application/json
    API-Key: your-api-key-here
  5. 5
    Definisikan Body Parameters (Opsional)
    HTTP KB Body Parameters

    Definisikan Body Parameters

    Untuk POST/PUT/PATCH: Data yang akan dikirim ke API. Agent akan ekstrak dari percakapan user.

    query required

    Kata kunci pencarian

    limit optional

    Jumlah hasil (default: 10)

    Agent akan mengirim JSON:

    { "query": "...", "limit": 10 }
  6. 6
    Set Success Condition (Opsional)
    HTTP KB Success Condition

    Set Success Condition

    Tentukan kapan API call dianggap berhasil atau gagal

    STATUS CODE

    Cek HTTP status code

    Status Code = 200
    RESPONSE VALUE

    Cek nilai di response JSON

    response.status = "success"
  7. 7
    Test Konfigurasi
    Test HTTP KB

    Test HTTP KB

    Test sebelum menyimpan untuk memastikan API mengembalikan data yang valid

    Success/Failed

    βœ… Hijau = berhasil, ❌ Merah = gagal

    Status Code

    200 = OK, 404 = Not Found, 500 = Error

    Response

    Data dari API

    Execution Time

    Waktu respon (ms)

  8. 8
    Klik "Create"
    HTTP KB Created

    HTTP KB Berhasil Dibuat

    Jika test berhasil, klik Create untuk menyimpan knowledge base

Tips & Best Practices

Gunakan API yang Stabil

Pastikan API reliable dan tidak sering down

Jaga Keamanan API Key

Gunakan API key khusus untuk read-only jika memungkinkan

Perhatikan Rate Limit

Pastikan tidak melebihi rate limit API

Test di Environment Aman

Test dengan staging/dev API dulu sebelum production

HTTP KB vs HTTP Actions

Penting untuk memahami perbedaan antara HTTP Knowledge Base dan HTTP Actions:

HTTP Knowledge Base
  • Tujuan: Menyimpan data sebagai knowledge
  • Kapan: Saat membuat/update knowledge base
  • Auth: Static API key dari platform owner
  • Context: Tidak menggunakan user context
  • Contoh: Fetch product catalog, fetch FAQ dari CMS
HTTP Actions (Private)
  • Tujuan: Menjalankan operasi/API calls
  • Kapan: Saat user request action selama percakapan
  • Auth: User-specific token dari Persistent Context
  • Context: Menggunakan user context (user_id, token, email, dll)
  • Session: Fully Persistent atau Time-Based Expiration
  • Contoh: Check saldo, transfer uang, update profile

Catatan: HTTP KB digunakan untuk data knowledge yang bersifat umum. Untuk operasi yang memerlukan user-specific data (seperti check saldo rekening user), gunakan HTTP Actions dengan Persistent Context.

πŸ” Private Actions

Private Actions adalah HTTP Actions yang memerlukan Persistent Context. Actions ini bisa mengakses data user yang sudah login (user ID, email, phone, dll) dan mengirimkannya ke API.

Apa itu Private Actions?

HTTP Actions yang hanya bisa dijalankan jika user sudah "login" dengan Persistent Context. Berguna untuk actions yang memerlukan user-specific data seperti check order, update profile, transfer saldo, dll.

Cara Membuat Private Action
  1. 1. Aktifkan Persistent Context di Agent Settings
  2. 2. Buat Login Node untuk collect user data
  3. 3. Saat membuat HTTP Action, centang checkbox "Private"
  4. 4. Centang checkbox "Private" jika action memerlukan user context
Pengumpulan Context Otomatis

LLM akan secara otomatis menentukan data context apa yang diperlukan berdasarkan konfigurasi action Anda. Anda tidak perlu menentukan field mana yang harus dikumpulkan - AI akan menganalisis URL, headers, dan body untuk mengetahui data context apa yang dibutuhkan.

Bagaimana Cara Kerjanya?

Saat Anda menggunakan placeholder seperti <user_id> di URL, headers, atau body action Anda, sistem secara otomatis:

  1. 1. Mengidentifikasi field context yang diperlukan (misalnya: user_id, token, email)
  2. 2. Memeriksa apakah data sudah tersedia di Persistent Context
  3. 3. Jika belum ada, meminta user untuk login atau menyediakan informasi
  4. 4. Mengganti placeholder dengan data context yang sebenarnya saat eksekusi

Anda hanya perlu fokus pada desain action - biarkan AI yang mengelola pengumpulan data!

Contoh Nyata

Action "Check Saldo" untuk banking bot:

Tipe: Private (requires login)
URL: https://api.bank.com/balance
Header: Authorization: Bearer <token>
Hasil: API tahu user mana yang request karena dapat account_id dan token dari context
Keamanan
  • πŸ”’ Private Actions HANYA bisa dijalankan jika user sudah login
  • Context data disimpan secara aman di database
  • Gunakan Private Actions untuk semua operasi yang sensitive (transaksi, data pribadi)
Requirements untuk Private Actions
  • ⚠️ Persistent Context harus diaktifkan di Agent Settings
  • ⚠️ Login Node harus sudah dibuat dan configured
  • ⚠️ User harus sudah "login" sebelum bisa menggunakan Private Actions

⏱️ Context Requirement & Session

Context Requirement

Private Actions memerlukan user sudah memiliki Persistent Context aktif. Jika user belum login, agent akan otomatis meminta mereka login terlebih dahulu sebelum menjalankan action.

Flow Otomatis
  1. 1. User meminta action yang Private (misal: "Cek saldo saya")
  2. 2. Agent deteksi action ini Private dan perlu context
  3. 3. Jika user belum login, agent otomatis minta login dulu
  4. 4. Setelah login sukses, agent eksekusi action dengan context user
Contoh Dialog
USER

Cek saldo saya

AGENT

Untuk mengecek saldo, saya perlu Anda login terlebih dahulu. Silakan masukkan username dan password Anda.

USER

[mengisi login form]

AGENT

Saldo Anda saat ini adalah Rp 5.000.000

Session Management

Persistent Context mendukung dua mode session management: Fully Persistent (default) atau Time-Based Expiration dengan refresh logic.

♾️ Mode 1: Fully Persistent (Default)

Session tidak memiliki batas waktu kedaluwarsa dan tetap aktif sampai user logout secara manual.

  • Context user disimpan secara permanen di database
  • User tidak perlu login ulang, bahkan setelah berhari-hari tidak aktif
  • Private Actions selalu tersedia tanpa perlu autentikasi ulang
  • Cocok untuk: aplikasi yang memerlukan kemudahan akses jangka panjang
⏱️ Mode 2: Time-Based Expiration

Session memiliki masa berlaku dan dapat di-refresh secara otomatis oleh agent.

  • Expiration Time: Token/session expire setelah waktu tertentu (misal: 1 jam, 24 jam, 30 hari)
  • Auto Refresh: Agent dapat memiliki HTTP Action untuk refresh token sebelum expire
  • Seamless: User tidak perlu login ulang jika refresh berhasil
  • Re-login: Jika refresh gagal atau token benar-benar expire, user diminta login ulang
  • Cocok untuk: sistem dengan token API pihak ketiga yang memiliki expiration
πŸšͺ Manual Logout (Berlaku untuk Semua Mode)

User dapat logout kapan saja untuk menghapus context mereka, terlepas dari mode session yang digunakan:

  • User bisa meminta logout melalui percakapan dengan agent
  • Setelah logout, semua context dan token dihapus dari session
  • User perlu login ulang untuk menggunakan Private Actions lagi
πŸ’‘ Implementasi Refresh Logic

Untuk menggunakan Time-Based Expiration dengan auto-refresh:

  1. 1. Simpan refresh_token dan expired_at di Login Action response mapping
  2. 2. Buat Private HTTP Action untuk refresh token (misal: "Refresh Token")
  3. 3. Agent akan otomatis memanggil refresh action sebelum token expire
  4. 4. Response dari refresh action akan update context dengan token baru
πŸ”’ Keamanan Session

Context data disimpan secara aman di database dan hanya bisa diakses oleh agent dan user yang memiliki session. Mode Time-Based Expiration memberikan layer keamanan tambahan dengan membatasi masa berlaku token.

Best Practices
  • βœ“ Informasikan user bahwa mereka perlu login untuk actions tertentu
  • βœ“ Buat pesan error yang jelas jika session expire
  • βœ“ Gunakan Private Actions hanya untuk data yang memang perlu authentication
  • βœ“ Test flow login dan re-login untuk memastikan UX smooth

Test Konfigurasi

Sebelum menyimpan knowledge base, Anda dapat menguji konfigurasi HTTP untuk memastikan API mengembalikan data yang valid.

Cara Test

  1. 1. Isi semua field konfigurasi (URL, Method, Headers)
  2. 2. Klik tombol "Test" di bagian bawah form
  3. 3. Sistem akan mengirim request dan menampilkan preview data
  4. 4. Pastikan response berisi data yang relevan

Informasi Test Result

Success

Menunjukkan apakah request berhasil atau gagal

Status Code

HTTP status code (200, 404, 500, dll)

Response

Data response dari API (JSON atau text)

Execution Time

Waktu eksekusi request dalam milidetik

Validasi Data

Setelah test berhasil, sistem akan otomatis mengekstrak dan memproses data untuk dijadikan knowledge base. Pastikan response API berisi informasi yang relevan dan terstruktur dengan baik.