User Overview
A user refers to an end user who interacts with an Agent. GPTBots enables developers to assign unique identity IDs to different users. Using this user ID (UserId
), user identities can be linked across various channels, supporting cross-channel identity unification, business queries via Tools, and management of user attributes and chat histories.
Definitions
User
A user is an end user who interacts with an Agent.
User ID (user_id
)
A unique identifier assigned to end users by enterprise developers. Through the API, developers can set a UserId
for an anonymous_id
. For usage scenarios and advanced applications of UserId, see Set User ID.
- The
user_id
takes precedence over theanonymous_id
. - Multiple
anonymous_id
values can be associated with a singleuser_id
simultaneously.
Anonymous ID (anonymous_id
)
When users interact with an Agent via third-party platforms (such as Telegram, WhatsApp, LINE, etc.), GPTBots uses the unique identifier from that platform as the anonymous_id
. For details on how anonymous IDs are generated, see [Anonymous ID Generation Logic](## Anonymous ID Generation Logic).
Third-party Platforms
GPTBots currently supports Agent integration with various third-party platforms, including Intercom, Webchat, LiveChat, Telegram, WhatsApp, and more.
Conversation ID (conversation_id
)
The conversation ID (conversation_id
) is a unique identifier generated based on the Agent, conversation type, and user_id
(or anonymous_id
). A conversationID
serves as the smallest unit for isolating different business scenarios and typically contains multiple message IDs.
conversationID
automatically expires after 60 minutes, except for those generated via the API channel, which do not expire.- When a
conversationID
expires on third-party platforms and widget channels, a newconversationID
is generated to start a new conversation.
Message ID (message_id
)
The message ID, or messageID
, identifies a single message exchange between an Agent and a user, representing the smallest unit of conversation.
messageID
is generated by the GPTBots platform and cannot be customized by developers.messageID
belongs to aconversationID
, with oneconversationID
typically containing multiplemessageIDs
.
Conversation Type
Conversation Type (conversation_type
) is used to identify the scenario in which a user initiates a conversation, such as Workspace-Workflow, WhatsApp, API, Workspace-Search, etc.
Conversation ID Generation Logic
When users initiate conversations with an Agent through third-party platforms, the system generates an anonymous_id
based on the user's platform and automatically creates a conversationID
from this anonymous_id
to contain one round of dialogue between the user and Agent.
- When using the API, developers must first generate a
conversationID
and pass it as a parameter before starting a conversation with an Agent. - For non-API channels, GPTBots automatically generates the
conversationID
. The specific business process is illustrated below:
Anonymous ID Value Logic
Source Platform | Anonymous ID Logic | Corresponding Platform Field | Description |
---|---|---|---|
Telegram | Telegram User ID | tg_user_id | Unique numeric identifier for a Telegram user. |
Telegram Group Chat | Telegram chatID + Telegram User ID | tg_chat_id + tg_user_id | Combination of group chat session ID and user ID, uniquely identifying user interactions within a group. |
LINE | LINE User ID | line_user_id | Unique identifier for a LINE user. |
LiveChat | LiveChat threadId | lc_thread_id | Unique identifier for a LiveChat conversation thread. |
Slack | Slack User ID | slack_user_id | Unique identifier for a Slack user. |
Slack Public Channel | Slack (teamId + channelId + userId) | slack_team_id + slack_channel_id + slack_user_id | Combination of Slack team ID, public channel ID, and user ID, uniquely identifying users in public channels. |
Intercom | Intercom User ID | intercom_user_id | Unique identifier for an Intercom user. |
DingTalk | DingTalk senderId | dd_user_id | Unique identifier for a DingTalk user. |
DingTalk Group Chat | DingTalk (senderId + group chat ID) | dd_chat_id + dd_senderId | Combination of sender's unique ID and group chat ID, used to distinguish users in group chats. |
WhatsApp by Meta | WhatsApp User ID | wa_user_id | Unique identifier for a WhatsApp user, usually based on the user's phone number (e.g., international format with @c.us suffix). |
WhatsApp by EngageLab | WhatsApp User ID | wa_user_id | Unique identifier for a WhatsApp user, usually based on the user's phone number (e.g., international format with @c.us suffix). |
Discord | Discord User ID | discord_user_id | Unique numeric identifier for a Discord user. |
Instagram senderId | instagram_user_id | Unique identifier assigned to the sender (Instagram user) by Instagram. | |
senderId | facebook_user_id | Unique identifier assigned to the sender (Facebook user) by Facebook. | |
Sobot | Sobot memberId | sobot_memberId | Unique Sobot user ID. |
Sobot Group Chat @User | Sobot (guildId + channelId + memberId) | guildId + channelId + memberId | Combination of guild ID, channel ID, and member ID, uniquely identifying user interactions in Sobot group chats. |
Intercom | senderId | intercom_senderId | Intercom user ID. |
Zoho Sales IQ | Zoho conversationId | zoho_sales_iq_conversationId | Unique conversation identifier in Zoho Sales IQ. |
WeChat Customer Service | WeChat Customer Service User ID | wechat_customer_service_user_id | Unique user ID for WeChat Customer Service. |
Anonymous ID Logic for Built-in GPTBots Channels
Integration Channel | Anonymous ID Logic | Description |
---|---|---|
API | No anonymous ID | Users can only generate conversation IDs using user_id. |
Workspace | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
Share | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
Iframe | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
AI Search | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
AI Search (iframe) | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
Widget | anonymous_id = Browser Fingerprint ID | Random ID generated based on browser fingerprint. A new ID may be generated when clearing cache or using incognito mode. |
When a user is logged in to the GPTBots platform, the system automatically sets their GPTBots Account ID as the
user_id
and associates it with theanonymous_id
(browser fingerprint ID).
Conversation Types
Conversation Type (conversation_type
) is used to identify the scenario in which a user initiates a conversation. You can use the conversation_type
field value to filter log data by scenario.
Conversation Type | Field Value | Description |
---|---|---|
All | ALL | All conversation types |
Workspace-Search | C | Conversations generated by Workspace Agent |
Workspace-Agent | CHAT | Conversations generated by Workspace Search |
Workspace-Workflow | C_WORKFLOW | Conversations generated by Workspace Workflow |
Workspace-Apps | C_APPS | Conversations generated by various AI apps in Workspace Market |
API | API | Conversations generated via API calls |
Iframe | EMBED | Conversations generated via Iframe |
Widget | WIDGET | Conversations generated via Widget |
AI Search | AI_SEARCH | Conversations generated via AI Search |
Share | SHARE | Conversations generated via Share |
WhatsApp by Meta | WHATSAPP_META | Conversations generated via WhatsApp by Meta |
WhatsApp by EngageLab | WHATSAPP_ENGAGELAB | Conversations generated via WhatsApp by EngageLab |
DingTalk Bot | DINGTALK | Conversations generated via DingTalk Bot |
Discord | DISCORD | Conversations generated via Discord |
Slack | SLACK | Conversations generated via Slack |
Zapier | ZAPIER | Conversations generated via Zapier |
WeChat Customer Service | WXKF | Conversations generated via WeChat Customer Service |
Telegram | TELEGRAM | Conversations generated via Telegram |
LiveChat | LIVECHAT | Conversations generated via LiveChat |
LINE | LINE | Conversations generated via LINE. If there are multiple LINE channels, there will be multiple channel options. |
Conversations generated via Instagram | ||
Conversations generated via Facebook | ||
Sobot | SO_BOT | Conversations generated via Sobot |
Zoho Sales IQ | ZOHO_SALES_IQ | Conversations generated via Zoho Sales IQ |
Intercom | INTERCOM | Conversations generated via Intercom |
⚠️ Note: The field values in the table can be used as filter conditions when using the Get Conversation List API.
For third-party platforms like LINE and Telegram that support multiple channels, the "Agent-Log" allows filtering by secondary conversation types.
The field values in the table can also be used as the value for theanonymous_id_source
field in the Update User ID API.