Skip to main content
Skip table of contents

CX-Activities

An activity is a customer-related action, an event, or a set of events performed by an Actor. Actors perform activities such as calls, chats etc. Customer activity is through some media channel.

All customer activities across all channels and related agent activities are linked to a single Customer.  For more about the Customer and Customer identification, see Customer Identities

Activities are always stateless. With this definition, an activity is the change of state in any system domain/conversation that the system considers as a considerable change of state.  ChannelSessions are always stateful. They may or may not be interactive. For example, a call is an interactive session and the chat is a non-interactive session. 

A call leg is an activity and the call is a session. 

Stateful

When it's important to monitor and keep track of the state of a session

Interactive

When a session cannot last if any of the participants leave the session. 

The following table provides a list of few possible scenarios that can be classified as activities:

Activity

Description

Actor

CIM Messages

CIM Messages are of many types such as plain, video etc. Messages are described in detail here.

Customer, CC User, botParticipant, App

Agent call

Call leg of a voice call handled by an agent

Agent

IVR activity

IVR system initiates IVR in an on-going conversation.

App

Call recording link

A call recording app sends a call recording link for a recently completed call.

App

WrapUp Message

Wrap-up activity is performed on an active conversation. It is a type of structured message and described here.

Agent

Survey question

Survey sent in a conversation by campaign manager/3rd-party app.

App

Customer-conversation Ilink

Link customer to a conversation

Agent, App

Whisper Message

send whisper message

Agent, App

Bot suggestion

Bot sends a suggestion in a conversation

Bot

Recording/Transcript Link

Generate recording link or transcript URL

App (Recording Solution, CCM)

Push Schedule activity

Push schedule activity to CX

App

Push survey application

A survey application pushes customer satisfaction survey score to the conversation

App

Push Customer’s traversal tree information

A self-service system such as IVR pushes customer's traversal tree information to the conversation (the different menu options that the customer selected on the IVR)

App

3rd party voice call scenario

See the finalized flow of Voice call events and related use cases in Mapping CTI events on CIM.

Examples of Activities

An activity may be updated based on reactions, modify-activity events, and delivery notifications. Examples: 

  • a customer message

    • REACTION bot-suggestion is a reaction to the customer message

    • MODIFY-ACTIVITY edit/delete-message-event - the customer chose to change or delete the message 

    • DELIVERY-NOTIFICATION when the agent has read the message. The agent-manager will send this delivery-notification.

  • an agent message

    • DELIVERY-NOTIFICATION received message delivery notifications

    • REACTION customer's reactions to the message in the form of an emoji

    • REACTION supervisor's reaction to flag the response as rude, inappropriate, misleading, excellent - based on defined custom flags

  • a bot message

    • DELIVERY-NOTIFICATION received message delivery notifications

    • REACTION customer's reactions to the message in the form of an emoji

    • REACTION Bot trainer's reaction to flag a response as inappropriate - based on defined custom flags

  • a structured message sent by the bot or the agent - selected from bug suggestions

    • REACTION one ore more customer responses to the structured message 

  • a campaign message - the campaign manager sent an outbound campaign message 

    • DELIVERY-NOTIFICATION received message delivery notifications

    • REACTION customer's reactions to the message in the form of flags - acknowledged / inappropriate / annoying

  • an IVR activity - the IVR application sent an activity for an ongoing call.

  • an agent call leg - a call leg of a voice call handled by an agent

  • a call recording link received - the call recording application sent a call recording link for a recently completed call. The event must have a call id.

  • a note - A note sent by an actor - this may or may not have a reference to a channelSession or a conversation ID. 

  • wrap-up - a wrap-up activity performed by the agent on a conversation / session. The event must have the session or a conversation identifier.

  • a survey question - the campaign manager sent a survey question as a structured message 

    • REACTION customer's response to the survey question

CIMEvents

CIMEvents contain the smallest amount of valuable information representing change of state in the publishing application resource, where: 

  • A Resource is an object managed by an application. CIM is agnostic of resources. 

  • Valuable information - An information is valuable if it may be of interest for CIMEvent subscribers. 

  • An application is a 3rd application that uses CIM for storing and publishing events to other applications of interest. Any type and number of applications may register with CIM for publishing, subscribing, and reporting of events. 

A CIMEvent Subscriber may use CIMEvents for: 

  • Audit trail

  • Agent performance and customer journey tracking analytics

  • Service levels, customer channels and Bot Performance Monitoring

  • For customer interaction such as consolidate interesting events into Activities for agent serving customers

  • For agent productivity such as capturing agent actions for optimizing workforce

  • For Bot retraining i.e. use CX data to retrain bot via supervised/semi-supervised learning

Types of CIMEvents

The types of CIMEvents are as follows:

Type

Description

ACTIVITY

An event is considered of type activity if it carries primary action performed by the actors such as customer, agent, bot or a third-party app. For example, all customer, agent and bot messages are encapsulated in events of type ACTIVITY.

SUGGESTION

This type carries all events of type bot suggestions.

Message

This event type carries internal communication . All internal and whisper communication among agents and bots.

Notification

This event type carries all system notifications including REACTIONS or MODIFY EVENT or DELIVERY NOTIFICATION

Conversation Events

The list of all CIMEvents and their payloads are given as follows:

Event name

Type

Description

Channel-Manager

Bot-Framework

Agent-Manager

Event Payload

CUSTOMER_MESSAGE

ACTIVITY

CONVERSATION_EVENT

When the system receives a message from a customer, this event is fired.

Publisher

Consumer.

