Every WebChat interaction has a sequence of events we describe as the 'Interaction Lifecycle'. This is a sequence of events that tracks progress and choices from the beginning of an interaction (opening WebChat), to the end (closing WebChat), and every step in between.
The following events are part of the Interaction Lifecycle:
ready opened started cancelled completed closed
An Interaction Lifecycle can vary based on each user's intent and experience with WebChat. Here are several sequences of events in the lifecycle that correspond to different scenarios.
The user opened WebChat but changed their mind and closed it without starting a chat session:
ready -> opened -> cancelled -> closed
The user started a chat session but ended it before an agent connected. Perhaps it was taking too long to reach someone:
ready -> opened -> started -> cancelled -> closed
The user started a chat, met with an agent, and the session ended normally:
ready -> opened -> started -> completed -> closed
Each event in the Interaction Lifecycle includes the following block of metadata. By default, all values are set to false. As the user progresses through the lifecycle of a WebChat interaction, these values will be updated.
The metadata block contains boolean state flags, counters, timestamps, and elapsed times. These values can be used to track and identify trends or issues with chat interactions. During run-time, the metadata can help you offer a smart and dynamic experience to your users.
|proactive||boolean||Indicates this chat session was started proactively.|
|prefilled||boolean||Indicates the registration form was prefilled with info automatically.|
|autoSubmitted||boolean||Indicates the registration form was submitted automatically, usually after being prefilled.|
|coBrowseInitiated||boolean||Indicates that a Co-browse session was started at some point during the chat session.|
|filesUploaded||integer||Current number of files uploaded during chat session.|
|numAgents||integer||Current number of agents that have connected to the chat session.|
|userMessages||integer||Current number of messages sent by user.|
|agentMessages||integer||Current number of messages sent by agents.|
|systemMessages||integer||Current number of system messages received.|
|errors||array/boolean||An array of error codes encountered during chat session. If no errors, this value will be false.|
|opened||integer (timestamp)||Timestamp indicating when WebChat was opened.|
|started||integer (timestamp)||Timestamp indicating when chat session started.|
|cancelled||integer (timestamp)||Timestamp indicating when the chat session was cancelled. Cancelled refers to when a user ends a chat session before an agent connects.|
|completed||integer (timestamp)||Timestamp indicating when the chat session ended normally. Completed refers to when a user or agent ends a chat after an agent connected.|
|closed||integer (timestamp)||Timestamp indicating when WebChat was closed.|
|agentReached||integer (timestamp)||Timestamp indicating when the first agent was reached, if any.|
|supervisorReached||integer (timestamp)||Timestamp indicating when the first agent supervisor was reached, if any.|
|elapsed||integer (milliseconds)||Total elapsed time in milliseconds from when the user started the chat session to when the chat session ended.|
|waitingForAgent||integer (milliseconds)||Total time in milleseconds waiting for an agent from when the user started the chat session to when an agent connected to the session.|