APIドキュメント

統合ガイド

あなたのウェブサイト、アプリ、ワークフロー、顧客との会話をBobに接続し、管理されたAPI、ウィジェット、ウェブフック、フロントオフィスの自動化を通じて実現します。

クイックスタート

数ステップで Bob をあなたのウェブサイトやフロントオフィスのワークフローに接続しましょう。

1

テナントを作成または選択する

この統合のためにウェブサイト、ウィジェット、およびAPIの資格情報を所有するテナントを選択してください。

2

資格情報を生成する

Customer Portal → Widget Setupからテナントスコープのウィジェットキーを作成するか、サーバーサイドの自動化のためにカスタマージェイダブリューTを使用してください。

3

ウィジェットをインストールするか、APIに電話してください。

フロントエンドチャット用のウェブサイトウィジェットまたはAPIをサーバーサイドワークフローに使用してください。

4

ブラウザに対応したテスト

ライブブラウザから統合を確認してください。モックリクエストだけではありません。

ウィジェット埋め込み(カスタマーポータルから)
<!-- Tenant-scoped bundle — replace YOUR_TENANT_UUID after onboarding -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
確認が取れ次第、準備完了です。 After embed, open your site in a real browser and confirm Bob loads. Use システムステータス チャットが接続に失敗した場合。

セットアップ

保護された API を呼び出したり、プロダクションドメインにウィジェットを公開する前に、これらの前提条件を完了してください。

External integrations connect systems outside the platform to Bob. Day-to-day front-office work happens in the カスタマーポータル.

  • Tenant created
  • Business profile completed
  • Website or channel configured
  • API credentials generated
  • Allowed origins configured
  • Test conversation completed
環境目的どこで設定するか
生産ライブ顧客トラフィックカスタマーポータル → ウィジェット設定
ステージング / プレビュープレローンチ検証許可されたオリジン + テストドメイン
自動化サーバーサイドウェブフックとAPIsポータルログインからの顧客JWT

認証

保護された API リクエストには、テナントスコープの資格情報が必要です。プライベートキーはサーバー側に保持し、ブラウザコードで決して公開しないでください。

重要: テナント API キーや顧客のJWTをクライアント側のコードに露出させないでください。保護された API リクエストにはサーバーサイドの呼び出しを使用してください。
1

資格情報を生成する

必要です

Sign in to the Customer Portal and create widget keys in Widget Setup, or obtain a customer JWT via POST /api/customer/auth/login 自動化のために。

2

認証ヘッダーを送信してください。

Server-to-server automation uses Authorization: Bearer <token> JSONボディを使用して。

例のリクエスト
curl https://office16852.com/api/customer-portal/widget-code \
  -H "Authorization: Bearer YOUR_CUSTOMER_JWT" \
  -H "Content-Type: application/json"
3

認証エラーを処理する

統合レイヤーに構造化されたエラーを返し、適切な場合にのみ再試行してください。

ステータス意味
401資格情報が不足しているか無効です。
403資格情報は有効ですが、権限が不足しています。
429レート制限を超えました
POST /api/customer/auth/login

カスタマーポータルログイン。認証された統合呼び出しのためのJWTを返します。

POST /api/auth/login

ミッションコントロールオペレーターログイン(プラットフォーム管理者専用)。

チャット & 会話

Bob は、発信者のコンテキストに応じて、同一オリジンの匿名、クロスオリジンのウィジェット、および認証されたミッションコントロールの3つのチャットパスを提供します。

3つのパス: (1) Public same-origin → POST /api/chat. (2) Cross-origin embed → POST /api/widget/chat with X-Widget-Key. (3) Mission Control → POST /api/chat/message (要 chat.manage; 匿名の公共取得には使用できません)。
POST /api/chat

自分のドメインでの公開匿名チャット。本文:メッセージ、セッションID、オプションのビジネスID。

POST /api/widget/chat

