Benutzer-ID festlegen
GPTBots ermöglicht Entwickler:innen, eine eindeutige Benutzer-ID (UserId) für Agent-Nutzer:innen kanalübergreifend festzulegen – etwa auf Websites, in Apps oder im LiveChat. Diese UserId erleichtert die kanalübergreifende Zuordnung und Zusammenführung von Nutzeridentitäten, Geschäftsanfragen über Tools sowie die Pflege von Nutzerattributen und Chatprotokollen. Typische Anwendungsszenarien für die UserId sind:
- Tools: Ruft der KI-Agent Tools auf, um Anfragen an die Business-API der Entwickler:innen zu stellen, wird die UserId im Header mitgesendet, sodass die Nutzeridentifikation möglich ist.
- Nutzerattribute: Nach dem Festlegen der UserId werden Nutzerattribut-Informationen mit dieser UserId verknüpft.
- Konversationsprotokolle: Nach dem Festlegen der UserId werden die Chatprotokolle mit dem Agent dieser UserId zugeordnet.
- Event-Callbacks: Nach dem Festlegen der UserId enthalten Event-Callbacks, die innerhalb von iframes/Widgets generiert und an GA4/Webhooks gemeldet werden, diese Information.
⚠️ Die Benutzer-ID (UserId) sollte der eindeutige Identifikator einer:s Nutzer:in im Geschäftssystem der Entwickler:innen sein. Mit dieser UserId können Geschäftsdaten wie VIP-Level, Nutzer-Tags und Bestellinformationen abgefragt werden.
Benutzer-ID festlegen
Mit dieser API können Entwickler:innen die Benutzer-ID mithilfe einer Kombination aus anonymous ID + conversation type + source ID setzen, um Identitätsinformationen zu verwalten.
- Benutzer-ID im Bubble Widget festlegen
- Benutzer-ID im Iframe festlegen
- Benutzer-ID in LiveChat festlegen
Anfragemethode
POST
Endpoint
https://api.${endpoint}/v1/user/set-userid
Anfrage
Beispielanfrage
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"
}
]
}'
Eine
user_idkann mit maximal 100anonymous_ids verknüpft werden. Wird dieses Limit überschritten, wird die Bindung mit der frühestenupdateTimeautomatisch entfernt.
Entwickler:innen können die aktuelle anonyme ID des:der Nutzer:in über die globale Variableanonymous_idund den Konversationstyp überconversation_typeabrufen.
Anfrage-Header
| Feld | Typ | Beschreibung |
|---|---|---|
| Authorization | Bearer ${token} | Für die Authentifizierung Authorization: Bearer ${token} verwenden. Das Token ist auf der API-Key-Seite erhältlich. |
| Content-Type | application/json | Datentyp, Wert: application/json. |
Anfrage-Body
| Parameter | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| user_id | string | Vom Entwickler:in definierte Benutzer-ID | ja |
| anonymous_ids | array | Liste der von der GPTBots-Plattform generierten anonymen IDs, meist auf Basis von eindeutigen Drittanbieter-Kennungen. Über anonymous_id in den Agent-Globalvariablen abrufbar. |
ja |
| anonymous_ids[].anonymous_id | string | Anonyme ID | ja |
| anonymous_ids[].conversation_type | string | Quellplattform der anonymen ID, entspricht der Plattform in „Agent-Integration“, z. B. WHATSAPP, LINE usw. Über conversation_type in der Nutzerübersicht abrufbar. |
ja |
| anonymous_ids[].source_id | string | Kanal-ID der Quellplattform. Bei Integration mit TELEGRAM und mehreren TG-Bots hat jeder Bot eine eigene Source ID. |
nein |
Beschreibung der Bindungslogik:
- Die Bindungsbeziehung wird eindeutig durch die Kombination aus
anonymous_id+conversation_type+source_idbestimmt.- Ist diese Kombination bereits mit der aktuellen
user_idverknüpft, wird lediglich die Bindungszeit (updateTime) aktualisiert.- Ist diese Kombination mit keiner
user_idverknüpft, wird eine neue Bindung erstellt.- Ist diese Kombination bereits mit einer anderen
user_idverknüpft, wird die alte Bindung zuerst gelöst und dann an die aktuelleuser_idgebunden.- Überschreitet die Anzahl der Bindungen einer einzelnen
user_id100, wird der Datensatz mit der frühestenupdateTimeautomatisch entfernt.
Antwort
Antwort-Body
{
"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"
}
]
}
}
Erfolgreiche Antwort
| Feld | Typ | Beschreibung |
|---|---|---|
| user_id | string | Benutzer-ID |
| anonymous_ids | array | Alle aktuell mit dieser Benutzer-ID verknüpften anonymen IDs und deren Konversationstypen |
| anonymous_ids[].anonymous_id | string | Anonyme ID |
| anonymous_ids[].conversation_type | string | Enumerationswert des Konversationstyps, entspricht der Plattform in „Agent-Integration“ |
| anonymous_ids[].source_id | string | Kanal-ID der Quellplattform. Bei Integration mit TELEGRAM und mehreren TG-Bots hat jeder Bot eine eigene Source ID. |
Fehlerantwort
| Feld | Typ | Beschreibung |
|---|---|---|
| code | int | Fehlercode |
| message | string | Fehlermeldung |
Statuscodes
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolg |
| 400 | Ungültige Parameter |
| 401 | Nicht autorisiert |
| 403 | Verboten |
| 500 | Serverfehler |
