Skip to main content
Skip table of contents

Conversation Control

When a customer connects to the business via a media channel such as WhatsApp, Webchat, an inbound/outbound call, etc. The system creates:

  1. 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.
  2. Identifies a customer via CX-Customer APIs.
  3. Creates a Conversation object for this customer if no active conversation object for this customer exists in the system. 
  4. For a customer conversation, the Controller may invite a Conversation Bot or a human agent. 
  5. 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. 

Conversation

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 customer's presence in this conversation on one channel. A customer can reach the contact center using more than one channels 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

Conversation States

A Conversation object may be in any of the following states at any point in time. 

CreatedActiveCustomer LeftWrap-upInactiveClosingClosed
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. 

Conversation Controller

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

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.