Koneksi API

Hubungkan API eksternal Anda ke enuchat sehingga AI dan aturan dapat mengambil data real-time dari sistem Anda.

Cara Kerjanya

Koneksi API memungkinkan Anda mengintegrasikan enuchat dengan sistem backend Anda sendiri — mesin pemesanan, CRM, manajemen pesanan, inventaris, dan banyak lagi. Saat pengunjung mengajukan pertanyaan, enuchat dapat memanggil API Anda untuk mendapatkan data nyata dan memasukkannya ke dalam respons.

Alurnya

  1. Konfigurasikan koneksi — URL dasar dan autentikasi API Anda
  2. Tambahkan endpoint — panggilan API spesifik dengan template path dan pemetaan respons
  3. Buat aturan — aturan AI atau statis dengan tindakan CALL_API
  4. Pengunjung mengajukan pertanyaan — aturan dipicu, memanggil API Anda, memetakan respons ke variabel sesi
  5. AI merespons dengan data nyata — variabel sesi tersedia untuk AI untuk menghasilkan jawaban yang akurat

Contoh: Ketersediaan Kamar Hotel

Pengunjung: "Apakah kamar 205 tersedia minggu depan?"

Aturan AI cocok: "Saat pengunjung bertanya tentang ketersediaan kamar"

Tindakan CALL_API: GET https://api.hotel.com/rooms/205/availability

Respons dipetakan: room_available = true, price = "€120/malam"

AI merespons: "Kamar 205 tersedia minggu depan dengan harga €120/malam. Apakah Anda ingin memesannya?"

Mengatur Koneksi

Pergi ke Pengaturan → Koneksi API di dasbor Anda.

1. Buat Koneksi

Sebuah koneksi mewakili satu API eksternal. Anda membutuhkan:

FieldDeskripsiContoh
NamaLabel untuk koneksi iniAPI Pemesanan Hotel
URL DasarURL root APIhttps://api.hotel.com/v1
Jenis AuthCara autentikasiBearer Token, OAuth2, dll.

2. Jenis Autentikasi

None

Untuk API publik yang tidak memerlukan autentikasi.

API Key

Mengirim kunci statis sebagai header atau parameter query.

FieldDeskripsi
KunciNilai kunci API Anda
Nama HeaderHeader yang digunakan (default: X-Api-Key)

Kunci dikirim sebagai: X-Api-Key: your_key_here

Bearer Token

Mengirim token statis di header Authorization.

Dikirim sebagai: Authorization: Bearer your_token_here

Basic Auth

Mengirim nama pengguna dan kata sandi, dikodekan base64.

Dikirim sebagai: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (Client Credentials)

Mengambil token akses secara otomatis dan menyimpannya dalam cache hingga kedaluwarsa. Terbaik untuk API modern seperti Salesforce, Google, atau server OAuth kustom.

FieldDeskripsi
URL TokenEndpoint token OAuth (mis. https://auth.example.com/oauth/token)
Client IDClient ID OAuth Anda
Client SecretClient secret OAuth Anda
ScopeScope dipisahkan spasi (mis. read write)

enuchat menangani siklus hidup token secara otomatis — mengambil pada panggilan pertama, menyimpan dalam cache hingga kedaluwarsa, menyegarkan saat dibutuhkan.

Keamanan: Semua kredensial dienkripsi saat istirahat menggunakan libsodium. Mereka tidak pernah diekspos di respons API — hanya nilai bertopeng yang ditampilkan di dasbor.

Mengonfigurasi Endpoint

Setiap koneksi dapat memiliki beberapa endpoint — panggilan API spesifik yang ingin Anda lakukan.

FieldDeskripsiContoh
NamaLabel untuk endpoint iniPeriksa ketersediaan
MetodeMetode HTTPGET, POST, PUT, DELETE
PathPath URL (ditambahkan ke URL dasar). Gunakan {'{'}variable} untuk nilai dinamis/rooms/{'{'}roomId}/availability
Parameter QueryParameter URL sebagai pasangan kunci-nilai. Nilai mendukung {'{'}variable}date={'{'}checkIn}
Template BodyBody JSON untuk POST/PUT. Mendukung interpolasi {'{'}variable}{'{'}"guest": "{'{'}name}"}
Pemetaan ResponsPetakan field respons JSON ke variabel sesi menggunakan notasi titikdata.available → room_available
DeskripsiKonteks untuk AI (data apa yang dikembalikan endpoint ini)Mengembalikan ketersediaan kamar dan harga