Cache this event in Redis.

Consumer

Send this event to the unified agent over the socket.

AGENT_MESSAGE 

ACTIVITY

When the system receives a message from an agent, this event is fired

Consumer

Consumer

Publisher

CIMMessage

BOT_MESSAGE

ACTIVITY

When the BotFramework receives a message from a bot, this event is fired

Consumer

Publisher

Consumer

CIMMessage

BOT_SUGGESTION 

SUGGESTION

When the BotFramework receives a message from a bot, this event is fired

NA

Publisher

Consumer

SuggestionMessage

WHISPER_MESSAGE 

MESSAGE

When the AgentManager receives a message from an agent, this event is fired

NA

NA

Publisher

Whisper Message

CHANNEL_SESSION_STARTED 

NOTIFICATION

When a customer presence is detected on a channel, Channel Manager fires this event.

Publisher

Consumer

NA

ChannelSession Object

CHANNEL_SESSION_ENDED 

NOTIFICATION

When:

  • Customer closes/ends conversation

  • Customer Inactivity timer expires and the Controller instructs to end the channel session by sending REMOVE_CHANNEL_SESSION event

this event is published to indicate that customer session has ended

Consumer

ChannelSession Object

CHANNEL_SESSION_EXPIRED

NOTIFICATION

When:

  • Customer Inactivity timer expires and the Controller instructs to end the channel session by sending REMOVE_CHANNEL_SESSION event

this event is published to indicate that customer session has ended

Publisher

ChannelSession

AGENT_RESERVED

 

NOTIFICATION

NA

Consumer

NA

JS
{
	"topicId": "<String>",
	"ccUser": "<CcUser>"
}


EWT_MESSAGE FUTURE 

ACTIVITY



AGENT_SUBSCRIBED

NOTIFICATION


Consumer

Publisher

JS
{
	"agentParticipant": {},
	"reason": ""
}


AGENT_UNSUBSCRIBED

 

NOTIFICATION


Consumer

Publisher

JS
{
	"agentParticipant": {},
	"reason": ""
}


AGENT_RESPONSE_TIMEOUT 

NOTIFICATION

When the agent response SLA is expired


BOT_TIMEOUT 

NOTIFICATION

BotFramework fires this if and when the bot doesn't respond timely in response to a customer message.

Publisher

String

BOT_NOT_AVAILABLE 

NOTIFICATION

not implemented yet


CUSTOMER_RESPONSE_TIMEOUT 

NOTIFICATION



TOPIC_STATE_CHANGED

NOTIFICATION


Publisher

CustomerTopic

ASSOCIATED_CUSTOMER_CHANGED

NOTIFICATION



MESSAGE_DELIVERY_NOTIFICATION

NOTIFICATION



WRAPUP_APPLIED ?

ACTIVITY



ACCEPT_TIMEOUT

NOTIFICATION



TASK_STATE_CHANGED

NOTIFICATION


TaskDto

REVOKE_RESOURCE 

NOTIFICATION


NA

Publisher

Consumer

JS
{
	"reasonCode": "<String>" 
}


CONVERSATION_DATA_CHANGED

NOTIFICATION


Publisher

Map<String, String> ... (any Key-value pairs)

PARTICIPANT_ROLE_CHANGED

NOTIFICATION


Consumer

Consumer

JS
{
    "conversationParticipant {},
    "metadata": {} // (any)
}


NO_AGENT_AVAILABLE

NOTIFICATION

NA

Consumer

NA


ACTION_MESSAGE 

MESSAGE


NA

Publisher

NA

CimMessage Object

CALL_LEG_ENDED

ACTIVITY


NA

Consumer

NA

CIMMessage

AGENT_OUTBOUND

ACTIVITY



TASK_ENQUEUED

ACTIVITY



MESSAGE_DELIVERY_NOTIFICATION

NOTIFICATION

Agent_manager fires it when the agent has read the customer message

Consumer

Publisher

CIMMessage

THIRD_PARTY_ACTIVITY

NOTIFICATION


Consumer

Consumer

CIMMessage

CHANNEL_SESSION_DATA_UPDATED

NOTIFICATION

CCM fire it when the channelSession data is update

Publisher

ChannelSession Object

CALL_HOLD

NOTIFICATION

CCM fires it when it receives this from Agent Desk on hold of a voice call

Publisher

JS
{
    ...
    "name": "CALL_HOLD",
    "type": "NOTIFICATION",
    "eventEmitter": {
      "type": "AGENT",
      ...
    },
    "data": {
      ... // CimMessage of VOICE type having dialog and call details
    }
    ...
}

CALL_RESUME

NOTIFICATION

CCM fires it when it receives this from Agent Desk on resume of a voice call

Publisher

JS
{
    ...
    "name": "CALL_RESUME",
    "type": "NOTIFICATION",
    "eventEmitter": {
      "type": "AGENT",
      ...
    },
    "data": {
      ... // CimMessage of VOICE type having dialog and call details
    }
    ...
}

MRD_INTERRUPTED

NOTIFICATION

Routing Engine fires it when an MRD is interrupted. Conversation Manager consumes this event

N/A

N/A

N/A

CODE
{
    ...
    "name": "MRD_INTERRUPTED",
    "type": "NOTIFICATION",
    "eventEmitter": {
      "type": "SYSTEM",
      ...
    },
    "data": {
      "mrdId": "123",
      "agentId": "123",
      "conversations": []  // list of convrsation IDs
    }
    ...
}

JavaScript errors detected

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

If this problem persists, please contact our support.