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:
- 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.
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.
Created | Active | Customer Left | Wrap-up | Inactive | Closing | Closed |
---|---|---|---|---|---|---|
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