API接続

外部APIをenuchatに接続し、AIとルールがシステムからリアルタイムデータを取得できるようにします。

仕組み

API接続により、enuchatを予約エンジン、CRM、注文管理、在庫管理などのバックエンドシステムと統合できます。訪問者が質問すると、enuchatがAPIを呼び出して実際のデータを取得し、回答に含めることができます。

フロー

  1. 接続を設定 — APIのベースURLと認証
  2. エンドポイントを追加 — パステンプレートとレスポンスマッピングを持つ特定の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/泊」

AI回答:「205号室は来週、1泊€120でご利用いただけます。ご予約されますか?」

接続のセットアップ

ダッシュボードの設定 → API接続に移動してください。

1. 接続を作成

接続は1つの外部APIを表します。必要なもの:

フィールド説明
名前この接続のラベルホテル予約API
ベースURLAPIのルートURLhttps://api.hotel.com/v1
認証タイプ認証方法Bearerトークン、OAuth2など

2. 認証タイプ

なし

認証不要の公開API向け。

APIキー

ヘッダーまたはクエリパラメータとして静的キーを送信。

フィールド説明
キーAPIキーの値
ヘッダー名使用するヘッダー(デフォルト:X-Api-Key

キーは次のように送信されます:X-Api-Key: your_key_here

Bearerトークン

Authorizationヘッダーに静的トークンを送信。

次のように送信されます:Authorization: Bearer your_token_here

Basic認証

ユーザー名とパスワードをbase64エンコードして送信。

次のように送信されます:Authorization: Basic dXNlcjpwYXNz

OAuth 2.0(クライアントクレデンシャル)

アクセストークンを自動的に取得し、期限切れまでキャッシュ。Salesforce、Google、カスタムOAuthサーバーなどの最新のAPIに最適。

フィールド説明
トークンURLOAuthトークンエンドポイント(例:https://auth.example.com/oauth/token
クライアントIDOAuthクライアントID
クライアントシークレットOAuthクライアントシークレット
スコープスペース区切りのスコープ(例:read write

enuchatはトークンのライフサイクルを自動的に処理します — 最初の呼び出しで取得、期限切れまでキャッシュ、必要に応じて更新。

セキュリティ:すべての認証情報はlibsodiumを使用して保存時に暗号化されます。APIレスポンスでは決して公開されません — ダッシュボードではマスクされた値のみ表示されます。

エンドポイントの設定

各接続には複数のエンドポイントを設定できます — 実行したい特定のAPI呼び出しです。

フィールド説明
名前このエンドポイントのラベル空き状況確認
メソッド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用のコンテキスト(このエンドポイントが返すデータ)客室の空き状況と料金を返します

変数の補間

パス、クエリパラメータ、ボディテンプレートで{'{'}variableName}を使用。変数の出所:

  • セッション変数 — 以前のルール(SET_VARIABLEアクション)で設定
  • アクションパラメータ — CALL_APIルールアクションでハードコード

レスポンスマッピング

ドット記法でJSONレスポンスフィールドをセッション変数にマッピング:

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

// マッピング:
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トークン

エンドポイント: GET /orders/{'{'}orderId}data.statusorder_statusdata.etadelivery_etaにマッピング

ルール(AIタイプ):「訪問者が注文ステータスや配送について質問したとき」

アクション:

  1. CALL_API → 注文ステータスエンドポイント
  2. REPLY_AI → AIがorder_statusdelivery_etaを使って応答

結果:訪問者:「注文#4521はどこですか?」 — AI:「注文#4521は現在発送中で、木曜日までにお届け予定です。」

レシピ:リアルタイム料金

接続:料金API — https://pricing.example.com — APIキー

エンドポイント: GET /products/{'{'}productId}/pricepricecurrent_pricecurrencyprice_currencyにマッピング

ルール(スタティック): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

アクション:

  1. CALL_API → 料金エンドポイント
  2. REPLY_TEXT → 「現在の価格は{'{'}current_price} {'{'}price_currency}です。」

テスト

ルールで使用する前に、接続とエンドポイントを必ずテストしてください:

  • 接続をテスト — 認証が動作するか確認(OAuth2の場合:トークンを取得)
  • エンドポイントをテスト — サンプル変数で実際のAPI呼び出しを行い、レスポンスを表示
  • ルールをテスト(ドライラン) — ルールページで、ルールがマッチするかどうかとどのアクションが実行されるかをテスト

ヒント:まず接続をテストし、次に各エンドポイント、最後に完全なルールをテストしてください。これにより、各レベルで問題を特定できます。

セキュリティ

  • 保存時の暗号化 — すべての認証情報は保存前にlibsodiumで暗号化
  • 非公開 — APIレスポンスに復号化された認証情報は含まれず、マスクされた値のみ
  • SSRF保護 — enuchatはlocalhost、プライベートIP、内部ホスト名への呼び出しをブロック
  • タイムアウト — 外部API呼び出しにはハングを防ぐ5秒のタイムアウト
  • OAuth2トークンキャッシュ — アクセストークンは安全にキャッシュされ、自動的に更新
  • テナント分離 — 接続はテナントにスコープされ、他者からアクセス不可

APIを接続する準備はできましたか?

今すぐシステムとenuchatの統合を始めましょう。

無料で始める