ユーザーIDの設定
ユーザーIDの設定
GPTBots を利用することで、開発者は異なるチャネル(例:Webサイト、アプリ、LiveChat)のAgentユーザーに一意のユーザーID(UserId)を設定できます。このユーザーIDにより、異なるチャネル間でのユーザーの関連付けや、クロスチャネルでのユーザー識別子の統合が可能になります。また、Tools を介してビジネスデータの照会、ユーザー属性の維持、チャット履歴の管理などが実現できます。ユーザーIDの具体的な利用シーンは以下の通りです。
- Tools: AI Agent が Tools を呼び出して開発者のビジネスAPIにリクエストを送信する際、UserId はヘッダーに含まれており、開発者がユーザーを識別するのに役立ちます。
- ユーザー属性: 開発者が UserId を設定すると、ユーザー属性情報はこの UserId に紐付けられます。
- 会話ログ: 開発者が UserId を設定すると、ユーザーとAgentの会話ログはこの UserId に紐付けられます。
- イベントコールバック: 開発者が UserId を設定すると、iframe/ウィジェットで発生したイベントコールバックがGA4/webhookに報告される際に、この情報が含まれます。
⚠️ユーザーID(
UserId) は、開発者のビジネスシステム内でユーザーを一意に識別するIDである必要があります。この UserId を通じて、ユーザーのVIPレベル、ユーザータグ、ユーザーの注文など、ビジネス関連のデータ情報を照会できます。
ユーザーIDの設定
開発者は、匿名ID、会話タイプ、ソースIDを組み合わせてユーザーIDを設定し、ユーザーの識別情報を管理できます。
リクエスト方法
POST
エンドポイント
https://api.${endpoint}/v1/user/set-userid
リクエスト
リクエスト例
curl -X POST 'https://api.${endpoint}/v1/user/set-userid' \
-H 'Authorization: Bearer ${token}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": "67b58121035e5b152b0419ee",
"anonymous_ids": [
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "SHARE"
},
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "TELEGRAM",
"source_id": "bot_029392"
}
]
}'
curl -X POST 'https://api.${endpoint}/v1/user/set-userid' \
-H 'Authorization: Bearer ${token}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": "67b58121035e5b152b0419ee",
"anonymous_ids": [
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "SHARE"
},
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "TELEGRAM",
"source_id": "bot_029392"
}
]
}'
このコードブロックをポップアップで表示
1つの
user_idには最大100個のanonymous_idを紐付けることができます。制限を超えた場合、updateTimeが最も古いバインディングが自動的に削除されます。
開発者は、グローバル変数内のanonymous_idを引用することで現在のユーザーの匿名IDを取得でき、conversation_typeを通じて会話タイプ値を取得できます。
リクエストヘッダー
| フィールド | タイプ | 説明 |
|---|---|---|
| Authorization | Bearer ${token} | Authorization: Bearer ${token} を使用して呼び出し認証を行います。APIキーページでキーをトークンとして取得してください。 |
| Content-Type | application/json | データタイプ。値は application/json です。 |
リクエストボディ
| パラメータ | タイプ | 説明 | 必須 |
|---|---|---|---|
| user_id | string | 開発者が定義するユーザーID | true |
| anonymous_ids | array | GPTBotsプラットフォームによって生成された匿名IDのリスト。通常、サードパーティプラットフォームのユーザー一意識別子に基づいて生成されます。Agentのグローバル変数内のanonymous_idから取得できます。 |
true |
| anonymous_id | string | 匿名ID | true |
| conversation_type | string | 匿名IDのソースプラットフォーム。「Agent-連携」のプラットフォームと同等です。例:WHATSAPP、LINEなど。ユーザー概要のconversation_typeから取得できます。 |
true |
| source_id | string | 会話ソースプラットフォームのソースID。例:TELEGRAMと連携し、2つのTG Botを追加した場合、各Botは独自のSource IDを持ちます。 |
false |
バインディングロジックの説明:
- バインディング関係は、
anonymous_id+conversation_type+source_idの組み合わせによって一意に決定されます。- この組み合わせが既に現在の
user_idにバインドされている場合、バインディング時間(updateTime)のみが更新されます。- この組み合わせがどの
user_idにもバインドされていない場合、新しいバインディング関係が作成されます。- この組み合わせが他の
user_idに既にバインドされている場合、まず古いバインディング関係が解除され、その後現在のuser_idにバインドされます。- 単一の
user_idのバインディング数が100を超えた場合、updateTimeが最も古いバインディングレコードが自動的に削除されます。
レスポンス
レスポンスボディ
{
"code": 0,
"message": "OK",
"data": {
"user_id": "67b58121035e5b152b0419ee",
"anonymous_ids": [
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "SHARE",
"source_id": null
},
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "TELEGRAM",
"source_id": "bot_029392"
}
]
}
}
{
"code": 0,
"message": "OK",
"data": {
"user_id": "67b58121035e5b152b0419ee",
"anonymous_ids": [
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "SHARE",
"source_id": null
},
{
"anonymous_id": "6a0dnyvi3jc32flk7enw",
"conversation_type": "TELEGRAM",
"source_id": "bot_029392"
}
]
}
}
このコードブロックをポップアップで表示
成功レスポンス
| フィールド | タイプ | 説明 |
|---|---|---|
| user_id | string | ユーザーID |
| anonymous_ids | array | このユーザーIDに現在バインドされているすべての匿名IDとその会話タイプ |
| anonymous_ids[].anonymous_id | string | 匿名ID |
| anonymous_ids[].conversation_type | string | 会話タイプの列挙値。「Agent-連携」のプラットフォームと同等です。 |
| anonymous_ids[].source_id | string | 会話ソースプラットフォームのチャネルID。例:TELEGRAMと連携し、2つのTG Botを追加した場合、各Botは独自のSource IDを持ちます。 |
エラーレスポンス
| フィールド | タイプ | 説明 |
|---|---|---|
| code | int | エラーコード |
| message | string | エラーメッセージ |
ステータスコード
| ステータスコード | 説明 |
|---|---|
| 200 | 成功 |
| 400 | パラメータエラー |
| 401 | 未認証 |
| 403 | 権限不足 |
| 500 | サーバーエラー |
