Das Headless Web SDK bietet Ereignisse, auf die Sie warten können, um bestimmte Aktionen oder Aktualisierungen in Ihrer Anwendung zu verarbeiten.
const handleReady = () => {
console.log("**** client is ready")
}
client.on("ready", handleReady)
// client.off("ready", handleReady)
Allgemeine Ereignisse
Im Folgenden finden Sie allgemeine Ereignisse für das SDK.
ready
Wird ausgegeben, wenn der Client für die Kommunikation bereit ist.
client.on("ready", () => {
})
authenticated
Wird ausgegeben, wenn sich der Client mit dem Token des Nutzers authentifiziert hat.
client.on("authenticated", () => {
})
Alle verfügbaren Ereignisse
Das SDK bietet verschiedene Ereignisse, auf die Sie warten können, um bestimmte Aktionen oder Aktualisierungen in Ihrer Anwendung zu verarbeiten.
Mit den Methoden .on und .off können Sie Event-Listener hinzufügen und entfernen.
const handleReady = () => {
console.log(" client is ready")
}
client.on("ready", handleReady)
// client.off("ready", handleReady)
Hier finden Sie eine umfassende Liste aller verfügbaren Ereignisse:
Globale Ereignisse
| Ereignisname | Beschreibung |
|---|---|
ready |
Wird ausgegeben, wenn der Client für die Kommunikation bereit ist |
Eingestellte Ereignisse
Das SDK gibt aus Gründen der Abwärtskompatibilität weiterhin die folgenden Ereignisse aus. Verwenden Sie sie nicht in neuen Integrationen.
| Ereignisname | Beschreibung | Anleitung |
|---|---|---|
authenticated |
Wird ausgegeben, wenn sich der Client mit dem Token des Nutzers authentifiziert hat | Eingestellt und wird demnächst entfernt. Bestehende Integrationen können sie bis zur Entfernung weiterhin empfangen. |
chat.connected |
Wird ausgegeben, wenn der Chat mit dem Anbieter verbunden ist. | Verworfen Verwenden Sie chat.connectedMessages, das auch die Nutzlast der ersten Nachrichten bereitstellt. |
Chat-Ereignisse
| Ereignisname | Beschreibung |
|---|---|
chat.ongoing |
Wird ausgegeben, wenn ein Chat läuft. |
chat.updated |
Wird ausgegeben, wenn die Chatinstanz aktualisiert wurde. |
chat.message |
Wird ausgegeben, wenn eine neue Nachricht vorliegt. |
chat.memberJoined |
Wird ausgegeben, wenn ein neues Mitglied der Unterhaltung beigetreten ist. |
chat.memberLeft |
Wird ausgegeben, wenn ein Mitglied die Unterhaltung verlassen hat. |
chat.typingStarted |
Wird ausgegeben, wenn ein Mitglied mit der Eingabe begonnen hat. |
chat.typingEnded |
Wird ausgegeben, wenn ein Mitglied die Eingabe beendet hat. |
chat.connectedMessages |
Wird ausgegeben, wenn das SDK mit einer Unterhaltung mit dem Anbieter verbunden ist. |
chat.disconnected |
Wird ausgegeben, wenn die Verbindung des Chats zum Anbieter getrennt wird. |
chat.dismissed |
Wird ausgegeben, wenn der Status des Chats in dismissed geändert wird. |
chat.timeout |
Wird ausgegeben, wenn der Chat aufgrund einer Zeitüberschreitung beendet wird. |
chat.ended |
Wird ausgegeben, wenn der Chat beendet wird. |
chat.destroyed |
Wird ausgegeben, wenn destroyChat aufgerufen wird. |
chat.checkInRequested |
Wird ausgegeben, wenn der Chat eingecheckt werden kann. |
chat.checkInTimedOut |
Wird ausgegeben, wenn die Zeit für den Chat-Check-in abgelaufen ist |
Cobrowsing-Ereignisse
| Ereignisname | Beschreibung |
|---|---|
cobrowse.request |
Wird ausgegeben, wenn der Endnutzer oder Agent Cobrowsing anfordert |
cobrowse.loaded |
Wird ausgegeben, wenn die Cobrowsing-Sitzung geladen wird |
cobrowse.updated |
Wird ausgegeben, wenn die Cobrowsing-Sitzung aktualisiert wird |
cobrowse.ended |
Wird ausgegeben, wenn die Cobrowsing-Sitzung beendet wird |
Beispiele für die Verwendung
client.on("ready", () => {
// Client is ready
})
client.on("chat.message", message => {
console.log(message)
})
client.on("chat.connectedMessages", async ({ chat, messages }) => {
// Handle chat and messages
})
client.on("cobrowse.request", ({ from }) => {
console.log("Cobrowse requested by", from)
})
Benutzerdefinierte Datenkonfiguration
Mit der Option custom_data können Sie beliebige Schlüssel/Wert-Paare an das Web SDK übergeben.
Nutzung
Sie können benutzerdefinierte Daten entweder als Objekt (nicht signiert) oder als String (signiert) angeben, wenn Sie einen Chat erstellen:
interface ChatRequest {
lang?: string;
trigger_id?: string;
ticket_id?: string;
email?: string;
greeting?: string;
cobrowsable?: boolean;
custom_data?: {
signed?: string;
unsigned?: Record<string, any>;
};
}
Beispiel
Sehen Sie sich folgendes Beispiel an:
const custom_data = {
unsigned: {
version: {
label: 'Version',
value: '1.0.0'
}
},
signed: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' // JWT or other signed payload
}
try {
const chat: Chat = await client.createChat(123, { custom_data })
} catch (error) {
// handle error
}
Externe Chatbot-Übertragung
In einigen Fällen möchten Sie möglicherweise den Verlauf und die Interaktionen von anderen Chatanbietern beibehalten. Verwenden Sie dazu custom_data object.
Sehen Sie sich folgendes Beispiel an:
cconst custom_data = {
unsigned: {
external_chat_transfer: {
greeting_override: "Please hold while we connect you with a human agent.",
agent: {
name: "Agent Name",
avatar: "https://ujet.s3.amazonaws.com/default-virtual-agent-avatar-1.png"
},
transcript: [
{
sender: "agent",
timestamp: "2021-03-15 12:00:00Z",
content: [
{
type: "text",
text: "Hello! How can I help you today?"
},
{
type: "buttons",
buttons: [
{
label: "Create New Order",
selected: false
},
{
label: "Check Order Status",
selected: true
},
{
label: "Check Account Balance",
selected: false
},
]
}
]
},
{
sender: "end_user",
timestamp: "2021-03-15 12:00:15Z",
content: [
{
type: "text",
text: "Check Order Status"
}
]
},
{
sender: "agent",
timestamp: "2021-03-15 12:00:16Z",
content: [
{
type: "text",
text: "I can help you with that, what's your order number?"
}
]
},
{
sender: "end_user",
timestamp: "2021-03-15 12:00:20Z",
content: [
{
type: "media",
media: {
type: "image",
url: "https://ujet.s3.amazonaws.com/default-virtual-agent-avatar-1.png"
}
}
]
}
]
}
},
signed: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' // JWT or other signed payload
}
try {
const chat: Chat = await client.createChat(123, { custom_data })
} catch (error) {
// handle error
}