CXone Mobile SDK-Ereignisdiagramme
Auf dieser Seite finden Sie Diagramme und Erläuterungen von Ereignissen, die während einer Chatinteraktion häufig auftreten.
Anwendung wird aktiv
Dieses Diagramm erfasst den Ablauf, wenn die mobile App aktiv wird, den Chat vorbereitet, Besucher- und Kundeninformationen verarbeitet und mit den Backend-Diensten kommuniziert. Falls Fehler auftreten, werden sie entsprechend behandelt und protokolliert.
Diagramm in neuem Fenster öffnen
Anfänglicher Status:
-
Der anfängliche Status des SDK wird auf initial gesetzt.
-
Die mobile App wird in den Vordergrund gesendet.
Chatvorbereitung:
-
Der Benutzer leitet die Chatvorbereitung ein, indem er prepare(brandId:channelId:) aufruft.
-
Wenn der Chatstatus nicht "initial" oder "offline" ist, wird ein IllegalChatStateError zurückgegeben.
-
Andernfalls setzt das SDK den Chatstatus auf preparing und benachrichtigt die UI mit onChatUpdated().
Kanalkonfiguration:
-
Das SDK fordert mit getChannelConfiguration() die Kanalkonfiguration vom Backend an.
-
Wenn es einen Serverfehler gibt, wird ein ServerError zurückgegeben und der Chatstatus auf initialize zurückgesetzt.
-
Andernfalls wird die Kanalkonfiguration empfangen und das SDK erstellt eine Ziel-ID.
-
Wenn die Besucher-ID oder Kunden-ID null ist, werden sie erstellt und lokal gespeichert.
Besucher- und Kundenverarbeitung:
-
Das SDK sendet den Aufruf createOrUpdateVisitor(visitorId:customerId:deviceToken:) an das Backend.
-
Wenn es einen Serverfehler gibt, wird der Chatstatus auf initialize zurückgesetzt.
-
Andernfalls ist die Besucher- und Kundenverarbeitung erfolgreich.
Status "Chat vorbereitet":
-
Der Chatstatus wird auf prepared gesetzt.
-
Die UI wird mit onChatUpdated() benachrichtigt.
-
Analysedaten für Seitenaufrufe werden zwischen der mobilen App und dem Backend getrackt.
Anwendung wird in den Hintergrund gesendet
Dieses Diagramm erfasst den Ablauf, wenn die mobile App in den Hintergrund gesendet wird, trackt den Seitenaufruf und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt. Wenn eine Anwendung in den Hintergrund gesendet wird, bedeutet es, dass sie nicht mehr der Hauptinhalt ist, den Sie auf dem Bildschirm sehen bzw. mit dem Sie interagieren. Beispiel: Sie verwenden eine Messaging-App und tippen dann auf die Home-Schaltfläche oder wechseln zu einer anderen App. Die Messaging-App ist dann im Hintergrund. Sie wird zwar noch ausgeführt, aber Sie verwenden sie nicht aktiv. Das ist zum Beispiel der Fall, wenn Sie eine App minimieren, zu einer anderen App wechseln oder Ihr Smartphone sperren. Die App ist noch da, aber nicht mehr im Vordergrund.
Diagramm in neuem Fenster öffnen
Anwendung wird in den Hintergrund gesendet:
-
Die UI zeigt ein Feld an, dass die Anwendung in den Hintergrund gesendet wird.
-
Die UI benachrichtigt das SDK mit pageViewEnded, dass die Seite nicht länger betrachtet wird.
-
Das Backend empfängt das pageViewEnded-Ereignis.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls ist das Ereignis erfolgreich abgeschlossen.
-
Trennen der Verbindung und Statusverarbeitung:
-
Die UI initiiert die Trennung mit disconnect().
-
Je nach aktuellem Status passiert Folgendes:
-
Während der Vorbereitung ("preparing") setzt das SDK den Status auf initial.
-
Ist die Vorbereitung abgeschlossen, trennt das SDK das Socket und setzt den Status auf prepared.
-
Seite anzeigen
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer eine Seite in der mobilen App anzeigt, einschließlich Interaktionen mit dem SDK und Backend-Diensten. Es zeigt das Analyseereignis, wenn ein Benutzer eine Seite aufruft, trackt Details des Besuchs und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Anwendungsaktivierungs-Referenz:
-
Das Diagramm verweist auf das Ereignis "Anwendung wird aktiv".
Seitenaufruf-Ereignis:
-
Der Benutzer ruft eine Seite auf und die UI benachrichtigt das SDK mit viewPage(title:url:).
-
Der Chatmodus wird überprüft:
-
Ist der Chat noch nicht vorbereitet, wird ein illegalChatStateError zurückgegeben.
-
Andernfalls wird die Gültigkeitsdauer der Besuchsdetails geprüft.
-
Falls sie abgelaufen sind ("expired"), werden neue Besuchsdetails erstellt (UUID und Gültigkeitsdauer).
-
Falls sie noch gültig sind ("valid"), passt das SDK die aktuelle Gültigkeitsdauer an.
-
-
Wenn die zuletzt angesehene Seite nicht gesendet wurde, beendet das SDK den Seitenaufruf.
-
Der Titel, die URI und der Zeitstempel der aktuell zuletzt angesehenen Seite werden gespeichert.
-
Wenn es einen Fehler gibt, etwa einen Serverfehler, wird er entsprechend behandelt.
-
Backend-Interaktion:
-
Das SDK kommuniziert mit den Backend-Diensten:
-
visitorVisit(date:) wird aufgerufen, um den Besuch zu verzeichnen.
-
pageView(title:uri:timestamp) wird aufgerufen, um den Seitenaufruf zu protokollieren.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Chat öffnen
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer den Chat öffnet, OAuth verarbeitet und eine Verbindung zu den Backend-Diensten hergestellt wird. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Anwendungsaktivierungs-Referenz:
-
Das Diagramm verweist auf das Ereignis "Anwendung wird aktiv".
Chat wird geöffnet:
-
Der App-Benutzer öffnet den Chat und die UI initiiert mit connect() eine Verbindung.
-
Der Chatstatus wird überprüft:
-
Während der Verbindungsherstellung ("connecting") stellt das SDK eine WebSocket-Verbindung her.
-
Ist der Chat noch nicht vorbereitet ("initial" oder "preparing"), wird ein IllegalChatStateError zurückgegeben.
-
Ist der Chat vorbereitet, wird der Chatmodus überprüft:
-
Wenn es sich um Live-Chat handelt und der Live-Chat offline ist, wird der Chatstatus auf offline gesetzt..
-
Andernfalls wird die WebSocket-Verbindung hergestellt.
-
OAuth-Verarbeitung ist davon abhängig, ob OAuth aktiviert oder deaktiviert ist.
-
-
OAuth-Verarbeitung:
-
Wenn OAuth aktiviert ist:
-
Das SDK stellt die Verbindung mit reconnectCustomerEventData(accessToken:) wieder her.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird CustomerReconnectedEvent empfangen.
-
-
Wenn OAuth deaktiviert ist:
-
Das SDK führt die Autorisierung mit authorizeCustomerEventData(authorizationCode:codeVerifier:) durch.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird CustomerAuthorizedEvent empfangen und das Zugriffstoken und die Kundenidentität werden gespeichert.
-
Status "Chat verbunden":
-
Der Chatstatus wird auf connected gesetzt.
-
Die UI wird mit onChatUpdated() benachrichtigt.
-
Je nachdem, ob es sich um einen Single- In einer Anwendung mit nur einem Thread kann jeder Kontakt nur einen Chat-Thread haben. Jede Interaktion, die sie mit Ihrer Organisation haben, findet in diesem einen Chat-Thread statt. oder Multi-Thread In einer App mit mehreren Threads können Kontakte so viele Threads erstellen, wie sie möchten, um neue Themen zu diskutieren. Diese Threads können gleichzeitig aktiv sein.-Chat handelt, wird die relevante Chatansicht angezeigt.
Single-Thread
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer mit einem Single-Thread In einer Anwendung mit nur einem Thread kann jeder Kontakt nur einen Chat-Thread haben. Jede Interaktion, die sie mit Ihrer Organisation haben, findet in diesem einen Chat-Thread statt.-Chat interagiert, verarbeitet die Thread-Wiederherstellung und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Anwendungsaktivierungs-Referenz:
-
Das Diagramm verweist auf das Ereignis "Chat öffnen".
Thread-Wiederherstellung:
-
Das SDK lädt die Thread-ID aus dem lokalen Speicher.
-
Wenn eine Thread-ID von einer externen Plattform lokal gespeichert wurde, stellt das SDK den Messaging-Thread mit RecoverMessagingThreadEvent(threadId:) wieder her.
-
Ist keine UUID verfügbar, versucht das SDK die Wiederherstellung mit RecoverMessagingThreadEvent(nil).
Prüfung auf vorhandenen Thread:
-
Wenn der Thread vorhanden ist, wird ThreadRecoveredEvent empfangen.
-
Der Chatstatus und der Thread-Status werden auf ready gesetzt.
-
Die UI wird mit onThreadUpdated() benachrichtigt.
-
-
Wenn der Thread nicht vorhanden ist, wird ThreadRecoverFailedEvent empfangen.
-
Der Chatstatus wird auf "ready" (bereit) gesetzt.
-
Die UI wird mit onChatUpdated() benachrichtigt.
-
Ein Hinweis gibt an, dass keine Thread-Wiederherstellung erforderlich ist.
-
Chatinteraktion:
-
Die UI zeigt das Chatfenster an, damit der Benutzer mit einem Agenten interagieren kann.
Multi-Thread
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer mit einem Multi-Thread In einer App mit mehreren Threads können Kontakte so viele Threads erstellen, wie sie möchten, um neue Themen zu diskutieren. Diese Threads können gleichzeitig aktiv sein.-Chat interagiert, verarbeitet den Thread-Abruf und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Anwendungsaktivierungs-Referenz:
-
Das Diagramm verweist auf das Ereignis "Chat öffnen".
Thread-Listenabruf:
-
Das SDK ruft mit FetchThreadListEvent die Liste der Threads vom Backend ab.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird die Thread-Liste abgerufen.
Thread-Verarbeitung:
-
Wenn Threads vorhanden sind:
-
Das SDK setzt den Status der einzelnen Threads auf received und lädt die neuesten Nachrichten.
-
Thread-Metadaten werden geladen und der Status wird auf loaded gesetzt.
-
Der Chatstatus wird auf ready gesetzt und die UI wird benachrichtigt.
-
-
Wenn keine Threads vorhanden sind:
-
Der Chatstatus wird auf ready gesetzt und die UI wird benachrichtigt.
-
Threads erstellen oder öffnen:
-
Wenn ein neuer Thread erstellt wird:
-
Der Benutzer initiiert die Thread-Erstellung.
-
-
Wenn ein vorhandener Thread geöffnet wird:
-
Der Benutzer wählt einen Thread aus.
-
Die UI öffnet den Thread mit openThread(thread:).
-
Der Thread wird aus dem Backend wiederhergestellt.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird der Thread wiederhergestellt und der Status wird auf ready gesetzt.
-
Chatinteraktion:
-
Der Benutzer interagiert im Chat mit einem Agenten.
Live-Chat
Dieses Diagramm zeigt den Backend-Ablauf einer Interaktion im Live-Chat. Live-Chat ist die Echtzeitoption für digitalen Chat, während es sich bei Chat-Messaging um den asynchronen Austausch von Chatnachrichten handelt, wie bei privaten oder Direktnachrichten.
Diagramm in neuem Fenster öffnen
Thread erstellen
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer einen neuen Chat-Thread erstellt, verarbeitet die Thread-Erstellung und kommuniziert mit dem SDK. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Benutzerdetails und Vorab-Informationen:
-
Wenn kein Kundennamen angegeben wird, zeigt die UI eine Formularansicht für Benutzerdetails.
-
Wenn Vorab-Informationen verfügbar sind, zeigt die UI eine Vorab-Formularansicht an.
Thread-Erstellung :
-
Der Benutzer beginnt eine Unterhaltung.
-
Die UI initiiert mit createThread(customFields:) die Thread-Erstellung.
-
Wenn der Chatmodus nicht Multi-Thread ist und der Thread bereits vorhanden ist:
-
unsupportedChannelConfigError wird zurückgegeben.
-
Es wird eine Fehlermeldung angezeigt.
-
-
Andernfalls:
-
Das SDK erstellt den Thread lokal mit einer UUID.
-
Die UUID wird lokal gespeichert.
-
Der Thread-Status wird auf pending gesetzt.
-
Die UI wird mit onThreadUpdated() benachrichtigt.
-
Chat mit einem Agenten
Dieses Diagramm erfasst den Ablauf, wenn ein Endbenutzer in einem Chat mit einem Agenten interagiert, verarbeitet die Begrüßungsnachricht und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Chatinitialisierung:
-
Der Benutzer sendet mit sendMessage(message:) eine Nachricht.
-
Wenn eine Begrüßungsnachricht verfügbar ist:
-
Das SDK sendet mit SendOutboundMessageEvent(welcomeMessage:) eine ausgehende Begrüßungsnachricht.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird MessageCreatedEvent empfangen und die UI wird aktualisiert.
-
-
Der SDK sendet mit sendMessageEvent die Nachricht des Benutzers.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird MessageCreatedEvent empfangen und die UI wird aktualisiert.
-
Kontakt beenden
Dieses Diagramm erfasst den Ablauf, wenn ein Benutzer den Chat beendet, verarbeitet das Ende des Gesprächs und kommuniziert mit den Backend-Diensten. Falls Fehler auftreten, werden sie entsprechend behandelt.
Diagramm in neuem Fenster öffnen
Ende des Chats:
-
Der Benutzer wählt Gespräch beenden aus.
-
Die UI benachrichtigt das SDK mit endConversation(), um das Gespräch zu beenden.
-
Das Backend empfängt EndConversationEvent.
-
Wenn es einen Serverfehler gibt, wird er entsprechend behandelt.
-
Andernfalls wird der Fallstatus geändert und der Thread-Status wird auf closed gesetzt.
-
Die UI wird mit onThreadUpdated() benachrichtigt.
-
Ansicht "Ende des Kontakts":
-
Die UI zeigt die Ansicht "Ende des Kontakts" anzeigen.
Große Ereignisse verarbeiten
Eine der Einschränkungen des AWS API-Gateways ist, dass in einer Nachricht höchstens 128 KB gesendet werden können. So senden Sie größere Ereignisse vom Server an den Client:
-
Laden Sie auf dem Server größere Ereignisse an einen öffentlich verfügbaren S3-Bucket hoch.
-
Der Client empfängt dann über das WebSocket lediglich die URL zu dieser Datei und lädt den Hauptteil des eigentlichen Ereignisses über REST herunter.