Interpolasi Variabel

Gunakan {'{'}variableName} dalam path, parameter query, dan template body. Variabel berasal dari:

  • Variabel sesi — diatur oleh aturan sebelumnya (tindakan SET_VARIABLE)
  • Parameter tindakan — di-hardcode dalam tindakan aturan CALL_API

Pemetaan Respons

Petakan field respons JSON ke variabel sesi menggunakan notasi titik:

// API returns:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Mapping:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

Variabel yang dipetakan disimpan sebagai variabel sesi pada percakapan dan tersedia untuk AI untuk menghasilkan respons.

Menggunakan dengan Aturan

Panggilan API dipicu oleh tindakan CALL_API dalam aturan. Anda dapat menggabungkannya dengan tindakan lain.

Resep: Pencarian Status Pesanan

Koneksi: API Manajemen Pesanan — https://api.shop.com/v2 — Bearer Token

Endpoint: GET /orders/{'{'}orderId} → petakan data.statusorder_status, data.etadelivery_eta

Aturan (tipe AI): "Saat pengunjung bertanya tentang status pesanan atau pengiriman mereka"

Tindakan:

  1. CALL_API → endpoint Status Pesanan
  2. REPLY_AI → AI menggunakan order_status dan delivery_eta untuk merespons

Hasil: Pengunjung: "Di mana pesanan saya #4521?" — AI: "Pesanan Anda #4521 sedang dikirim dan harus tiba pada Kamis."

Resep: Harga Real-Time

Koneksi: API Harga — https://pricing.example.com — API Key

Endpoint: GET /products/{'{'}productId}/price → petakan pricecurrent_price, currencyprice_currency

Aturan (statis): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

Tindakan:

  1. CALL_API → endpoint Harga
  2. REPLY_TEXT → "Harga saat ini adalah {'{'}current_price} {'{'}price_currency}."

Pengujian

Selalu uji koneksi dan endpoint Anda sebelum menggunakannya dalam aturan:

  • Uji Koneksi — memverifikasi autentikasi berfungsi (untuk OAuth2: mengambil token)
  • Uji Endpoint — melakukan panggilan API nyata dengan variabel sampel dan menampilkan respons
  • Uji Aturan (dry-run) — di halaman Aturan, uji apakah aturan akan cocok dan tindakan apa yang akan dieksekusi

Tip: Mulai dengan menguji koneksi, lalu setiap endpoint, lalu aturan lengkap. Dengan cara ini Anda dapat mengisolasi masalah di setiap level.

Keamanan

  • Enkripsi saat istirahat — semua kredensial dienkripsi menggunakan libsodium sebelum penyimpanan
  • Tidak pernah diekspos — respons API tidak pernah menyertakan kredensial yang didekripsi, hanya nilai bertopeng
  • Perlindungan SSRF — enuchat memblokir panggilan ke localhost, IP pribadi, dan nama host internal
  • Timeout — panggilan API eksternal memiliki timeout 5 detik untuk mencegah hang
  • Caching token OAuth2 — token akses disimpan dalam cache dengan aman dan disegarkan secara otomatis
  • Isolasi tenant — koneksi dibatasi pada tenant Anda, tidak dapat diakses oleh orang lain

Siap menghubungkan API Anda?

Mulai mengintegrasikan sistem Anda dengan enuchat hari ini.

Mulai Gratis