Contents
Purpose
This document explains the metric definitions for columns in the PureInsights Call Detail CSV Extract that is bundled with our PureInsights Configurable Dashboard.
Notes
- Almost all numeric values in the file are calculated based on 1 or more segments that take place in the conversation. See Appendix for more on conversations, segments, calculations and a more detailed description of these metrics as it relates to those terms.
- Only conversations presented to a Queue will show up in this report.
- Voice calls, for example, that abandon during the initial menu prompt or IVR options before routing to Queue are not included in this report currently.
- There is a known issue where outbound calls placed on behalf of Queue will have a blank/null value for First Queue.
- Reasons the Call Detail Extract report could show numbers higher or lower than PureCloud or other reports:
- Each time an agent transfers a call to a Queue it increments Offered for that Queue, even though in PureCloud the conversation is tracked by a single conversation ID.
- As mentioned above, only conversations presented to a Queue are reflected in this report. Comparing the report to a telecom DNIS report, for example, might show different results.
Metrics Overview
abandon | Yes if a call was waiting in queue for an agent when it disconnected, otherwise No. |
abandonQueue | The queue in which the call abandoned. |
agentHandleCount | The number of times any agent has picked up an interaction. The number of times when participant.purpose is “agent” and segment type is “interact”. |
agentInteractionTime | Talk time for the acd call in seconds, when the agent was connected with the caller. More generically when applied to other media types like chat this is “interaction time.” |
alertCount | The number of times any agent is alerted for an interaction. Example: a call is presented to an agent who does not pick up, and the call is then presented to another agent, the alert count would be 2 for this call. |
alertTime | The total number of seconds the interaction was presented to agent(s). Another way to think of this as “time the phone rang before you answered.” |
ani | CallerID for the interaction, if available. |
conversationID | Unique identifier in the system for this conversation. |
conversationStart | Start date time for this conversation in UTC, denoted with a z for Zulu Time. |
direction | Was the interaction inbound to the system or placed outbound to a 3rd party. Example: a customer calling in to a queue would be an inbound call. |
dnis | Dialed Number Information Service is the phone number the caller dialed to reach the system. |
firstQueue | Name of the first queue for the interaction. |
holdCount | The number of times a conversation was put on hold. |
holdTotal | The total time a conversation was put on hold in seconds. |
ivrCount | Number of times the interaction was in an IVR (aka voice prompts / menus). Example: If a caller listened to a menu and pressed an option for Customer Service and was placed into queue, talked to an agent and then disconnected, ivrCount for this call would be 1. If, during the conversation with the agent, the agent transferred the caller back into the IVR for additional self service and then the caller selected other menu options and disconnected, ivrCount for this call would be 2. |
ivrTime | How much time the call spent in all IVR sessions in seconds (see ivrCount). |
mediaType | The mediaType property from the first session of the first participant in a conversation, such as voice, chat or email. |
queueCount | This count will increase each time a call enters a queue. Example, if a caller talks to Customer Service and is then transferred by an agent to Sales, queueCount would be 2. |
remoteName | The name associated with the CallerID, if available. |
totalAlertTime | Total time an interaction spent alerting an agent in seconds. This metric is calculated separately from totalQueueWaitTime. Example: a call is alerting an agent, who does not pick it up, and so the call is presented to another agent to alert. totalAlertTime would include the alerting time for both agents. |
totalQueueWaitTime | Time the interaction spent waiting in any queue in seconds. |
totalWrapUpTime | Total time all agents who were connected to the interaction spent in Wrap Up after disconnecting the interaction in seconds. |
voicemailDuration | Time the interaction spent in voicemail in seconds. |
wentToVoicemail | Did the call go to voicemail? Yes or no. |
wrapUpCount | The number of times the interaction had an agent in Wrap Up. |
Appendix
This appendix explains in more detail about how PureCloud(™) stores data about interactions and how the PureInsights Extractor for PureCloud uses that data to calculate values in the call detail export file. This version of the metric definitions provide a more technical description as it relates to other information in the conversation. See below the table for more detail.
abandon | Yes if a call was waiting in queue for an agent when it disconnected, otherwise No. |
abandonQueue | The queue in which the call abandoned. |
agentHandleCount | The number of times any agent has picked up an interaction. The number of times when participant.purpose is “agent” and segment type is “interact”. |
agentInteractionTime | The sum of segment durations when participant.purpose is “agent” and segment type is “interact” |
alertCount | The number of times when participant.purpose is “agent” and segment type is “alert”. The number of times any agent is alerted for an interaction. |
ani | The ani property from the first session of the first participant in a conversation. |
direction | The direction property from the first session of the first participant in a conversation |
dnis | The dnis property from the first session of the first participant in a conversation |
firstQueue | The value of participant.participantName where participant.purpose is “acd”. |
holdCount | The number of times a conversation was put on hold. |
holdTotal | The total time a conversation was put on hold in seconds. |
ivrCount | The number of times a participant.purpose is “ivr”. If a conversation enters the IVR multiple times, each time will be reflected in ivrCount |
ivrTime | The sum of segment durations when participant.purpose is “ivr” and segment type is “ivr”. |
mediaType | The mediaType property from the first session of the first participant in a conversation |
queueCount | The number of times a participant.purpose is “acd”. This count will increase each time a call enters a queue. |
totalAlertTime | The sum of segment durations when participant.purpose is “agent” and segment type is “alert”. |
totalQueueWaitTime | The sum of segment durations when participant.purpose is “acd” and segment type is “interact”. |
totalWrapUpTime | The sum of segment durations when participant.purpose is “agent” and segment type is “wrapup” |
voicemailDuration | The sum of segment durations when participant.purpose is “voicemail” and segment type is “interact”. |
wentToVoicemail | “yes” if there is ever a participant with purpose = “voicemail”. |
wrapUpCount | The number of times when participant.purpose is “agent” and segment type is “wrapup” |
Conversations Overview
PureCloud™ stores interaction data in what are called conversations, which are composed of data for multiple segments, with 1 segment for each party in the conversation. The entire conversation is represented with JSON.
As you can see in the example below, START and END time exists for each segment, so getting to a metric like call duration, requires getting all the start and end times from the conversation and adding them together.
For a metric like Wait Time, typically how long a caller waited in queue before they spoke to an agent, taking just some of the values of time would be required, such as Alert Time and Total Queue Wait Time for a conversation. To understand the conversation end date and time, all cumulative start and end times would need to be pulled for each applicable segment, duration calculated and then summarized across those segments.
The PureCloud™ Metric Definitions page in the Resource Center does not currently explain which segments of a conversation are used to calculate the metrics that appear on PureCloud Standard Reports.
The PureInsights Extractor for PureCloud provides sufficient raw data to create these types of aggregate metrics. Our team is interested in hearing from you if you have requirements for additional columns to add into the extract file.
For more information see Conversation detail query and Analytics overview in the Developer Center.
Notes
- Queues selected will include additional data from Queues that were not selected if calls were Transferred. Example: Run the Extract for the Sales Queue (only) and some calls were transferred to Customer Service.
- Abandons and Agent Talk Time (and others like Last Wrap Up Code) can show up for a Conversation if the interaction was Transferred from one Queue by an agent and the call was Abandoned before being answered on the second Queue. Example: Agents in the Sales Queue takes a call and, after speaking with the caller, Transfers them to Customer Service, but the caller hangs up before an agent in the Customer Service Queue answers the call.
Conversation Example
{ "conversationId": "bb1adebd-56e9-4ef8-9983-add11a56b1c6", "conversationStart": "2016-08-24T23:45:35.519Z", "participants": [ { "participantId": "c7ebd774-525c-4b81-8015-8a80bf43b57c", "participantName": "Japan", "purpose": "customer", "sessions": [ { "mediaType": "voice", "sessionId": "b63e47d2-7263-4301-bf21-ac6a25291eb0", "ani": "tel:+817927299003", "direction": "inbound", "dnis": "tel:+18667771185", "segments": [ { "segmentStart": "2016-08-24T23:45:35.519Z", "segmentEnd": "2016-08-24T23:45:35.599Z", "segmentType": "system", "conference": false }, { "segmentStart": "2016-08-24T23:45:35.599Z", "segmentEnd": "2016-08-24T23:56:17.698Z", "segmentType": "interact", "properties": [ { "propertyType": "uuid", "property": "recordingId", "value": "9ef2a419-0071-44fc-8c61-ff4ed42becca" } ], "conference": false } ] } ] }, { "participantId": "363f6802-3bb0-4f1b-8366-32d088dde2eb", "participantName": "Toll Free", "purpose": "ivr", "sessions": [ { "mediaType": "voice", "sessionId": "e03461f7-f955-447f-baf1-0e6e3cf373be", "ani": "tel:+817927299003", "direction": "inbound", "segments": [ { "segmentStart": "2016-08-24T23:45:35.905Z", "segmentEnd": "2016-08-24T23:45:35.949Z", "segmentType": "system", "conference": false }, { "segmentStart": "2016-08-24T23:45:35.949Z", "segmentEnd": "2016-08-24T23:45:47.859Z", "segmentType": "ivr", "conference": false } ] } ] }, { "participantId": "9c6ccaf2-9139-441c-b638-4a611cfbcee8", "participantName": "Marketing", "purpose": "acd", "sessions": [ { "mediaType": "voice", "sessionId": "dc2885d6-addb-4e1a-bfd9-7dcc20fe743c", "ani": "tel:+817927299003", "direction": "inbound", "segments": [ { "segmentStart": "2016-08-24T23:45:47.927Z", "segmentEnd": "2016-08-24T23:45:47.975Z", "queueId": "31c3f38b-0161-44c8-a126-0301a89df26e", "segmentType": "delay", "conference": false }, { "segmentStart": "2016-08-24T23:45:47.975Z", "segmentEnd": "2016-08-24T23:45:48.580Z", "queueId": "31c3f38b-0161-44c8-a126-0301a89df26e", "disconnectType": "transfer", "segmentType": "interact", "sipResponseCodes": [ 410 ], "conference": false } ] } ] }, { "participantId": "78581adc-e091-4604-89b6-9d6bddea96b9", "userId": "c4a0004f-973f-4db4-967e-4d979931c919", "purpose": "agent", "sessions": [ { "mediaType": "voice", "sessionId": "c43c3e98-ad2c-476a-83f3-1f6e77531be9", "ani": "sip:[email protected];user=phone", "direction": "inbound", "dnis": "sip:[email protected]", "edgeId": "bf86a7ee-593e-474e-8cea-3a9dad7b491d", "segments": [ { "segmentStart": "2016-08-24T23:45:48.406Z", "segmentEnd": "2016-08-24T23:45:48.498Z", "queueId": "31c3f38b-0161-44c8-a126-0301a89df26e", "segmentType": "alert", "conference": false }, { "segmentStart": "2016-08-24T23:45:48.498Z", "segmentEnd": "2016-08-24T23:56:17.992Z", "queueId": "31c3f38b-0161-44c8-a126-0301a89df26e", "disconnectType": "endpoint", "segmentType": "interact", "conference": false }, { "segmentStart": "2016-08-24T23:56:19.600Z", "segmentEnd": "2016-08-24T23:56:35.600Z", "queueId": "31c3f38b-0161-44c8-a126-0301a89df26e", "wrapUpCode": "0983df3c-3486-4f88-8608-699f41078792", "wrapUpNote": "", "disconnectType": "endpoint", "segmentType": "wrapup", "conference": false } ] } ] } ] }