Guide and Digital Chat Architecture

Instead of a single solution for chat, CXone Mpower uses a snippet that runs multiple modules. These modules can be downloaded and activated depending on your needs. By default, the snippet includes:

  • Web Module Loader

  • Web Analytics module

  • Session Storage module

The following modules are then downloaded depending on your desired setup:

  • Guide (including rules engine)

  • Chat

Only downloading the necessary modules keeps the required download size to a minimum. The chat window uses lazy loading to download only specific parts of the solution when necessary.

Guide Frontend

The Guide frontend module contains a JavaScript application built using the Svelte framework. It is designed to minimize size and enhance the developer experience. It uses state stores to control displayed content.

On initialization, it fetches tenantClosed High-level organizational grouping used to manage technical support, billing, and global settings for your CXone Mpower system.-specific configuration, processes rules with a bundled engine, and may make back-end APIClosed Application Programming Interface. Allows you to automate certain functionality by connecting your CXone Mpower system with other software. calls for additional information or offers.

The Guide frontend module leverages the Session Storage and Web Analytics modules to:

Chat Frontend

The chat window and widget are built within a React framework and use WebSocket for secure communication. SSL/TLSClosed Transport Layer Security. A protocol that provides end-to-end security for data sent between applications. encryption ensures secure communication, with end-to-end encryption applied for both WebSocket and RESTClosed An interface between two computer systems that allows the secure exchange of data over the internet. API data transfers.

Local storage is used to maintain chat sessions, allowing continuity even after a page reloads, a PC restarts, or the user switches between tabs. The cache in local storage is used for better performance.

For secured sessions, customer identification is not stored in local storage. Instead, it's stored within secure cookies or a third-party authorization server. This page provides more information on data security in Digital Experience.

Chat is loaded asynchronously, ensuring it doesn't delay the loading of other website elements.

Backend Integration

Web Analytics Module

The Web Analytics module communicates with the Digital Experience backend using RESTful POST and PUT API calls over HTTPS. If the module cannot communicate with the backend, it will disable itself and record its disablement in the Session Storage module. This prevents unnecessary errors in the console. To run it again, open a new browser window. This resets the Session Storage module.

Guide Module

The Guide module requests configuration data from configuration endpoints. This data includes rules, templates, and entry point definitions. It uses a content delivery network (CDN) for better performance. The Web Analytics module does all writing to the backend, including interacting with the Chat module.

The Guide module maintains data about the current visitor and visit. It stores this in local storage using the Session Storage module. The Session Storage module divides the data by tenant ID.

Data maintained in session storage

Data maintained in local storage
  • CXoneDestinationId: Used to identify the browser tab in use.

  • guide-state: The current UI state and values for the pre-contact form.

  • CXoneVisit: Information about the current visit. This is reset after 30 minutes of inactivity.

  • CXoneVisitor: Information about the current visitor. This is meant to identify the user through multiple websites visits over time.

  • CXoneInactivity: Use to determine inactivity. Activity between browser tabs is shared through this storage item.

Chat Module

The chat client communicates with the backend through a secured WebSocket. It sends data changes such as messages and field updates to the backend through a WebSocket server. Digital Experience exposes changes through real-time webhook events, allowing third-party integrations and other consumers to access updated data. When an agent updates a chat interaction, async events are sent to the chat client.

Messages are encrypted and stored in Elastic Search. In Digital Experience, you can automate processes to remove sensitive data, such as financial information and personal IDs, from messages. Attachments are stored in Cloud Storage. Only those with proper authentication can access them.