Gebeurtenisschema's van CXone Mobile SDK
Deze pagina bevat schema's van en uitleg over veelvoorkomende gebeurtenissen die optreden tijdens een chatinteractie.
Applicatie wordt actief
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer de mobiele app actief wordt, chat voorbereidt, bezoekers- en klantgegevens verwerkt en communiceert met de back-endservices. Eventuele fouten worden op de juiste wijze verwerkt en in een logboek geregistreerd.
Schema in nieuw venster openen
Startstatus:
-
De startstatus van de SDK is initial.
-
De mobiele app wordt op de voorgrond weergegeven.
Chatvoorbereiding:
-
De gebruiker begint met het voorbereiden van de chat door prepare(brandId:channelId:) aan te roepen.
-
Als de chatstatus niet 'initial' of 'offline' is, wordt een IllegalChatStateError geretourneerd.
-
Is dit wel het geval, dan wordt de chatstatus door de SDK op preparing ingesteld en wordt de UI geïnformeerd met onChatUpdated().
Kanaalconfiguratie:
-
De SDK vraagt de kanaalconfiguratie van de back-end op met getChannelConfiguration()).
-
Als een serverfout optreedt, wordt een ServerError geretourneerd en wordt de chatstatus weer op initialize ingesteld.
-
Is dit niet het geval, dan wordt de kanaalconfiguratie ontvangen en maakt de SDK een doel-ID.
-
Als bezoeker-ID of klant-ID null is, worden deze ID's gemaakt en lokaal opgeslagen.
Afhandeling van bezoekers en klanten:
-
De SDK roept createOrUpdateVisitor(visitorId:customerId:deviceToken:) aan op de back-end.
-
Als een serverfout optreedt, wordt de chatstatus weer op initialize ingesteld.
-
Gebeurt dit niet, dan is de afhandeling van bezoekers en klanten geslaagd.
Chatstatus Prepared:
-
De chatstatus wordt ingesteld op prepared.
-
De UI wordt geïnformeerd met onChatUpdated().
-
Analyses voor paginaweergaven worden getraceerd tussen de mobiele app en de back-end.
Applicatie wordt op achtergrond weergegeven
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer de mobiele app op de achtergrond wordt gezet, tracering van paginaweergaven verwerkt en communiceert met de back-endservices. Eventuele fouten worden op de juiste wijze verwerkt. Wanneer een applicatie op de achtergrond wordt gezet, betekent dit dat de applicatie niet langer het belangrijkste is wat u op uw apparaat ziet of gebruikt. Stel dat u een berichtenapp gebruikt en dat u op de startknop drukt of naar een andere app omschakelt. De berichtenapp staat nu op de achtergrond. De app loopt nog maar u maakt er niet actief gebruik van. Dit gebeurt wanneer u een app minimaliseert, naar een andere app omschakelt of uw telefoon vergrendelt. De app is nog steeds aanwezig maar staat niet meer op de voorgrond.
Schema in nieuw venster openen
Applicatie wordt op achtergrond weergegeven:
-
In de UI verschijnt een venster met de mededeling dat de applicatie in de achtergrond wordt gezet.
-
De UI informeert de SDK dat de paginaweergave is beëindigd met pageViewEnded.
-
De back-end ontvangt de pageViewEnded-gebeurtenis.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Gebeurt dit niet, dan is de gebeurtenis geslaagd.
-
Verbreking van verbinding en afhandeling van status:
-
De UI start het verbreken van de verbinding met disconnect().
-
Afhankelijk van de huidige status:
-
Als het voorbereidingsproces actief is, wordt de status door de SDK ingesteld op initial.
-
Nadat het voorbereidingsproces is beëindigd, wordt de verbinding met de socket door de SDK verbroken en wordt de status ingesteld op prepared.
-
Pagina weergeven
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker een pagina in de mobiele app bekijkt, met inbegrip van interacties met de SDK en back-endservices. Het toont de analytics-gebeurtenis wanneer een gebruiker een pagina weergeeft, bezoekgegevens traceert en met de back-endservices communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Verwijzing naar activering van applicatie:
-
Het diagram verwijst naar de gebeurtenis Applicatie wordt actief.
Gebeurtenis Pagina weergeven:
-
De gebruiker bekijkt een pagina en de UI stelt de SDK op de hoogte met viewPage(title:url:).
-
De chatmodus wordt gecontroleerd:
-
Als de chatmodus niet 'prepared’ is, wordt een illegalChatStateError geretourneerd.
-
Anders wordt gecontroleerd of de gegevens van het bezoek verlopen zijn.
-
Als dit het geval is, worden nieuwe bezoekgegevens gemaakt (UUID en vervaltijd-/datum).
-
Als de gegevens nog geldig zijn, wordt de huidige vervaltijd-/datum aangepast.
-
-
Als de laatst weergegeven pagina niet is verzonden, wordt de paginaweergave door de SDK beëindigd.
-
De titel, de URI en het tijdstempel van de laatst weergegeven pagina worden opgeslagen.
-
Eventuele storingen, bijvoorbeeld serverfouten, worden afgehandeld.
-
Back-endinteractie:
-
De SDK communiceert met de back-endservices:
-
visitorVisit(date:) wordt aangeroepen om het bezoek op te nemen.
-
pageView(title:uri:timestamp) wordt aangeroepen om de paginaweergave te registreren.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Chat openen
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker de chat opent, OAuth afhandelt en een verbinding met de back-endservices tot stand brengt. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Verwijzing naar activering van applicatie:
-
Het diagram verwijst naar de gebeurtenis Applicatie wordt actief.
Chat openen:
-
De app gebruiker opent de chat en de UI start een verbinding met connect().
-
De chatstatus wordt gecontroleerd:
-
Als de chatstatus 'connecting’ is, maakt de SDK een WebSocket-verbinding.
-
Als de status 'initial' of 'preparing' is, wordt een IllegalChatStateError geretourneerd.
-
Is de status 'prepared', dan wordt de chatmodus gecontroleerd:
-
Als live chat en de status van live chat offline zijn, wordt de chatstatus ingesteld op offline.
-
Anders wordt de WebSocket-verbinding tot stand gebracht.
-
Hoe OAuth wordt afgehandeld, is ervan afhankelijk of OAuth in- of uitgeschakeld is.
-
-
OAuth-afhandeling:
-
Als OAuth ingeschakeld is:
-
De SDK maakt opnieuw verbinding met behulp van reconnectCustomerEventData(accessToken:).
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de CustomerReconnectedEvent ontvangen.
-
-
Als OAuth uitgeschakeld is:
-
De SDK wordt geautoriseerd met authorizeCustomerEventData(authorizationCode:codeVerifier:).
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de CustomerAuthorizedEvent ontvangen en worden het toegangstoken en de klantidentiteit opgeslagen.
-
Chatstatus Connected:
-
De chatstatus wordt ingesteld op connected.
-
De UI wordt geïnformeerd met onChatUpdated().
-
De relevante chatweergave wordt geopend, afhankelijk van het soort chat: single-thread In een single-thread app kan elk contact maar één chat-thread hebben. Elke interactie met uw organisatie vindt plaats dan plaats via die ene chat-thread. of multi-thread In een multi-thread app kunnen contacten zoveel threads maken als ze willen om nieuwe onderwerpen te bespreken. Deze threads kunnen gelijktijdig actief zijn..
Single-thread
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker met een single-thread In een single-thread app kan elk contact maar één chat-thread hebben. Elke interactie met uw organisatie vindt plaats dan plaats via die ene chat-thread. chat omgaat, threadherstel afhandelt en met de back-endservices communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Verwijzing naar activering van applicatie:
-
Het diagram verwijst naar de gebeurtenis Chat openen .
Threadherstel:
-
De SDK laadt de thread-ID vanuit lokale opslag.
-
Als een thread-ID van een extern platform lokaal wordt opgeslagen, herstelt de SDK de berichtenthread met RecoverMessagingThreadEvent(threadId:).
-
Als geen UUID beschikbaar is, doet de SDK een herstelpoging met RecoverMessagingThreadEvent(nil).
Controle op het bestaan van thread:
-
Als de thread bestaat, wordt de ThreadRecoveredEvent ontvangen.
-
De chat- en threadstatus worden ingesteld op ready.
-
De UI wordt geïnformeerd met onThreadUpdated().
-
-
Als de thread niet bestaat, wordt de ThreadRecoverFailedEvent ontvangen.
-
De chatstatus wordt ingesteld op ready.
-
De UI wordt geïnformeerd met onChatUpdated().
-
Een mededeling geeft aan dat threadherstel niet nodig is.
-
Chatinteractie:
-
In de UI verschijnt een chatvenster waarin de gebruiker met een agent kan communiceren.
Multi-thread
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker met een multi-thread In een multi-thread app kunnen contacten zoveel threads maken als ze willen om nieuwe onderwerpen te bespreken. Deze threads kunnen gelijktijdig actief zijn. chat omgaat, het ophalen van de thread afhandelt en met de back-endservices communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Verwijzing naar activering van applicatie:
-
Het diagram verwijst naar de gebeurtenis Chat openen .
Ophalen van threadlijst:
-
De lijst met threads wordt door de SDK van de back-end opgehaald met FetchThreadListEvent.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de threadlijst opgehaald.
Threadafhandeling:
-
Als er threads zijn:
-
De SDK stelt de status van elke thread in op received en laadt de laatste berichten.
-
Thread-metadata worden geladen en de status wordt ingesteld op loaded.
-
De chatstatus wordt ingesteld op ready en de UI wordt geïnformeerd.
-
-
Als er geen threads zijn:
-
De chatstatus wordt ingesteld op ready en de UI wordt geïnformeerd.
-
Threads maken of openen:
-
Bij het maken van een nieuwe thread:
-
De gebruiker begint met het maken van de thread.
-
-
Bij het maken van een bestaande thread:
-
De gebruiker selecteert een thread.
-
De UI opent de thread met openThread(thread:).
-
De thread wordt hersteld vanaf de back-end.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de thread hersteld en wordt de status ingesteld op ready.
-
Chatinteractie:
-
De gebruiker chat met een agent.
Live Chat
Dit sequentiediagram illustreert de back-endflow van een live chatinteractie. Live chat is de optie voor digitale chat in realtime, terwijl chatberichten voorzien in asynchroon berichtenverkeer, vergelijkbaar met privéberichten of directe berichten.
Schema in nieuw venster openen
Thread maken
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker een nieuwe chat-thread maakt, de aanmaak van de thread afhandelt en met de SDK communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Gebruikersgegevens en pre-chat:
-
Als de klantnaam niet is opgegeven, verschijnt in de UI een formulier voor het invullen van gebruikersgegevens.
-
Als pre-chatinformatie beschikbaar is, wordt in de UI een pre-chatformulier weergegeven.
Aanmaak van thread:
-
De gebruiker begint een gesprek.
-
De UI start de aanmaak van de thread met createThread(customFields:).
-
Als de chatstatus niet 'multi-thread' is en de thread al bestaat:
-
Er wordt een unsupportedChannelConfigError geretourneerd.
-
Er wordt een foutwaarschuwing weergegeven.
-
-
In alle andere gevallen:
-
De SDK maakt de thread lokaal met een UUID.
-
De UUID wordt lokaal opgeslagen.
-
De threadstatus wordt ingesteld op pending.
-
De UI wordt geïnformeerd met onThreadUpdated().
-
Chatten met een agent
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een eindgebruiker via chat met een agent communiceert, welkomstberichten afhandelt en met de back-endservices communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Chatinitialisatie:
-
De gebruiker verzendt een bericht met sendMessage(message:).
-
Als een welkomstbericht beschikbaar is:
-
De SDK verzendt een outbound welkomstbericht met SendOutboundMessageEvent(welcomeMessage:).
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de MessageCreatedEvent ontvangen en wordt de UI bijgewerkt.
-
-
De SDK verzendt het bericht van de gebruiker met sendMessageEvent.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de MessageCreatedEvent ontvangen en wordt de UI bijgewerkt.
-
Contacten beëindigen
Dit sequentiediagram geeft aan wat er achtereenvolgens gebeurt wanneer een gebruiker een chat beëindigt, het sluiten van de conversatie afhandelt en met de back-endservices communiceert. Eventuele fouten worden op de juiste wijze verwerkt.
Schema in nieuw venster openen
Beëindiging van chat:
-
De gebruiker drukt op Conversatie beëindigen.
-
De UI instrueert de SDK met endConversation() om de paginaweergave te beëindigen.
-
De back-end ontvangt de EndConversationEvent.
-
Als een serverfout optreedt, wordt deze afgehandeld.
-
Anders wordt de case-status gewijzigd en wordt de threadstatus ingesteld op closed.
-
De UI wordt geïnformeerd met onThreadUpdated().
-
Weergave Contacten beëindigen:
-
In de UI wordt de weergave Contacten beëindigen geopend.
Grote gebeurtenissen verwerken
Een van de beperkingen van AWS API Gateway is dat niet meer dan 128 KB per bericht kan worden verzonden. Ga als volgt te werk als u grotere gebeurtenissen van de server naar de client wilt versturen:
-
Upload op de server grotere gebeurtenissen naar een openbaar toegankelijke S3-bucket.
-
De client kan dan alleen de URL naar dit bestand ontvangen via WebSocket, en de werkelijke gebeurtenisinhoud via REST downloaden.