Call Detail CSV Extract Data Dictionary

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

  1. 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.
  2. Only conversations presented to a Queue will show up in this report.
    1. 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.
    2. There is a known issue where outbound calls placed on behalf of Queue will have a blank/null value for First Queue.
  3. Reasons the Call Detail Extract report could show numbers higher or lower than PureCloud or other reports:
    1. 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.
    2. 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

  1. 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.
  2. 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
                }
              ]
            }
          ]
        }
      ]
    }