logo
Development
検索
ユーザー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

バインディングロジックの説明:

  1. バインディング関係は、anonymous_id + conversation_type + source_id の組み合わせによって一意に決定されます。
  2. この組み合わせが既に現在のuser_idにバインドされている場合、バインディング時間(updateTime)のみが更新されます。
  3. この組み合わせがどのuser_idにもバインドされていない場合、新しいバインディング関係が作成されます。
  4. この組み合わせが他のuser_idに既にバインドされている場合、まず古いバインディング関係が解除され、その後現在のuser_idにバインドされます。
  5. 単一の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 サーバーエラー