When a customer connects to the business via a media channel such as WhatsApp, Webchat, an inbound/outbound call, etc. The system creates:
A ChannelSession object to track active customer's presence on a media channel. This ChannelSession object is created following the configurations of a Channel as defined in Unified Admin. For more about Channel configurations, see Unified Admin guide.
Identifies a customer via CX-Customer APIs.
Creates a Conversation object for this customer if no active conversation object for this customer exists in the system.
For a customer conversation, the Controller may invite a Conversation Bot or a human agent.
If and when a human agent is required in a conversation, the Conversation is assigned to an agent as an AgentTask. For more details about Agent Tasks, see Reporting Database Schema -> agent_task table.
A Conversation object is a short-lived container of all active customer channel sessions, human agents, and/or Conversation bots participating in the interaction. It's a dynamic object created on the first event to/from a customer if there does not exist one for this customer. Typically, there is only one Conversation object per customer at any point in time.
A conversation holds one or more Channel Sessions opened on different customer channels such as a chat initiated on the web and later switched to WhatsApp.
is linked to a Customer
contains ChannelSessions - a ChannelSession represents a customer's presence in this conversation on one channel. A customer can reach the contact center using more than one channel at any point in time. All active customer channels are linked to the same customer Conversation.
contains Conversation Participants - including customer channel sessions, agents, and the Conversation bot
A Conversation object may be in any of the following states at any point in time.
When topic is created. In this state BOT will join the conversation and can respond to the customer.
When at least one agent in present in the conversation.
When all channel sessions of customer are closed.
When all channel sessions of customer are closed and there are agents in the conversation and wrap up is configured.
When all agents left the conversation but the customer is still available.
When the customer and agents have left the conversation.
On Closing, the TopicMonitor starts house-keeping such as moving all the topic activities to permanent storage. When the TopicMonitor has completed its house-keeping on the topic, it marks the Topic-state to Closed and unsubscribes.
When the controller bot has also been unsubscribed after CIMEvent handler unsubscribe.
A Controller instance controls a Conversation from creation to closure. It monitors and controls the communication exchange between the customer and the business resources (Bot, Agent) and takes decisions upon controller-bot intents. The bot gives scripting control to the business to customize the behavior of conversation handling. For example, send a greeting message as customer joins a conversation or send a survey message to the customer when agent leaves.
The Conversation-Controller Bot may decide to close a channel session at any point in time, based on the bot training data. For instance, it may close a session if one of the following happens:
The customer leaves the chat
The agent leaves the chat and no one else is in the conversation
Customer response timeout expire
Channels and related terms
Expertflow CX uses the following objects for customer channel and related.
A ChannelType represents the type of communication channel, e.g., WhatsApp, Viber, or Webchat. There can be multiple channels of the same Channel Type.
A Channel is a set of configurations defining:
A ChannelSession is a logical object that represents that the customer is currently active on the respective Channel with the system. It is contained within a Conversation.
On receiving a new inbound/outbound event, the ChannelManager creates a ChannelSession with the customer, with an inactivity expiry duration; i.e. the time until the ChannelManager waits for the customer to reply before closing this session, due to inactivity.
Each Channel Session contains some channel data passed to it by the ChannelConnector. It's a set of key-value pairs that a ChannelConnector can set at the time of sending the message. For example, for web chat, the channel data includes the browser info (Chrome, Safari), locale info of the customer, and, any pre-chat form data that was submitted while initiating the chat.
The channel data is available to agents on the AgentDesk under Active Channels pane.
A Channel Connector is a wrapper implementation between a Customer Channel and Expertflow CX to exchange customer communication on the channel.
For each new request received from a customer on a channel, it is received on the respective channel connector for that channel. Channel Connectors receive new requests from a respective customer channel, transform them in a format readable by Expertflow CX components, and forward them to the ChannelManager to process the request. Responses from the business (i.e. messages sent by the conversation bot or agents) to customers are received by the Channel Connector and transferred to the customer in the customer-facing channel format.
A ChannelProvider is a third-party service provider for a customer channel. For example, Dialog360 and Twilio are channel providers for WhatsApp. A ChannelProvider defines the integration interface for channel connectivity.
Channel Providers are configured and attached to Channel Connectors of the respective Channel.
- See Channel Connector Developer Guide for developing a new Channel Connector.
- See how to create new Channel Types, Channels, and Channel Connectors from the Unified Admin App.