Configurar ID de usuario
GPTBots permite a los desarrolladores configurar un ID de usuario único (UserId) para usuarios del agente en diferentes canales (p. ej., sitios web, aplicaciones, LiveChat). Este UserId habilita la asociación de identidad de usuario entre canales, lo que facilita la fusión de identidades entre canales, las consultas del negocio mediante herramientas (Tools) y el mantenimiento de atributos de usuario y registros de chat. Entre los escenarios de aplicación específicos para UserId se incluyen:
- Tools: Cuando el agente de IA llama a
Toolspara realizar solicitudes a la API de negocio del desarrollador, elUserIdse incluirá en la cabecera HTTP, lo que permite identificar al usuario. - Atributos de usuario: Tras configurar el
UserId, la información de atributos de usuario se asociará a esteUserId. - Registros de conversación: Tras configurar el
UserId, los registros de conversación del usuario con el agente se atribuirán a esteUserId. - Callbacks de eventos: Tras configurar el
UserId, los callbacks de eventos generados en iframes/widgets y reportados a GA4/webhooks incluirán esta información.
⚠️ El ID de usuario (
UserId) debe ser el identificador único de un usuario dentro del sistema de negocio del desarrollador. EsteUserIdse puede utilizar para consultar datos de negocio como el nivel VIP del usuario, las etiquetas de usuario y la información de pedidos.
API para configurar el ID de usuario
Esta API permite configurar el ID de usuario mediante una combinación de ID anónimo + tipo de conversación + ID de origen para gestionar la información de identidad de usuario.
- Configurar ID de usuario en Bubble Widget
- Configurar ID de usuario en Iframe
- Configurar ID de usuario en LiveChat
Método de solicitud
POST
Endpoint
https://api.${endpoint}/v1/user/set-userid
Solicitud
Ejemplo de solicitud
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"
}
]
}'
Un
user_idse puede vincular a un máximo de 100anonymous_id. Si se supera este límite, el vínculo con elupdateTimemás antiguo se eliminará automáticamente.
Se puede obtener el ID anónimo del usuario actual consultandoanonymous_iden las variables globales, y el tipo de conversación medianteconversation_type.
Cabeceras de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${token} | Utilizar Authorization: Bearer ${token} para la autenticación. Se recomienda obtener el token en la página «API Key». |
| Content-Type | application/json | Tipo de datos; el valor es: application/json. |
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción | Obligatorio |
|---|---|---|---|
| user_id | string | ID de usuario definido por el desarrollador | true |
| anonymous_ids | array | Lista de IDs anónimos generados por la plataforma GPTBots, normalmente basada en identificadores únicos de plataformas de terceros. Se puede obtener desde anonymous_id en las variables globales del agente. |
true |
| anonymous_ids[].anonymous_id | string | ID anónimo | true |
| anonymous_ids[].conversation_type | string | Plataforma de origen del ID anónimo; equivale a la plataforma en «Agent-Integration», como WHATSAPP, LINE, etc. Se puede obtener desde conversation_type en la visión general de usuario. |
true |
| anonymous_ids[].source_id | string | ID de canal de la plataforma de origen de la conversación. Por ejemplo, si se integra con TELEGRAM y se añaden dos bots de TG, cada bot tendrá su propio Source ID. |
false |
Descripción de la lógica de vinculación:
- La relación de vinculación queda determinada de forma única por la combinación de
anonymous_id+conversation_type+source_id.- Si esta combinación ya está vinculada al
user_idactual, solo se actualizará el momento de vinculación (updateTime).- Si esta combinación no está vinculada a ningún
user_id, se creará una nueva relación de vinculación.- Si esta combinación ya está vinculada a otro
user_id, primero se desvinculará la relación anterior y, a continuación, se vinculará aluser_idactual.- Si el número de vínculos para un único
user_idsupera 100, el registro de vinculación con elupdateTimemás antiguo se eliminará automáticamente.
Respuesta
Cuerpo de la respuesta
{
"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"
}
]
}
}
Respuesta correcta
| Campo | Tipo | Descripción |
|---|---|---|
| user_id | string | ID de usuario |
| anonymous_ids | array | Todos los IDs anónimos actualmente vinculados a este ID de usuario y sus tipos de conversación |
| anonymous_ids[].anonymous_id | string | ID anónimo |
| anonymous_ids[].conversation_type | string | Valor de enumeración del tipo de conversación; equivale a la plataforma en «Agent-Integration» |
| anonymous_ids[].source_id | string | ID de canal de la plataforma de origen de la conversación. Por ejemplo, si se integra con TELEGRAM y se añaden dos bots de TG, cada bot tendrá su propio Source ID. |
Respuesta de error
| Campo | Tipo | Descripción |
|---|---|---|
| code | int | Código de error |
| message | string | Mensaje de error |
Códigos de estado
| Código de estado | Descripción |
|---|---|
| 200 | Correcto |
| 400 | Parámetros no válidos |
| 401 | No autorizado |
| 403 | Prohibido |
| 500 | Error del servidor |
