有人対応サービス(Manual Service)
開発者がWebhook を手動サービスの接続方式として選択した場合、まず自分のサーバー環境に Webhook サービスを構築する必要があります。
開発者は、有人対応リクエスト、ユーザーメッセージ、およびオペレーターからの返信メッセージを受信するために、仕様に従って以下の3つのインターフェースを提供する必要があります
また、GPTBots 側も、カスタマーサービスの返信メッセージと会話の終了指示を受け取るための2つのインターフェースを提供しています。
会話IDの作成
ユーザーからの有人対応リクエストメッセージを送信するためのconversation_id
を作成する際に使用します。
リクエストメソッド
POST
エンドポイント
https://your_domain/conversation/establish
リクエスト例
curl -X POST 'https://YOUR_DOMAIN/human/service/conversation/establish' \
-H 'Content-Type: application/json' \
-d '{
"body": [
{
"text": "human service",
"message_type": "QUESTION"
},
{
"text": "",
"message_type": "ANSWER"
}
],
"timestamp": 1742265090895,
"email": "bob@gmail.com",
"conversation_id": "67d8db020fa31d1ef64f53dg",
"bot_id": "665d88b03ce2b13cf2d573454",
"user_info": {
"phone": null,
"email": "bob@gmail.com",
"user_id": "KDslas",
"anonymous_id": "652face5184b30540a6ea7fe"
}
}'
リクエストパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
conversation_id | String | 会話ID。カスタマーサービスの返信インターフェースでGPTBotsに渡す必要があります。 |
timestamp | Long | タイムスタンプ |
String | ユーザーのメールアドレス。一部の有人対応システムでは、適切なサービス提供のためにメールが必要です。 | |
bot_id | String | エージェント(旧ボット)のID |
body | List<Object> | メッセージ本文 |
body.message_type | String | メッセージの種類、QUESTION/ANSWER |
body.text | String | ユーザーがカスタマーサービスに対して送信する質問およびそのコンテキスト |
user_info | Object | ユーザー情報 |
user_info.phone | String | ユーザーの電話番号。現在は WhatsApp 経由で有人対応に切り替える場合のみ取得可能です。 |
user_info.email | String | ユーザーのメールアドレス。ユーザーがメールアドレスを入力した場合に取得可能。 |
user_info.user_id | String | ユーザーID。企業の開発者が定義した固有の識別子で、匿名IDに対して開発者が設定します。 |
user_info.anonymous_id | String | 匿名ID。API以外のチャネルでユーザーがエージェントと会話を始めた場合、システムがチャネル情報を含む匿名IDを生成します。 |
- iframe/共有リンク/バブルウィジェット 経由で有人対応を開始する場合、ユーザーはメールアドレスの入力が必要です。ただし、開発者がユーザーのメールアドレスをカスタマイズ設定することで、入力を省略させることも可能です。
- WhatsApp/Telegram/LiveChat などの外部プラットフォーム経由で有人対応をリクエストする場合、デフォルトで使用されるメールアドレスは support@gptbots.ai です。なお、LiveChatでは開発者がユーザーのメールアドレスをカスタマイズ可能です。
- API 経由で有人対応をリクエストする場合、
レスポンス
パラメータ | タイプ | 説明 |
---|---|---|
code | Int | レスポンスコード |
message | String | 詳細 |
チャットインターフェース
作成したconversation_id
を使用して、ユーザーのメッセージを有人対応サービスに送信します。
リクエストメソッド
POST
エンドポイント
https://your_domain/chat
リクエストのパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
conversation_id | String | 作成された conversation_id を使用して、ユーザーのメッセージを有人対応サービスに送信します |
timestamp | Long | タイムスタンプ |
body | String | ユーザーのメッセージ |
レスポンス
パラメータ | タイプ | 説明 |
---|---|---|
code | Int | レスポンスコード |
message | String | 詳細 |
会話終了インターフェース
ユーザーとの会話がタイムアウトした場合や、エージェントユーザーが自発的に会話を終了した場合に、このインターフェースが呼び出されて会話を終了します。
リクエストメソッド
POST
エンドポイント
https://your_domain/conversation/close
リクエストヘッダー
フィールド | タイプ | 説明 |
---|---|---|
Authorization | Bearer ${API Key} | 認証には Authorization: Bearer ${API Key} を使用してください。トークンはAPIキーページから取得できます。 |
Content-Type | application/json | データの形式は application/json を設定してください。 |
リクエストのパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
conversation_id | String | 会話ID。カスタマーサービスの返信インターフェースで GPTBots に渡す必要があります。 |
timestamp | Long | タイムスタンプ |
type | String | 終了タイプ。TIMEOUT(タイムアウトによる終了)または USER_CLOSED(ユーザーによる手動終了)から選びます。 |
レスポンス
パラメータ | タイプ | 説明 |
---|---|---|
code | Int | レスポンスコード |
message | String | 詳細 |
カスタマーサービスメッセージの受信
開発者がwebhook
を有人対応の連携方法として選択した場合、GPTBots は Webhook エンドポイントからの有人カスタマーサービス返信メッセージを受信するためのインターフェースを提供し、そのメッセージ内容をユーザーに送信します。
リクエストメソッド
POST
エンドポイント
https://api-${endpoint}.gptbots.ai/v1/human/message/receive
リクエストヘッダー
フィールド | タイプ | 説明 |
---|---|---|
Authorization | Bearer ${API Key} | 認証には Authorization: Bearer ${API Key} を使用してください。トークンはAPIキーページから取得できます。 |
Content-Type | application/json | データの形式は application/json を設定してください。 |
リクエストのパラメータ
パラメータ | タイプ | 説明 | 必須 |
---|---|---|---|
conversation_id | String | 会話ID。会話作成インターフェースおよびチャットインターフェースで渡されるもので、そのまま引き継いで渡します。 | 必須 |
timestamp | Long | タイムスタンプ | 必須 |
body | String | 有人対応サービスからの返信内容 | 必須 |
レスポンス
パラメータ | タイプ | 説明 |
---|---|---|
code | Int | レスポンスコード |
message | String | 詳細 |
有人対応サービスによる会話の終了
開発者が webhook
を有人対応サービスの連携方法として選択した場合、 GPTBots が提供する有人対応サービスは必要に応じて能動的に会話を終了することができます。
会話が終了すると、ユーザーが再度有人カスタマーサービスの会話を開始しない限り、有人対応サービスからメッセージを受け取ることはありません。
リクエストメソッド
POST
エンドポイント
https://api-${endpoint}.gptbots.ai/v1/human/close
リクエストヘッダー
フィールド | タイプ | 説明 |
---|---|---|
Authorization | Bearer ${API Key} | 認証には Authorization: Bearer ${API Key} を使用してください。トークンはAPIキーページから取得できます。 |
Content-Type | application/json | データの形式は application/json を設定してください。 |
リクエストパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
conversation_id | String | 会話ID。カスタマーサービスの返信インターフェースで GPTBots に渡す必要があります。 |
timestamp | Long | タイムスタンプ |
レスポンス
パラメータ | タイプ | 説明 | 必須 |
---|---|---|---|
conversation_id | String | 会話ID。会話作成インターフェースおよびチャットインターフェースで渡されるもので、そのまま引き継いで渡します。 | 必須 |
timestamp | Long | タイムスタンプ | 必須 |