Définir l'ID utilisateur
GPTBots permet aux développeurs de définir un identifiant unique (UserId) pour les utilisateurs Agent sur différents canaux (par exemple, sites web, applications, LiveChat). Ce UserId permet l'association de l'identité utilisateur entre les canaux, facilitant la fusion d'identités, les requêtes métier via les Outils, ainsi que la gestion des attributs utilisateur et des historiques de conversation. Les scénarios d'application spécifiques pour UserId incluent :
- Outils : Lorsque l'Agent IA appelle des Outils pour effectuer des requêtes vers l'API métier du développeur, le UserId sera inclus dans l'en-tête, permettant d'identifier l'utilisateur.
- Attributs utilisateur : Après avoir défini le UserId, les informations d'attributs utilisateur seront associées à ce UserId.
- Historique des conversations : Après avoir défini le UserId, les historiques de conversation de l'utilisateur avec l'Agent seront attribués à ce UserId.
- Rappels d'événements : Après avoir défini le UserId, les rappels d'événements générés dans les iframes/widgets et transmis à GA4/webhooks contiendront cette information.
⚠️ L'ID utilisateur (UserId) doit être l'identifiant unique d'un utilisateur dans le système métier du développeur. Ce UserId peut être utilisé pour interroger des données métier telles que le niveau VIP de l'utilisateur, ses tags ou ses informations de commande.
Définir l'ID utilisateur
Cette API permet aux développeurs de définir l'ID utilisateur à l'aide d'une combinaison de anonymous ID + type de conversation + source ID pour gérer les informations d'identité utilisateur.
- Définir l'ID utilisateur dans le widget Bubble
- Définir l'ID utilisateur dans l'Iframe
- Définir l'ID utilisateur dans LiveChat
Méthode de requête
POST
Endpoint
https://api.${endpoint}/v1/user/set-userid
Requête
Exemple de requête
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_idpeut être lié à un maximum de 100anonymous_id. Si cette limite est dépassée, la liaison avec leupdateTimele plus ancien sera automatiquement supprimée.
Les développeurs peuvent obtenir l'anonymous ID de l'utilisateur courant via la variable globaleanonymous_id, et le type de conversation viaconversation_type.
En-têtes de la requête
| Champ | Type | Description |
|---|---|---|
| Authorization | Bearer ${token} | Utilisez Authorization: Bearer ${token} pour l'authentification. Veuillez obtenir votre token sur la page Clé API. |
| Content-Type | application/json | Type de données, valeur : application/json. |
Corps de la requête
| Paramètre | Type | Description | Obligatoire |
|---|---|---|---|
| user_id | string | ID utilisateur défini par le développeur | true |
| anonymous_ids | array | Liste des anonymous ID générés par la plateforme GPTBots, généralement basés sur des identifiants uniques de plateformes tierces. Récupérable via anonymous_id dans les variables globales de l'Agent. |
true |
| anonymous_ids[].anonymous_id | string | Anonymous ID | true |
| anonymous_ids[].conversation_type | string | Plateforme source de l'anonymous ID, équivalent à la plateforme dans 'Agent-Integration', comme WHATSAPP, LINE, etc. Récupérable via conversation_type dans l'aperçu utilisateur. |
true |
| anonymous_ids[].source_id | string | ID de canal provenant de la plateforme source de la conversation. Par exemple, si intégré à TELEGRAM avec deux bots TG, chaque bot aura son propre Source ID. |
false |
Description de la logique de liaison :
- La relation de liaison est déterminée de façon unique par la combinaison de
anonymous_id+conversation_type+source_id.- Si cette combinaison est déjà liée au
user_idcourant, seul le temps de liaison (updateTime) sera mis à jour.- Si cette combinaison n'est liée à aucun
user_id, une nouvelle relation de liaison sera créée.- Si cette combinaison est déjà liée à un autre
user_id, l'ancienne liaison sera d'abord supprimée, puis liée auuser_idcourant.- Si le nombre de liaisons pour un même
user_iddépasse 100, l'enregistrement de liaison avec leupdateTimele plus ancien sera automatiquement supprimé.
Réponse
Corps de la réponse
{
"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"
}
]
}
}
Réponse réussie
| Champ | Type | Description |
|---|---|---|
| user_id | string | ID utilisateur |
| anonymous_ids | array | Tous les anonymous ID actuellement liés à cet ID utilisateur et leurs types de conversation |
| anonymous_ids[].anonymous_id | string | Anonymous ID |
| anonymous_ids[].conversation_type | string | Valeur d'énumération du type de conversation, équivalent à la plateforme dans "Agent-Integration" |
| anonymous_ids[].source_id | string | ID de canal provenant de la plateforme source de la conversation. Par exemple, si intégré à TELEGRAM avec deux bots TG, chaque bot aura son propre Source ID. |
Réponse d'erreur
| Champ | Type | Description |
|---|---|---|
| code | int | Code d'erreur |
| message | string | Message d'erreur |
Codes de statut
| Code de statut | Description |
|---|---|
| 200 | Succès |
| 400 | Paramètres invalides |
| 401 | Non autorisé |
| 403 | Interdit |
| 500 | Erreur serveur |
