API 連線

將您的外部 API 連接到 enuchat,讓 AI 和規則可以從您的系統取得即時資料。

運作方式

API 連線讓您將 enuchat 與自己的後端系統整合 — 訂房引擎、CRM、訂單管理、庫存等。當訪客提問時,enuchat 可以呼叫您的 API 取得真實資料並納入回覆中。

流程

  1. 設定連線 — 您的 API 基礎 URL 和認證方式
  2. 新增 endpoint — 具體的 API 呼叫,包含路徑範本和回應映射
  3. 建立規則 — 帶有 CALL_API 動作的 AI 或靜態規則
  4. 訪客提問 — 規則觸發,呼叫您的 API,將回應映射到工作階段變數
  5. AI 以真實資料回覆 — 工作階段變數可供 AI 用於生成準確回答

範例:飯店客房可用性

訪客:"205 號房下週有空嗎?"

AI 規則匹配:"當訪客詢問客房可用性時"

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

回應映射:room_available = true, price = "€120/night"

AI 回覆:"205 號房下週有空,每晚 €120。您要預訂嗎?"

設定連線

前往管理面板中的設定 → API 連線

1. 建立連線

一個連線代表一個外部 API。您需要:

欄位說明範例
名稱此連線的標籤飯店訂房 API
基礎 URLAPI 的根 URLhttps://api.hotel.com/v1
認證類型認證方式Bearer Token、OAuth2 等

2. 認證類型

用於不需要認證的公開 API。

API Key

以標頭或查詢參數發送靜態金鑰。

欄位說明
Key您的 API 金鑰值
Header Name使用的標頭(預設:X-Api-Key

金鑰以 X-Api-Key: your_key_here 發送

Bearer Token

在 Authorization 標頭中發送靜態 Token。

Authorization: Bearer your_token_here 發送

Basic Auth

發送 base64 編碼的使用者名稱和密碼。

Authorization: Basic dXNlcjpwYXNz 發送

OAuth 2.0(Client Credentials)

自動取得存取 Token 並快取至到期。最適合現代 API,如 Salesforce、Google 或自訂 OAuth 伺服器。

欄位說明
Token URLOAuth Token endpoint(例如 https://auth.example.com/oauth/token
Client ID您的 OAuth Client ID
Client Secret您的 OAuth Client Secret
Scope以空格分隔的 scope(例如 read write

enuchat 自動處理 Token 生命週期 — 首次呼叫時取得、快取至到期、需要時刷新。

安全性:所有憑證使用 libsodium 加密靜態儲存。API 回應中絕不暴露 — 管理面板中僅顯示遮罩後的值。

設定 Endpoint

每個連線可以有多個 endpoint — 您想要執行的特定 API 呼叫。

欄位說明範例
名稱此 endpoint 的標籤查詢可用性
方法HTTP 方法GET、POST、PUT、DELETE
路徑URL 路徑(附加到基礎 URL)。使用 {'{'}variable} 表示動態值/rooms/{'{'}roomId}/availability
查詢參數鍵值對形式的 URL 參數。值支援 {'{'}variable}date={'{'}checkIn}
請求主體範本POST/PUT 的 JSON 主體。支援 {'{'}variable} 插值{'{'}"guest": "{'{'}name}"}
回應映射使用點表示法將 JSON 回應欄位映射到工作階段變數data.available → room_available
說明提供給 AI 的上下文(此 endpoint 回傳什麼資料)回傳客房可用性和價格

變數插值

在路徑、查詢參數和請求主體範本中使用 {'{'}variableName}。變數來源:

  • 工作階段變數 — 由先前的規則設定(SET_VARIABLE 動作)
  • 動作參數 — 在 CALL_API 規則動作中寫死

回應映射

使用點表示法將 JSON 回應欄位映射到工作階段變數:

// 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"

映射的變數以工作階段變數形式儲存在對話上,可供 AI 用於生成回覆。

搭配規則使用

API 呼叫由規則中的 CALL_API 動作觸發。您可以與其他動作結合使用。

配方:訂單狀態查詢

連線:訂單管理 API — https://api.shop.com/v2 — Bearer Token

Endpoint:GET /orders/{'{'}orderId} → 映射 data.statusorder_statusdata.etadelivery_eta

規則(AI 類型):"當訪客詢問訂單狀態或配送時"

動作:

  1. CALL_API → 訂單狀態 endpoint
  2. REPLY_AI → AI 使用 order_statusdelivery_eta 來回覆

結果:訪客:"我的訂單 #4521 到哪了?" — AI:"您的訂單 #4521 目前正在配送中,預計週四前送達。"

配方:即時價格查詢

連線:價格 API — https://pricing.example.com — API Key

Endpoint:GET /products/{'{'}productId}/price → 映射 pricecurrent_pricecurrencyprice_currency

規則(靜態):MESSAGE_MATCHES_REGEX:/\b(price|cost|how much)\b/i

動作:

  1. CALL_API → 價格 endpoint
  2. REPLY_TEXT → "The current price is {'{'}current_price} {'{'}price_currency}."

測試

在規則中使用之前,請務必測試您的連線和 endpoint:

  • 測試連線 — 驗證認證是否有效(OAuth2:取得 Token)
  • 測試 Endpoint — 以範例變數執行真實 API 呼叫並顯示回應
  • 測試規則(模擬執行) — 在規則頁面測試規則是否會匹配以及會執行哪些動作

提示:先測試連線,然後測試每個 endpoint,最後測試完整規則。這樣您可以在每個層級隔離問題。

安全性

  • 靜態加密 — 所有憑證在儲存前使用 libsodium 加密
  • 絕不暴露 — API 回應絕不包含解密後的憑證,僅顯示遮罩後的值
  • SSRF 防護 — enuchat 阻止對 localhost、私有 IP 和內部主機名的呼叫
  • 逾時 — 外部 API 呼叫有 5 秒逾時以防止卡住
  • OAuth2 Token 快取 — 存取 Token 安全快取並自動刷新
  • 租戶隔離 — 連線僅限於您的租戶,其他人無法存取

準備好連接您的 API 了嗎?

今天就開始將您的系統與 enuchat 整合。

免費開始