クロスオリジンウィジェットチャット。ヘッダー: X-Widget-Key, Content-Type。オリジンは許可リストに含まれている必要があります。

POST /api/widget/chat/audio

ウィジェット音声入力のための音声認識。チャットと同じキーおよびオリジンルール。

POST /api/chat/session

Mission Controlにログインした際にセッションを作成します(RBAC + CSRFによるクッキーの保護)。

POST /api/chat/message

認証された管理者UIが送信します (chat.manage)。匿名で呼び出すと401が返されます。

GET /api/chat/history/:session_id

会話履歴(認証済み)。

公開同一オリジン(匿名)
const response = await fetch('/api/chat', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    session_id: sessionId,
    message: userMessage,
    business_id: 'your-tenant-slug'
  })
});
const data = await response.json();

ウィジェットのインストール

訪問者に直接Bobを利用可能にしたい場合は、サイトにウィジェットをインストールしてください。テナント固有の設定は、カスタマーポータル → ウィジェット設定から行えます。

After onboarding, your embed code is in the Customer Portal under ウィジェットの設定. The publishable widget key (pk_live_…) はそこに設定されています - 静的HTMLに埋め込まれていません。

HTML
<!-- Tenant-scoped bundle from Customer Portal → Widget Setup -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
アイテム目的
スクリプトパス内のテナントUUIDあなたのウィジェットバンドルを特定しますウィジェットのセットアップから
公開可能なウィジェットキークロスオリジンチャットを認証しますpk_live_…(ポータルで設定、HTMLでは設定されていません)
許可されたオリジンウィジェットチャットを呼び出すことが許可されているドメインhttps://your-site.com
ブラウザ対応: 本番リリース前に、許可された各オリジンで実際のブラウザでウィジェットを確認してください。
GET /api/customer-portal/widget-code

ペースト可能な埋め込みマークアップを返します。顧客のJWT(config.read)が必要です。

ダッシュボードウェブフック

アウトバウンドウェブフックを使用して、テナント内の会話、ハンドオフ、リード、またはワークフローイベントが変更されたときに更新を受け取ります。

受信プロバイダーWebhook (Stripe, telephony carriers, etc.) are platform infrastructure—not covered here. This section documents あなたの アウトバウンドサブスクリプションエンドポイントのみ。
イベント説明
conversation.escalated人間の引き継ぎが要求されました
conversation.takeover.startedエージェントがライブ制御を取得
conversation.takeover.releasedBobに返却
lead.created新規インテーク取得
appointment.bookedスケジュール確認
billing.payment_failedアカウントリスクシグナル
billing.payment_recovered支払い復旧
webhook.testポータルからの接続チェック
*上記すべてのイベント
1

サブスクリプションを作成する

カスタマーポータル管理者JWTを使用します。POST URL、イベント、および説明を/api/webhooks/subscriptionsに送信します。

JSONボディ
{
  "url": "https://your-app.com/webhooks/bob",
  "events": ["lead.created", "conversation.escalated"],
  "description": "CRM intake"
}
2

署名を確認する

ペイロードを信頼する前に、サーバー側でウェブフック署名を検証してください。

配信ペイロード(例示)
{
  "event": "lead.created",
  "tenantId": "tenant_...",
  "conversationId": "conv_...",
  "createdAt": "2026-06-19T12:00:00Z",
  "data": {}
}
GET /api/webhooks/subscriptions

サブスクリプション一覧(シークレットは返されません)。

POST /api/webhooks/subscriptions

サブスクリプションを作成します。署名シークレットはレスポンスに一度だけ表示されます。

DELETE /api/webhooks/subscriptions/:id

サブスクリプションを削除。

POST /api/webhooks/subscriptions/:id/test

Webhook.testの配信をキューに追加します。

GET /api/webhooks/deliveries

デッドレター行を含む配信ログ。

ペルソナオートメーション

