This page describes the chat session event data that Contact Center AI Platform (CCAI Platform) can export to your quality management (QM) application. QM chat event data supports the web SDK and the mobile SDKs. For more information about integrating CCAI Platform with your QM application, see QM, SIPREC, and WFM integration.
For call session event data, see QM call session event data.
Chat session events and triggers
Certain session events trigger the export of chat session data to your QM application. This section lists the chat event types and includes a session event payload example for each one.
Chat started
This event is triggered when a human agent or a virtual agent starts a chat. The event payload contains the initial state of the chat, including information about the queue, participants, and the initiator.
The following code sample shows the event payload:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"support_number": null,
"session_type_v2": "In-web",
"chat_id": 138,
"state": "waiting",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "connected",
"type": "external",
"dn": "end_user_5"
}
]
}
Chat waiting for assignment
This event is triggered when a chat session enters a queue and is waiting for assignment.
The following code sample shows the event payload:
{
"queue_path_ids": "7/23",
"queue_path_names": "Test/virtual",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 196,
"state": "waiting",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "connected",
"type": "external",
"dn": "end_user_5"
}
]
}
Chat accepted
This event is triggered when a human agent or a virtual agent accepts a chat. This is an optional, intermediate event before an agent connects with a chat.
The following code sample shows an event payload for a human agent:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 167,
"state": "connected",
"direction": "incoming",
"initiator": "agent_1",
"participants": [
{
"state": "connected",
"type": "external",
"media_id": "MB0d0540e638354714a43d64e9be9677b6",
"dn": "end_user_5"
},
{
"state": "accepted",
"type": "agent",
"media_id": "MBd9670cb0cddd424c814194795527ae3a",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
The following code sample shows an event payload for a virtual agent:
{
"queue_path_ids": "7/23",
"queue_path_names": "Test/virtual",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 196,
"state": "connected",
"direction": "incoming",
"initiator": "virtual_agent_2",
"participants": [
{
"state": "connected",
"type": "external",
"media_id": "MBdfcdab9220f94f1486008a165db3f31a",
"dn": "end_user_5"
},
{
"state": "accepted",
"type": "virtual_agent",
"media_id": "MBea10421d150b4d22b675de17070bc383",
"dn": "virtual_agent_2"
}
]
}
Chat connected
This event is triggered when a chat is connected to a human agent or a virtual agent. This can be an auto-connection or a human agent manually connecting.
The following code sample shows an event payload for a human agent:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 114,
"state": "connected",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "connected",
"type": "external",
"media_id": "MB7a504ce7f418447bb4a48b8f3fa609d0",
"dn": "end_user_5"
},
{
"state": "connected",
"type": "agent",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
The following code sample shows an event payload for a virtual agent:
{
"queue_path_ids": "7/23",
"queue_path_names": "Test/virtual",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 196,
"state": "connected",
"direction": "incoming",
"initiator": "virtual_agent_2",
"participants": [
{
"state": "connected",
"type": "external",
"dn": "end_user_5"
},
{
"state": "connected",
"type": "virtual_agent",
"dn": "virtual_agent_2"
}
],
"connected_at": "2024-09-13T14:04:17.000-07:00"
}
Chat dismissed
This event is triggered when a chat session is canceled or terminated before a full connection is established—for example, it wasn't accepted or it ended prematurely.
The following code sample shows the event payload:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 197,
"state": "dismissed",
"direction": "incoming",
"initiator": "agent_1",
"participants": [
{
"state": "dismissed",
"type": "external",
"media_id": "MB444f542e9b9c4f89a8369bb2430357ad",
"dn": "end_user_5"
},
{
"state": "dismissed",
"type": "agent",
"media_id": "MB7e657411b2284f95b2cf31ef5e6dc83c",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
Chat resumed
This event is triggered when a previously paused or suspended chat session is resumed. The payload contains the state of the chat when it's resumed.
The following code sample shows the event payload:
{
"session_type_v2": "In-web",
"chat_id": 198,
"state": "resumed",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "resumed",
"type": "external",
"media_id": "MB320da61121bc4fc48ea099759f679333",
"dn": "end_user_5"
},
{
"state": "resumed",
"type": "agent",
"media_id": "MBbe5db89a01ab4814a8e7830daf3d30fa",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
Participant left the chat
This event is triggered when one or more participants leave a chat session. This can be an end-user, a human agent, or a virtual agent leaving the chat. The payload contains the state of the chat when the participants left it.
The following code sample shows the event payload for an end-user leaving a chat:
{
"session_type_v2": "In-web",
"chat_id": 169,
"state": "participantDisconnect",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "disconnected",
"type": "external",
"media_id": "MB4dd73370bc564cf18f5347233523ef44",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "agent",
"media_id": "MBba370f84cf914992b05e9aab03730c4b",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
The following code sample shows the event payload for a human agent leaving a chat:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 169,
"state": "participantDisconnect",
"direction": "incoming",
"initiator": "agent_1",
"participants": [
{
"state": "connected",
"type": "external",
"media_id": "MB4dd73370bc564cf18f5347233523ef44",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "agent"
"media_id": "MBba370f84cf914992b05e9aab03730c4b",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
]
}
The following code sample shows the event payload for a virtual agent leaving a chat:
{
"queue_path_ids": "7/23",
"queue_path_names": "Test/virtual",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 196,
"state": "participantDisconnect",
"direction": "incoming",
"initiator": "virtual_agent_2",
"participants": [
{
"state": "disconnected",
"type": "external",
"media_id": "MBdfcdab9220f94f1486008a165db3f31a",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "virtual_agent",
"media_id": "MBea10421d150b4d22b675de17070bc383",
"dn": "virtual_agent_2"
}
]
}
Chat ended
This event is triggered when a chat session ends. This can be an end-user, a human agent, or a virtual agent ending the chat. The payload contains the state of the chat when it ends, including the participants and the timestamps for when the chat connected and ended.
The following code sample shows the event payload for a human agent and end-user leaving a chat:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"support_number": null,
"session_type_v2": "In-web",
"chat_id": 127,
"state": "disconnected",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "disconnected",
"type": "external",
"media_id": "MB4a0a435e759c43369098ee7f2d0271f0",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "agent",
"media_id": "MBa4afeafb5bcc4a279f51db76f3b98deb",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
}
],
"connected_at": "2024-08-27T17:06:37.000-07:00",
"ends_at": "2024-08-27T17:06:59.000-07:00"
}
The following code sample shows the event payload for a virtual agent and end-user leaving a chat:
{
"queue_path_ids": "7/23",
"queue_path_names": "Test/virtual",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 190,
"state": "disconnected",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "disconnected",
"type": "external",
"media_id": "MB6ea6204b6a0448428d88e9976fd856d4",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "virtual_agent",
"media_id": "MBc6a2b72c99534a68990caf622b65571a",
"dn": "virtual_agent_2"
}
],
"connected_at": "2024-09-12T10:50:51.000-07:00",
"ends_at": "2024-09-12T11:54:08.000-07:00"
}
The following code sample shows the event payload for a chat ended while waiting in queue:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"support_number": null,
"session_type_v2": "In-web",
"chat_id": 141,
"state": "disconnected",
"direction": "incoming",
"initiator": "end_user_5",
"participants": [
{
"state": "disconnected",
"type": "external",
"media_id": "MB65670b2c44534af3860fad35be88ac41",
"dn": "end_user_5"
}
],
"connected_at": "",
"ends_at": "2024-08-29T14:41:16.000-07:00"
}
Chat session event fields
The following tables describe the fields in the session data that Contact Center AI Platform exports to your QM application.
General fields
Field name |
Values |
Description |
Condition |
---|---|---|---|
|
|
The event type of the overall JSON payload. |
|
|
The object with event information. |
Chat state fields
Field Name |
Values |
Description |
Condition |
---|---|---|---|
|
|
Available in the The chat session's identifier in the Contact Center AI Platform system. |
|
|
|
Available in the The current state of the chat session. |
|
|
|
Available in the The direction of the chat session from the contact center perspective. |
|
|
|
Available in the The identifier of the party that initializes the chat state. |
|
|
|
Available in the The queue path navigated by the end-user before reaching the first agent of the call. This value is constructed using the queue IDs of the navigated queue. |
|
|
|
Available in the The queue path navigated by the end-user before reaching the first agent of the call. This value is constructed using the queue names of the navigated queue. |
|
|
|
Available in the The language code of the end-user's selected language. |
|
|
|
Available in the The UUID of the queue that the chat has been routed to. |
|
|
|
Available in the The name of the instance hosting the chat. |
|
|
|
Available in the An identifier for the chat session. |
|
|
|
Available in the A timestamp for the chat in Unix epoch time |
|
|
|
Available in the Indicates a web SDK chat session. |
|
|
|
|
|
|
|
Available in the The date and time the chat session began. |
|
|
|
Available in the The date and time the chat session ended. |
|
|
Available in the An object containing the call participant's information. |
||
|
|
Available in the The identifier of the chat participant. |
|
|
|
Available in the The type of the call participant. |
|
|
|
Available in the The participant's current state in the chat conference. |
|
|
|
Available in the The identifier for chat session media from the carrier. |
|
|
|
Available in the The directory number of the participant. |
|
|
Available in the |
||
|
Available in the |
||
|
Available in the |
Chat session transfers
Chat session transfers are not distinct chat events. Rather, they are payloads
that indicate that a chat session transfer has occurred. This section shows a
chat session transfer payload that's triggered when an agent leaves a chat. In
this example, the initiator
field value is agent_1
, indicating that agent 1
initiated the transfer. In the participants
array, agent_1
has a state of
disconnected
and agent_2
has a state of connected
. This indicates that the
session has been transferred from agent 1 to agent 2, with agent 1 leaving the
chat and agent 2 joining. The value of the overall state
field in this example
is participantDisconnect
, but you could model your system to have an overall
state of transferred
or connected
if you prefer. You could also model your
system to have additional fields to more explicitly represent a session
transfer—for example, transfer_id
or a dedicated transfer event type.
The following code sample show an event payload for a session transfer:
{
"queue_path_ids": "7/26",
"queue_path_names": "Test/calls",
"language": "en",
"session_type_v2": "In-web",
"chat_id": 208,
"state": "participantDisconnect",
"direction": "incoming",
"initiator": "agent_1",
"participants": [
{
"state": "connected",
"type": "external",
"media_id": "MBed9193af0a82486cbad069925b5a0b18",
"dn": "end_user_5"
},
{
"state": "disconnected",
"type": "agent",
"media_id": "MB05685c80e6af444faa1de5c5e48a26c7",
"agent_number": "Uno numero",
"name": "Admin UJET",
"alias": "super_agent",
"dn": "agent_1"
},
{
"state": "connected",
"type": "agent",
"media_id": "MB5caad80c7d94477d9db9c5f1c3662768",
"agent_number": "420",
"name": "ajay1 ujet",
"alias": "ajay1-alias",
"dn": "agent_2"
}
]
}