Headless-Web-SDK-Ereignisse

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
}