ペルソナ自動化は、Bobがあなたのビジネスをどのように表現するか、いつエスカレーションするか、そして境界をどのように扱うかを制御します。

ほとんどの顧客はBobの声とトーンを次で設定 カスタマーポータル. API routes below require an authenticated token with persona.manage.

ビジネスボイス

トーン、挨拶スタイル、ブランドに沿った応答。

エスカレーション行動

Bobが人間に引き渡すとき、またはタスクを作成するとき。

トピックの境界

承認されたトピックと安全な拒否パターン。

ワークフロープリファレンス

部門ルーティングと自動化フック。

GET /api/personas

認証されたテナントのペルソナをリストアップします。

GET /api/personas/:id

IDでペルソナを1件取得。

POST /api/personas

名前: マーケティングマネージャー トーン: プロフェッショナル、親しみやすい システムプロンプト: 「私たちのB2B SaaSソリューションがどのようにビジネスを成長させるかを伝え、顧客のニーズに応えるコンテンツを作成してください。」

PUT /api/personas/:id

既存ペルソナを更新。

ペルソナ設定は、プロダクションの変更前にテストする必要があります。ブラウザの証明とレビューされた会話を使用して、行動を検証してください。

プランと価格 APIs

公開された価格表エンドポイントは、マーケティングサーフェスとチェックアウトを強化します。請求管理APIは公開されていません。

機能StarterProエンタープライズ
定価(USD/月)$79$249$899
含まれる AI クレジット / 月15,00075,000250,000
チーム席最大3最大10無制限
標準統合1310
サポートメール優先専任
GET /api/pricing/marketing-cards

マーケティングとチェックアウト用プランカード(公開、認証なし)。

GET /api/pricing/snapshot

公開安全な価格表スナップショット(プロバイダーコストフィールドなし)。

プランと請求管理APIはプライベートで、承認された統合を通じてのみ利用可能です—この公開ガイドには記載されていません。

Health & Status

健康とステータス情報を使用して、可用性を確認し、上流の依存関係を監視し、統合の問題をトラブルシューティングします。

GET /api/health

モニターとロードバランサー向け軽量ヘルスプローブ。

GET /api/health/public

システムステータスページによって消費される公開ステータスペイロード。

システムステータスを表示 →

統合の例

一般的な統合パターンのための実用的な出発点。

HTML

ウェブサイトチャットウィジェット

マーケティングサイトまたは顧客ポータルに Bob を追加します。

例を見る →
JavaScript

サーバーサイドの会話 API

あなたのアプリからの同一オリジンの匿名チャット。

例を見る →
Node.js

Webhookリスナー

署名を確認し、リードを作成します。

例を見る →
ワークフロー

CRM ハンドオフフロー

会話のエスカレーションイベントに反応します。

例を見る →
自動化

リードキャプチャーワークフロー

lead.created にサブスクライブして、インテークを行います。

例を見る →
サポート

サポートエスカレーション

エスカレーションとテイクオーバーイベントを監視します。

例を見る →
クロスオリジンウィジェットフェッチ
const response = await fetch('https://office16852.com/api/widget/chat', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Widget-Key': 'pk_live_...',
    'Origin': 'https://your-customer-site.com'
  },
  body: JSON.stringify({ session_id: sessionId, message: userMessage })
});

アーキテクチャの概要

Office 168/52は、オペレーター向けのカスタマーポータル、プラットフォーム管理のためのミッションコントロール、そしてあなたのスタックのための公開インテグレーションサーフェスを備えたブラウザベースのガバナンスされたフロントオフィスです。

ウェブサイト / アプリ
Widget または API クライアント
Office 168/52 ゲートウェイ
テナントコンテキスト
Bob エージェントランタイム
知識とトレーニング
ヒューマンハンドオフ / ダッシュボード
ウェブフック / 外部システム

Customer Portal and Mission Control APIs are session-backed UI routes—not published here. For a concise platform diagram, see アーキテクチャ概要プルーフセンター.