Skip to main content

CC Historical Analytics Detailed Report

Approach for JSON vs XLSX/CSV

The common historical-metrics endpoint has a limitation where the JSON /data response is limited to 10,000 records. The XLSX/CSV download available at historical-metrics/detailed-report does not have this limitation.

To overcome this limitation the historical-metrics/detailed-report endpoint is available to allow for consumers to access JSON format data for large result sets expected with detailed reports.

❗️ Requirement: for CSV/XLSX content

Leverage the historical-metrics endpoint. CSV/XLSX is not available via historical-metrics/detailed-report

❗️Strong Recommendation: for JSON content

Leverage the historical-metrics/detailed-report endpoint and the result set won't be limited to 10,000 records.

This guarantees a full result set regardless of the size of the response.

📘 You will need a working API key to begin

How to get API Keys

The base URL is region specific, based on the location of your Contact Center tenant.

  • United States: https://api.8x8.com/analytics/cc/{version}/historical-metrics/
  • Europe: https://api.8x8.com/eu/analytics/cc/{version}/historical-metrics/
  • Asia-Pacific: https://api.8x8.com/au/analytics/cc/{version}/historical-metrics/
  • Canada: https://api.8x8.com/ca/analytics/cc/{version}/historical-metrics/
  • {version} to be replaced by current Version. As of August 2025 this is 8 resulting in /v8/

1. Authenticate to retrieve access token

OAuth Authentication for 8x8 XCaaS APIs is used to get a temporary access_token for use in with this API

Outputs For Next Step:

  • access_token
  • expires_in

The following steps will use the access_token as a Bearer Token form of authentication. This takes the form of the

Authorization header being set to Bearer access_token (Space between Bearer and the access_token)

2 Multitenancy support

If the API is used for a multitenant customer the requests should contain "X-Tenant-Info" header variable where needs to specify the desired tenantId. The "X-Tenant-Info" header is not mandatory in case of a single tenant customer.

The following error messages could be returned when dealing with a multitenant customer:

  • if for a multitenant customer request the "X-Tenant-Info" header is not provided the HTTP 400 code along with "Bad request: X-Tenant-Info header is missing." message will be returned
  • if a wrong tenantId is provided the HTTP 400 code along with "Bad request: Invalid value for X-Tenant-Info header." message will be returned

3. Get Available Report Types

CC Historical Analytics allows the consumer to get a listing of the available reports including information about their options and available data.

📘 Available Detailed Reports

Currently detailed-reports-interaction-details and detailed-reports-agent-status-change are the available detailed interaction reports. For detailed Post-call survey reports, see the Post Call Survey section.

Additional information about each of the reports and detailed definitions of metrics can be found in the Interaction Details Report Metrics Glossary and Agent Status Change Detail

Parameters

Method: GET

Headers

NameRequiredDescriptionExample
AuthorizationPass the access_token returned from the authentication request as a Bearer token Bearer {access_token}Bearer kfjdfi3jfopajdkf93fa9pjfdoiap

Path

NameRequiredDescriptionExample
versionThe current version is v8v8
report-typeSpecific report type to get information on. Omit this parameter to get all report types.agent-status-by-status-code

API reference

Report Types Request

The response shows each report-type that's available.

all report typessingle report type

curl --location --request GET 'https://api.8x8.com/analytics/cc/v8/historical-metrics/report-types' \
--header 'Authorization: Bearer {access_token}'

curl --location --request GET 'https://api.8x8.com/analytics/cc/v8/historical-metrics/report-types/detailed-reports-interaction-details' \
--header 'Authorization: Bearer {access_token}'

Report Types Response

The response shows each report-type that's available.

Outputs For Next Step:

For detailed reports the response has a number of elements to guide the usage:

  • type each report type has a unique definition
  • metrics these are the available metrics for the report type. When creating a report. See the Interaction Details Report Metrics Glossary and Agent Status Change Detail for additional detail on the definition of the available metrics
    • if no metrics are specified: All metrics will be returned
    • if metrics are specified: ONLY the specified metrics will be returned
  • searchQuery Provides information on the searchable fields and the operators for those searches. See searchQuery below for more detailed description.
    • fields field name of searchable field
    • operators list of valid operators

Generic Example:

    [
{
"type": "report type name",
"metrics": [
"report metric 1",
"report metric 2"
],
"searchQuery": {
"fields": [
"searchable field 1",
"searchable field 2"
],
"operators": [
"=",
"!=",
">",
">=",
"<=",
"<",
"contains",
"not-in",
"in",
"is-empty",
"is-not-empty"
]
}
}
]

Sample Response for single report type

{
"type": "detailed-reports-interaction-details",
"metrics": [
"agentNotes",
"blindTransferToAgent",
"blindTransferToQueue",
"campaignId",
"campaignName",
"caseFollowUp",
"caseNumber",
"channelId",
"conferencesEstablished",
"consultationsEstablished",
"creationTime",
"customerName",
"destination",
"direction",
"dispositionAction",
"externalTransactionData",
"finishedTime",
"interactionId",
"interactionLabels",
"interactionType",
"ivrTreatmentDuration",
"mediaType",
"originalInteractionId",
"originalTransactionId",
"origination",
"outboundPhoneCode",
"outboundPhoneCodeId",
"outboundPhoneCodeList",
"outboundPhoneCodeListId",
"outboundPhoneCodeText",
"outboundPhoneShortCode",
"participantAssignNumber",
"participantBusyDuration",
"participantHandlingDuration",
"participantHandlingEndTime",
"participantHold",
"participantHoldDuration",
"participantId",
"participantLongestHoldDuration",
"participantName",
"participantOfferAction",
"participantOfferActionTime",
"participantOfferDuration",
"participantOfferTime",
"participantProcessingDuration",
"participantType",
"participantWrapUpDuration",
"participantWrapUpEndTime",
"queueId",
"queueName",
"queueTime",
"queueWaitDuration",
"recordId",
"time",
"transactionId",
"warmTransfersCompleted",
"wrapUpCode",
"wrapUpCodeId",
"wrapUpCodeList",
"wrapUpCodeListId",
"wrapUpCodeText",
"wrapUpShortCode"
],
"searchQuery": {
"fields": [
"agentNotes",
"blindTransferToAgent",
"blindTransferToQueue",
"campaignId",
"campaignName",
"caseFollowUp",
"caseNumber",
"channelId",
"conferencesEstablished",
"consultationsEstablished",
"creationTime",
"customerName",
"destination",
"direction",
"dispositionAction",
"externalTransactionData",
"finishedTime",
"interactionId",
"interactionLabels",
"interactionType",
"ivrTreatmentDuration",
"mediaType",
"originalInteractionId",
"originalTransactionId",
"origination",
"outboundPhoneCode",
"outboundPhoneCodeId",
"outboundPhoneCodeList",
"outboundPhoneCodeListId",
"outboundPhoneCodeText",
"outboundPhoneShortCode",
"participantAssignNumber",
"participantBusyDuration",
"participantHandlingDuration",
"participantHandlingEndTime",
"participantHold",
"participantHoldDuration",
"participantId",
"participantLongestHoldDuration",
"participantName",
"participantOfferAction",
"participantOfferActionTime",
"participantOfferDuration",
"participantOfferTime",
"participantProcessingDuration",
"participantType",
"participantWrapUpDuration",
"participantWrapUpEndTime",
"queueId",
"queueName",
"queueTime",
"queueWaitDuration",
"recordId",
"time",
"transactionId",
"warmTransfersCompleted",
"wrapUpCode",
"wrapUpCodeId",
"wrapUpCodeList",
"wrapUpCodeListId",
"wrapUpCodeText",
"wrapUpShortCode"
],
"operators": [
"=",
"!=",
">",
">=",
"<=",
"<",
"contains",
"not-in",
"in",
"is-empty",
"is-not-empty"
]
}
}

3.1. Interaction Details Report Metrics Glossary

This glossary provides comprehensive definitions for all metrics available in the detailed-reports-interaction-details report type. Use this reference when selecting metrics for your reports and understanding the data returned.

Click to expand Metrics Glossary (83 metrics)

Version indicates minimum CC Historical Analytics API version where metric became available.

FieldVersionDescriptionAllowed Filter OperatorsPredefined Filter Values
agentNotesv3+Free-text notes added by the agent on the interaction for reference and quality purposes. These notes can be used for documentation, follow-up actions, or quality assurance.in, not-in, contains, is-empty, is-not-empty
blindTransferToAgentv3+Total blind transfers initiated and received by an agent outside queues=, !=, >, >=, <, <=, is-empty, is-not-empty
blindTransferToQueuev3+Total blind transfers to queues initiated by an agent=, !=, >, >=, <, <=, is-empty, is-not-empty
campaignIdv3+Unique identifier of the outbound campaign associated with this interaction. This field is populated when the interaction originates from an outbound campaign.in, not-in, contains, is-empty, is-not-empty
campaignNamev3+Human-readable name of the outbound campaign associated with this interaction. This field is populated when the interaction originates from an outbound campaign.in, not-in, contains, is-empty, is-not-empty
caseFollowUpv3+The CRM case follow-up associated with the interactionin, not-in, contains, is-empty, is-not-empty
caseNumberv3+The CRM case associated with the interactionin, not-in, contains, is-empty, is-not-empty
channelIdv3+The channel through which an incoming interaction was directed.in, not-in, contains, is-empty, is-not-empty
channelNamev7+A unique name for the channel that allows you to easily identify the location of an interaction.in, not-in, contains, is-empty, is-not-empty
chatTypev6+The specific digital channel platform used for chat-based interactions. Possible values:
ChatApi: Standard 8x8 Chat API integration
RCS: Rich Communication Services messaging
SMS: Short Message Service text messaging
Facebook: Facebook Messenger
Twitter: Twitter Direct Messages
WebChat: Browser-based web chat
Viber: Viber messaging platform
WhatsApp: WhatsApp messaging platform
in, not-in, contains, is-empty, is-not-emptychatApi, webChat, facebook, twitter, rcs, sms, whatsApp, viber
conferencesEstablishedv3+Total number of conferences established by the agent=, !=, >, >=, <, <=, is-empty, is-not-empty
consultationsEstablishedv3+Times an agent successfully established an outbound call while another call is on hold=, !=, >, >=, <, <=, is-empty, is-not-empty
creationTimev3+Timestamp when the interaction was createdNot filterable
customerJourneyDurationv3+Time duration a customer spent on an interaction including script time, queue time, handling time, hold time, and post-call survey time (when applicable)=, !=, >, >=, <, <=, is-empty, is-not-empty
customerNamev3+The name of the customer, if availablein, not-in, contains, is-empty, is-not-empty
destinationv3+The point where the interaction landed.in, not-in, contains, is-empty, is-not-empty
destinationQueueIdv8+The unique ID of the last queue an interaction was routed to, even if the interaction didn't wait in that queue.in, not-in, contains, is-empty, is-not-empty
destinationQueueNamev8+The name of the last queue an interaction was routed to, even if the interaction didn't wait there.in, not-in, contains, is-empty, is-not-empty
directionv3+Indicates whether the interaction was initiated by the customer or the agent. Possible values:
InboundDir: Customer-initiated interaction
OutboundDir: Agent-initiated interaction

For phone calls, this indicates the call direction. For chats, this reflects who started the conversation. For emails, this shows whether it was an incoming customer email or an outgoing agent email.
in, not-in, contains, is-empty, is-not-emptyinbound, outbound
dispositionActionv3+Automated action assigned to the interaction that determines how subsequent contact attempts are handled in campaigns. Possible values:
NoCode: No automated action applies
TryAgain: Automatically retry contact per campaign settings
ScheduleCallback: Schedule callback with agent
DoNotCall: Mark record as non-contactable
in, not-in, contains, is-empty, is-not-emptynoCode, tryAgain, scheduleCallback, doNotCall
externalTransactionDatav3+Custom data passed from external systems or CRM integrations associated with the interaction. This field contains integration-specific information that can be used for reporting and analysis.in, not-in, contains, is-empty, is-not-empty
facebookIdv7+Unique Facebook identifier associated with a customer interaction, if availablein, not-in, contains, is-empty, is-not-empty
finishedTimev3+Timestamp when the interaction was finishedNot filterable
interactionDurationv3+Total time spent in script, queue, and handling. Does not include wrap-up time.=, !=, >, >=, <, <=, is-empty, is-not-empty
interactionIdv3+Contact Center's internal interaction IDin, not-in, contains, is-empty, is-not-empty
interactionLabelsv3+A list of labels that represent important events that took place in the interaction; see below for possible values:
Queued: Interaction placed into a queue awaiting an available agent
Dequeued: Previously queued interaction was removed from the queue
Abandoned: Customer ended the interaction while waiting in queue before reaching an agent
TransferredToAgent: Interaction was routed to a specific agent through agent routing
Rejected: Agent declined the interaction when it was offered
OfferingTimeout: Agent did not respond to the interaction offer within the timeout period
Handled: Agent accepted and processed the interaction
TransferredToQueue: Interaction was transferred to another queue by the agent
Deleted: Interaction was removed from the system
ForwardedToQueue: Script forwarded the interaction to a queue
ForwardedToVoicemail: Script directed the interaction to a voicemail system
ForwardedToCallback: Interaction was scheduled for a callback
EndedInIvr: Customer disconnected while in the IVR before reaching queue, agent, or voicemail
ConsultationEstablished: Agent initiated an internal consultation call with another agent
UnknownOutcome: System could not determine the final outcome of the interaction
Canceled: Scheduled callback expired without agent availability or was cancelled
ForwardedToExternalNumber: Interaction was routed to an external phone number
OutboundSmsSent: Outbound SMS or RCS message was successfully sent
VideoSmsSent: Video SMS or RCS message was successfully sent
RepliedToEmail: Agent sent a response to the customer's email
PostCallSurveyCallback: Post-call survey was scheduled as a callback interaction
PostCallSurveyStayOnCall: Customer remained on the call to complete the post-call survey
ForwardedToExternalIvr: Interaction was routed to an external IVR system
ForwardedToAgentIndividualVoicemail: Interaction was directed to a specific agent's personal voicemail
BlindTransfer: Interaction was transferred directly without agent consultation
TransferToAnotherNumber: Interaction was redirected to a different phone number
DirectAgentAccess: Customer reached an agent directly without going through a queue
DirectAgentRouting: Interaction was routed directly to a specific agent
ConferenceEstablished: Multi-party conference call was created
in, not-in, contains, is-empty, is-not-emptyQueued, Dequeued, Abandoned, TransferredToAgent, Rejected, OfferingTimeout, Handled, TransferredToQueue, Deleted, ForwardedToQueue, ForwardedToVoicemail, ForwardedToCallback, EndedInIvr, ConsultationEstablished, UnknownOutcome, Canceled, ForwardedToExternalNumber, OutboundSmsSent, VideoSmsSent, RepliedToEmail, PostCallSurveyCallback, PostCallSurveyStayOnCall, ForwardedToExternalIvr, ForwardedToAgentIndividualVoicemail, BlindTransfer, TransferToAnotherNumber, DirectAgentAccess, DirectAgentRouting, ConferenceEstablished
interactionTypev3+Categorizes the interaction type for special scenarios. Empty for regular inbound interactions. Possible values:
OutboundCall: Outbound call made by agent manually, as opposed to other options (campaign, callback)
Callback: Inbound call selected for callback
VerificationCall: Verification call
InternalCall: Call between two internal users
ConsultationCall: Internal call made while agent was working on another interaction in busy state
Campaign: Campaign call
PostCallSurveyCallback: Callback for post-call survey
in, not-in, contains, is-empty, is-not-emptyOutboundCall, Callback, VerificationCall, InternalCall, ConsultationCall, Campaign, PostCallSurveyCallback
ivrTreatmentDurationv3+Total time caller spent in IVR, excluding queue time=, !=, >, >=, <, <=, is-empty, is-not-empty
journeyIdv8+A unique ID that groups all segments of an interaction across transfers, representing the full customer journey.in, not-in, contains, is-empty, is-not-empty
mediaTypev3+The communication channel type for the interaction. Possible values: Phone, Chat, Email, VoiceMailin, not-in, contains, is-empty, is-not-emptyphone, chat, email, voiceMail
originalInteractionIdv3+The interaction ID of the parent interactionin, not-in, contains, is-empty, is-not-empty
originalTransactionIdv3+The transaction ID of the parent interactionin, not-in, contains, is-empty, is-not-empty
originationv3+The point where the interaction originated fromin, not-in, contains, is-empty, is-not-empty
outboundPhoneCodev3+The Menu Name of the outbound phone code item chosen by the agent (optional, outbound only)in, not-in, contains, is-empty, is-not-empty
outboundPhoneCodeIdv3+The ID of the outbound phone code item (optional)in, not-in, contains, is-empty, is-not-empty
outboundPhoneCodeListv3+The code list the code is part of (optional)in, not-in, contains, is-empty, is-not-empty
outboundPhoneCodeListIdv3+The ID of the outbound phone code list the code is part of (optional)in, not-in, contains, is-empty, is-not-empty
outboundPhoneCodeTextv3+The Report Text of the outbound phone code item (optional)in, not-in, contains, is-empty, is-not-empty
outboundPhoneShortCodev3+The Short Code of the outbound phone code item (optional)in, not-in, contains, is-empty, is-not-empty
outcomev3+The final outcome label of the interaction, indicating how it concluded. This represents the terminal state of the interaction from the system's perspective. Possible values are the same as those defined in the interactionLabels field above.in, not-in, contains, is-empty, is-not-emptyQueued, Dequeued, Abandoned, TransferredToAgent, Rejected, OfferingTimeout, Handled, TransferredToQueue, Deleted, ForwardedToQueue, ForwardedToVoicemail, ForwardedToCallback, EndedInIvr, ConsultationEstablished, UnknownOutcome, Canceled, ForwardedToExternalNumber, OutboundSmsSent, VideoSmsSent, RepliedToEmail, PostCallSurveyCallback, PostCallSurveyStayOnCall, ForwardedToExternalIvr, ForwardedToAgentIndividualVoicemail, BlindTransfer, TransferToAnotherNumber, DirectAgentAccess, DirectAgentRouting, ConferenceEstablished
participantAssignNumberv3+An ordinal number for each agent assignment (first agent gets 1, second agent gets 2, and so on)=, !=, >, >=, <, <=, is-empty, is-not-empty
participantBusyDurationv3+Combined time agents spent in Offering, Handling, and Wrap-up states=, !=, >, >=, <, <=, is-empty, is-not-empty
participantGroupIdv3+The unique identifier of the specific group to which an agent belongsin, not-in, contains, is-empty, is-not-empty
participantGroupNamev3+The name of the specific group to which an agent belongsin, not-in, contains, is-empty, is-not-empty
participantHandlingDurationv3+Time between Offer Action Time and Handling End Time, calculated individually per participant=, !=, >, >=, <, <=, is-empty, is-not-empty
participantHandlingEndTimev3+Timestamp for when the 'handling' phase of the interaction finishedNot filterable
participantHoldv3+Counter of times the agent placed a call on hold=, !=, >, >=, <, <=, is-empty, is-not-empty
participantHoldDurationv3+The total duration of time the call was put on hold=, !=, >, >=, <, <=, is-empty, is-not-empty
participantIdv3+If the participant is an agent, then the agent ID; empty for external numbersin, not-in, contains, is-empty, is-not-empty
participantLongestHoldDurationv3+The longest continuous duration for which the call was put on hold=, !=, >, >=, <, <=, is-empty, is-not-empty
participantLongestMuteDurationv3+The longest continuous mute period by any agent during the interaction. This identifies the maximum single mute duration.=, !=, >, >=, <, <=, is-empty, is-not-empty
participantMutev3+Count of times agents muted their audio during the interaction. This metric tracks how many times the mute function was activated.=, !=, >, >=, <, <=, is-empty, is-not-empty
participantMuteDurationv3+Total cumulative time agents spent on mute during the interaction. This represents the sum of all mute periods.=, !=, >, >=, <, <=, is-empty, is-not-empty
participantNamev3+An agent name to whom the interaction was assigned, or a customer's display namein, not-in, contains, is-empty, is-not-empty
participantOfferActionv3+Action taken in response to an interaction offer. Multiple offer actions can occur if interaction is offered multiple times. Possible values:
Accepted: Agent accepted the offer
Rejected: Agent explicitly rejected the offer
OfferTimeout: Agent did not respond within timeout period
Abandoned: Customer hung up during offer while interaction was queued
CustomerHangUp: Customer hung up during offer while interaction was not queued
in, not-in, contains, is-empty, is-not-emptyaccepted, rejected, offerTimeout, abandoned, customerHangUp
participantOfferActionTimev3+Timestamp for when the participant took the actionNot filterable
participantOfferDurationv3+Duration between agent offer time and agent action time=, !=, >, >=, <, <=, is-empty, is-not-empty
participantOfferTimev3+Timestamp for when the interaction was offered to the participantNot filterable
participantProcessingDurationv3+Combined time spent by agents in Handling and Wrap-up states=, !=, >, >=, <, <=, is-empty, is-not-empty
participantTypev3+The type of participant in the interaction. Possible values: Agent, ExternalNumberin, not-in, contains, is-empty, is-not-emptyagent, externalNumber
participantWrapUpDurationv3+Duration between the start-post-processing and end-post-processing times=, !=, >, >=, <, <=, is-empty, is-not-empty
participantWrapUpEndTimev3+Timestamp for when the agent finished wrap-upNot filterable
queueIdv3+A unique identifier for the queue. This is an optional column.in, not-in, contains, is-empty, is-not-empty
queueNamev3+The name of the queue through which the interaction was directed. This is an optional column.in, not-in, contains, is-empty, is-not-empty
queueTimev3+The exact timestamp when the interaction entered the queue. This marks the moment when the interaction became available for agent assignment.Not filterable
queueWaitDurationv3+Time spent waiting in queue between queued and first accepted events=, !=, >, >=, <, <=, is-empty, is-not-empty
recordIdv3+Identifier for the record associated with a campaign. This field is populated when the interaction originates from an outbound campaign.in, not-in, contains, is-empty, is-not-empty
recordingFileNamesv3+List of all recording file names associated with this interaction. Multiple recordings are comma-separated. This field helps locate and access recorded media for quality assurance and compliance.in, not-in, contains, is-empty, is-not-empty
scheduleHoursv3+Indicates whether the interaction occurred during scheduled business hours or outside hours. Possible values:
Open: Interaction occurred during scheduled business hours
Closed: Interaction occurred outside scheduled business hours
in, not-in, contains, is-empty, is-not-emptyOpen, Closed
statev3+Current processing state of the interaction within the system workflow. This indicates where the interaction is in its lifecycle. Possible values:
InScript: Interaction is being processed through a Script
WaitingInQueue: Interaction is queued waiting for an available agent
Handling: Interaction is actively being handled by an agent
Finished: Interaction has been completed
TransferredToExternalNumber: Interaction was transferred to another phone number
InWrapUp: Agent is completing post-interaction wrap-up activities
WaitingForInitiator: Interaction is waiting for the initiating party to respond
DelayedCallback: Interaction is scheduled for a future callback
in, not-in, contains, is-empty, is-not-emptyInScript, WaitingInQueue, WaitingForInitiator, DelayedCallback, Handling, TransferredToExternalNumber, InWrapUp, Finished
terminatedByv3+Indicates which party initiated the termination of the interaction. Possible values:
Agent: The agent ended the interaction
Customer: The customer ended the interaction
System: The system automatically terminated the interaction
in, not-in, contains, is-empty, is-not-empty
timev3+The date and time stamp of the creation of the interaction.Not filterable
timeToAbandonv3+Duration between the interaction entering the queue and the customer abandoning before agent connection. This metric only applies to abandoned interactions and measures how long the customer waited in queue before disconnecting.=, !=, >, >=, <, <=, is-empty, is-not-empty
transactionIdv3+Also known as the "Token ID" or just "Transaction" in the old reportsin, not-in, contains, is-empty, is-not-empty
transfersv3+List of transfer types performed during the interaction lifecycle. Multiple transfer types are comma-separated. Possible values:
BlindTransfer: Call was transferred without agent consultation
TransferToAnotherNumber: Call was transferred to an external phone number
TransferToAgent: Call was transferred directly to another agent
TransferToQueue: Call was transferred to another queue
in, not-in, contains, is-empty, is-not-emptyBlindTransfer, TransferToAnotherNumber, TransferToAgent, TransferToQueue
twitterIdv7+Unique Twitter identifier associated with a customer interaction, if availablein, not-in, contains, is-empty, is-not-empty
warmTransfersCompletedv3+Total number of warm transfers done during an interaction=, !=, >, >=, <, <=, is-empty, is-not-empty
wrapUpCodev3+The Menu Name of the wrap-up code list item that was used by the agent (optional)in, not-in, contains, is-empty, is-not-empty
wrapUpCodeIdv3+The ID of the wrap-up code list item that was used by the agent (optional)in, not-in, contains, is-empty, is-not-empty
wrapUpCodeListv3+The wrap-up code list the code is part of (optional)in, not-in, contains, is-empty, is-not-empty
wrapUpCodeListIdv3+The ID of the wrap-up code list the code is part of (optional)in, not-in, contains, is-empty, is-not-empty
wrapUpCodeTextv3+The Report Text of the wrap-up code list item that was used by the agent (optional)in, not-in, contains, is-empty, is-not-empty
wrapUpShortCodev3+The Short Code of the wrap-up code list item that was used by the agent (optional)in, not-in, contains, is-empty, is-not-empty

4. Creating a report

📘 This sample is applicable to ALL detailed report types

The values in passed in will be specific to the report-type but the concepts are applicable to all detailed reports.

Parameters

Method: POST

Headers

NameRequiredDescriptionExample
AuthorizationPass the access_token returned from the authentication request as a Bearer token Bearer {access_token}Bearer kfjdfi3jfopajdkf93fa9pjfdoiap

Path

NameRequiredDescriptionExample
versionThe current version is v8v8

Body

NameRequiredDescriptionExample
typeThe report type. Acceptable values are the types returned from the report-types APIagent-status-by-status-code
titleThe report title, which allows only the characters listed below: letters from A to Z, a to z, 0 to 9, whitespaces or ! - _ . * ' ( ). If the report is later downloaded as a file, the title is used as the filename.agent-status-by-status-code
dateRange.startThis parameter specifies that only events and records on or after the specified date are in the report. The entered values should follow the ISO 8061 standard (YYYY-MM-DDTHH:MM:SS.SSSZ) (For example, 2019-09-01T23:00:00.000Z)
dateRange.endThis parameter specifies that only events and records on or before the specified date are included in the report. The entered values should follow the ISO 8061 standard. (YYYY-MM-DDTHH:MM:SS.SSSZ) (For example, 2019-09-01T23:00:00.000Z)
timezoneThe desired timezone ((IANA Time Zones. Examples America/New_York, Europe/Helsinki Wikipedia Time Zone List)) that is applicable to current metrics only. Accepted timezone values are those that are configured for the tenant. The value can be the tenant’s default timezone or a value defined as an optional timezone. If no value is specified, the tenant’s default timezone is usedEurope/Helsinki
intraDayTimeRange.startSee IntraDayTimeRange. The start time for the intraDayTimeRange. The format is hh:mm:ss08:30:00
intraDayTimeRange.endSee IntraDayTimeRange. The end time for the intraDayTimeRange. The end must be at least 5 minutes after the start. The format is hh:mm:ss17:00:00
metricsCan be omitted and all available metrics will be returned, or an array of metrics can be specified and only these metrics will be returned. See metrics"metrics": [
"accepted",
"acceptedInSla",
"acceptedInSlaPercentage",
"acceptedPercentage",
"totalAbandoned",
"totalAbandonedPercentage"
]
searchQuerySee searchQuerytrue
includeParticipantsOnly valid for detailed-reports-interaction-details report type. Default is false. see includeParticipantstrue
reportSettings.showOngoingInteractionsAllows interactions to be displayed that are not still ongoing and have partial data representing the current state of that interaction.true
reportSettings.showInteractionsStateInTimeThis parameter can be combined with showOngoingInteractions to show interactions as they were when providing a time range not up to the present, showing interactions in the ongoing state for when the time range ends.true

intraDayTimeRange

This parameter is used to specify a time range filter which applies within each day of the report. If this parameter is not specified, data will be returned for the complete time frame described in the mandatory dateRange object.

🚧 intraDayTimeRange minimum size

The end must be 5 minutes after the start for detailed reports and 15 minutes after the start for summary reports.

  • start: the start time for the intraDayTimeRange. The format is hh:mm:ss
  • end: the end time for the intraDayTimeRange. The format is hh:mm:ss

If the requirement is to only see data between 8:30am and 5pm on each day the intraDayTimeRange would be passed as follows

"intraDayTimeRange": 
{
"start": "08:30:00",
"end": "17:00:00"
}

metrics

can be omitted and all available metrics will be returned, or an array of metrics can be specified and only these metrics will be returned.

📘 Metrics Example

If the requirement is to only have a subset of the the available metrics for the report type, we specify the required metrics

  • if no metrics are specified (omitted entirely or empty array): All metrics will be returned
  • if metrics are specified: ONLY the specified metrics will be returned

Interaction Details Report Metrics Glossary and Agent Status Change Detail provide detail on the definitions of the available metrics

multiple metrics

"metrics":  [
"agentNotes",
"caseNumber",
"channelId",
"creationTime",
"customerName",
"destination",
"direction",
"finishedTime",
"interactionId",
"interactionType",
"mediaType",
"queueName",
"transactionId",
"ivrTreatmentDuration",
"queueName"
]

searchQuery

This parameter can be completely omitted Or an empty array can be passed to signify no filter.

📘 searchQuery logical operation.

The searchQuery object is an array which can include one or several objects, each acting as a filter containing the fields: field, operator, and value. If multiple filter objects are specified, the relation between them is logical AND

📘 searchQuery operators are type specific

  • Numeric Fields ( durations like busyDuration and counts like warmTransfersCompleted:
    • =, <, >, !=, >=, <=, is-empty, is-not-empty
    • for durations (like participantWrapUpDuration, ivrTreatmentDuration) 1s => 1 second, 10m => 10 minutes, 3h => 3 hours, 7d => 7 days
  • Id fields (like interactionId) and names (like queueName) contains, is-empty, is-not-empty

Sample Search Queries (click for details)

no searchQueryagentNotes containsqueueName is one offilter queueName contains and ivrTreatmentDuration >= 10 seconds

"searchQuery": [
]

"searchQuery": [
{
"field": "agentNotes",
"operator": "contains",
"value": "order"
}
]

"searchQuery": [
{
"field": "queueName",
"operator": "in",
"value": ["US Sales", "EU Sales"]
}
]

"searchQuery":[
{
"field": "queueName",
"operator": "contains",
"value": "Sales"
},
{
"field": "ivrTreatmentDuration",
"operator": ">=",
"value": "10s"
}
]

Create Report Request

In this example we are running the report from 3rd August to 2nd September, we are only interested in the periods between 8:30am and 5pm on each day.

The data returned will only be where agentNotes contains "order" and queueName is "US Sales" or "EU Sales" and the ivrTreatementDuration was greater than or equal to 10 seconds.

curl --location --request POST 'https://api.8x8.com/analytics/cc/v8/historical-metrics/detailed-reports' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "detailed-reports-interaction-details",
"title": "US-EU Sales-Orders-10-secondsIVR",
"dateRange": {
"start": "2022-08-03T00:00:00.000Z",
"end": "2022-09-02T23:59:59.999Z"
},
"timezone": "America/Chicago",
"intraDayTimeRange": {
"start": "08:30:00",
"end": "17:00:00"
},
"metrics":[
"agentNotes",
"caseNumber",
"channelId",
"creationTime",
"customerName",
"destination",
"direction",
"finishedTime",
"interactionId",
"interactionType",
"mediaType",
"queueName",
"transactionId",
"ivrTreatmentDuration",
"queueName"
],
"searchQuery":[
{
"field": "agentNotes",
"operator": "contains",
"value": "order"
},
{
"field": "ivrTreatmentDuration",
"operator": ">=",
"value": "10s"
},
{
"field": "queueName",
"operator": "in",
"value": ["US Sales", "EU Sales"]
}
]
}'

Create Report Response

For an accepted request to create a report the response will be 200 OK

Headers

  • Link: The Link header will provide details on how to access the data
[https://api.8x8.com/analytics/cc/v<<versionCCAHistorical](https://api.8x8.com/analytics/cc/v<<versionCCAHistorical)>/historical-metrics/detailed-reports/2853641/data?size=100>; rel="data"`

📘 Successful Creation always results in DONE

There is no need to poll for status with detailed reports, this is a variation from summary reports.

Body

  • id: this is the identifier for the generated report
  • status: this is the status of the request for a newly created report.
    • DONE : the report has been generated
    • FAILED : the report has failed to generate
{
"id": 2710192,
"status": "DONE"
}

5. Accessing Report Data

🚧 Accessing the report Data

The data is available via JSON ONLY from historical-metrics/detailed-reports

CSV/XLS responses are available from the historical-metrics endpoint use the CC Historical Analytics Summary Report process for CSV/XLSX output of detailed reports

Parameters

Method: GET

Headers

NameRequiredDescriptionExample
AuthorizationPass the access_token returned from the authentication request as a Bearer token Bearer {access_token}Bearer kfjdfi3jfopajdkf93fa9pjfdoiap

Path

NameRequiredDescriptionExample
versionThe current version is v8v8
report-idReport id to get data for2853641

Query

NameRequiredDescriptionExample
sizeThe number of records to return in each page. Default is 100. Maximum is 1000100
lastDocumentId☐/✓This MUST BE OMITTED in the request for the initial page. Then the value MUST BE PASSED in subsequent requests See Headers & Pagination for more informationagent-status-by-status-code

Report Data Request

First PageSubsequent Page

curl --location --request GET 'api.8x8.com/analytics/cc/v8/historical-metrics/detailed-reports/2853641/data?size=100' \
--header 'Authorization: Bearer access_token'

curl --location --request GET 'api.8x8.com/analytics/cc/v8/historical-metrics/detailed-reports/2853641/data?size=100&lastDocumentId=eyJzZWFyY2hBZnRlciI6WzE2NDQ0NzA0MzQ5NzIsOTQ1MDExNzMwMjhdfQ%3D%3D' \
--header 'Authorization: Bearer access_token'

Report Data Response

Headers & Pagination

  • Link: The Link header will provide a link to the next page in the data if there are additional pages by using the lastDocumentId to index into the result set [https://api.8x8.com/analytics/cc/v<<versionCCAHistorical](https://api.8x8.com/analytics/cc/v<<versionCCAHistorical)>/historical-metrics/detailed-reports/2710192/data?size=3&lastDocumentId=eyJzZWFyY2hBZnRlciI6WzE2NDQ0NzA0MzQ5NzIsOTQ1MDExNzMwMjhdfQ%3D%3D>; rel="next"
  • X-Page-Size: size of the requested pages
  • X-Total-Pages: total number of pages for the report, 1 if only one page.
  • X-Total-Elements: total number of elements for the report
  • Last-Document-Id: the id of the last record in this page. Input to subsequent request to get the next page.

Pagination

When requesting the first page the lastDocumentId MUST BE OMMITTED

When requesting subsequent pages use the returned value of the Last-Document-Id header in as the lastDocumentId of the following request. The Last-Document-Id will change on each request.

When the last page is reached:

  • Link Header will not be present
  • Last-Document-Id Header will not be present

Body

The body will be an array as shown below.

  • The array could be empty if there are no records in the result

  • If not empty the array will contain one or more objects as described here

  • total: is null for detailed reports

  • items: array of the dimensions and metrics being returned. There will be one object for each.

  • key: the value will be the name of the dimension/metric

  • label: the value will be the human friendly name of the dimension/metric

  • value: the value will be the value of the dimension/metric. The value could be a string, could represent an array of values (ex. ["Queued", "Handled" ]) or an object.

The finishedTime metric has the following format:

{
"key": "finishedTime",
"label": "Finished Time",
"value": {
"value": "2023-07-03T16:02:59.857+03:00",
"ongoing": false
}
}

The following duration metrics have the bellowed format :

queueWaitDuration, ivrTreatmentDuration, interactionDuration, customerJourneyDuration, participantOfferDuration, participantHandlingDuration, participantWrapUpDuration, participantProcessingDuration, participantBusyDuration, participantHoldDuration, participantLongestHoldDuration, participantMuteDuration, participantLongestMuteDuration

{
"key": "interactionDuration",
"label": "Interaction Duration",
"value": {
"value": 32281,
"ongoing": false
}
}

where the value field is the value of the metric itself, could be represented as a time format in case of finishedTime metric and as milliseconds for the rest of the above duration metrics. The ongoing field shows if the value is on its final state (=false) or the value could still be changed since the interaction is still ongoing (=true).

To get also the ongoing interactions the reportSettings.showOngoingInteractions request parameter should be set to true, otherwise the ongoing interactions will not be returned and the ongoing metric field will always be false.

Sample example response:

[
{
"total": null,
"items": [
{
"key": "time",
"label": "Time",
"value": "2023-07-03T16:02:27.576+03:00"
},
{
"key": "agentNotes",
"label": "Agent Notes",
"value": null
},
{
"key": "creationTime",
"label": "Creation Time",
"value": "2023-07-03T16:02:27.576+03:00"
},
{
"key": "customerName",
"label": "Customer Name",
"value": null
},
{
"key": "destination",
"label": "Destination",
"value": "16693335195"
},
{
"key": "direction",
"label": "Direction",
"value": "OutboundDir"
},
{
"key": "dispositionAction",
"label": "Disposition Action",
"value": null
},
{
"key": "externalTransactionData",
"label": "External Transaction Data",
"value": null
},
{
"key": "finishedTime",
"label": "Finished Time",
"value": {
"value": "2023-07-03T16:02:59.857+03:00",
"ongoing": false
}
},
{
"key": "interactionDuration",
"label": "Interaction Duration",
"value": {
"value": 32281,
"ongoing": false
}
},
{
"key": "interactionId",
"label": "Interaction ID",
"value": "int-1891bd8e8f8-DcOBzKtHEIa7sb0WsK7VtUCdB-phone-01-analyticsna12manu01"
},
{
"key": "interactionLabels",
"label": "Labels",
"value": [
"Queued",
"Handled"
]
},
{
"key": "mediaType",
"label": "Media Type",
"value": "Phone"
},
{
"key": "participantBusyDuration",
"label": "Busy Duration",
"value": {
"value": 32277,
"ongoing": false
}
},
{
"key": "participantHandlingDuration",
"label": "Handling Duration",
"value": {
"value": 16347,
"ongoing": false
}
}
]
}
]

includeParticipants

When detailed-reports-interaction-details report type is created with includeParticipants =true flag, the report response return also the participants field which contains the following participant metrics:

  • blindTransferToAgent
  • blindTransferToQueue'
  • conferencesEstablished
  • consultationsEstablished
  • participantAssignNumber
  • participantBusyDuration
  • participantHandlingDuration
  • participantHandlingEndTime
  • participantHold
  • participantHoldDuration
  • participantId
  • participantLongestHoldDuration
  • participantName
  • participantOfferAction
  • participantOfferActionTime
  • participantOfferDuration
  • participantOfferTime
  • participantProcessingDuration
  • participantType
  • participantWrapUpDuration
  • participantWrapUpEndTime
  • warmTransfersCompleted
  • wrapUpCode
  • wrapUpCodeId
  • wrapUpCodeList
  • wrapUpCodeListId
  • wrapUpCodeText
  • wrapUpShortCode

Sample response when includeParticipants is true

[
{
"total": null,
"items": [
{
"key": "participants",
"label": "Participants",
"value": [
{
"participantAssignNumber": 1,
"participantType": "Agent",
"participantId": "agsN41dY9PQtyhLSd9_xqQeg",
"participantName": "Vlad Supervisor 2",
"participantOfferTime": "2022-09-14T23:58:31.347-07:00",
"participantOfferAction": "OfferTimeout",
"participantOfferActionTime": "2022-09-14T23:59:01.350-07:00",
"participantOfferDuration": {
"value": 2438,
"ongoing": false
},
"participantHandlingEndTime": "2023-07-03T16:02:46.364+03:00",
"participantHandlingDuration": {
"value": 16347,
"ongoing": false
},
"participantWrapUpEndTime": "2023-07-03T16:02:59.856+03:00",
"participantWrapUpDuration": {
"value": 13492,
"ongoing": false
},
"participantProcessingDuration": {
"value": 29839,
"ongoing": false
},
"participantBusyDuration": {
"value": 32277,
"ongoing": false
},
"warmTransfersCompleted": 0,
"blindTransferToAgent": 0,
"blindTransferToQueue": 0,
"consultationsEstablished": 0,
"conferencesEstablished": 0,
"participantHold": 0,
"participantHoldDuration": 0,
"participantLongestHoldDuration": 0,
"wrapUpCode": [],
"wrapUpCodeId": [],
"wrapUpCodeList": [],
"wrapUpCodeListId": [],
"wrapUpCodeText": [],
"wrapUpShortCode": []
},
{
"participantAssignNumber": 2,
"participantType": "Agent",
"participantId": "agsN41dY9PQtyhLSd9_xqQeg",
"participantName": "Vlad Supervisor 2",
"participantOfferTime": "2022-09-14T23:59:46.074-07:00",
"participantOfferAction": "Accepted",
"participantOfferActionTime": "2022-09-14T23:59:50.001-07:00",
"participantOfferDuration": {
"value": 2438,
"ongoing": false
},
"participantHandlingEndTime": "2023-07-03T16:02:46.364+03:00",
"participantHandlingDuration": {
"value": 16347,
"ongoing": false
},
"participantWrapUpEndTime": "2023-07-03T16:02:59.856+03:00",
"participantWrapUpDuration": {
"value": 13492,
"ongoing": false
},
"participantProcessingDuration": {
"value": 29839,
"ongoing": false
},
"participantBusyDuration": {
"value": 32277,
"ongoing": false
},
"warmTransfersCompleted": 0,
"blindTransferToAgent": 0,
"blindTransferToQueue": 0,
"consultationsEstablished": 0,
"conferencesEstablished": 0,
"participantHold": 0,
"participantHoldDuration": 0,
"participantLongestHoldDuration": 0,
"wrapUpCode": [],
"wrapUpCodeId": [],
"wrapUpCodeList": [],
"wrapUpCodeListId": [],
"wrapUpCodeText": [],
"wrapUpShortCode": []
}
]
},
{
"key": "time",
"label": "Time",
"value": "2022-09-14T23:58:31.234-07:00"
},
{
"key": "agentNotes",
"label": "Agent Notes",
"value": null
},
{
"key": "blindTransferToAgent",
"label": "Blind Transfer To Agent",
"value": "0"
},
{
"key": "blindTransferToQueue",
"label": "Blind Transfer To Queue",
"value": "0"
},
{
"key": "campaignId",
"label": "Campaign ID",
"value": null
},
{
"key": "campaignName",
"label": "Campaign Name",
"value": null
},
{
"key": "caseFollowUp",
"label": "Case Follow Up",
"value": null
},
{
"key": "caseNumber",
"label": "Case Number",
"value": "0"
},
{
"key": "channelId",
"label": "Channel ID",
"value": "roxana_chat_channel1"
},
{
"key": "conferencesEstablished",
"label": "Conferences Established",
"value": "0"
},
{
"key": "consultationsEstablished",
"label": "Consultations Established",
"value": "0"
},
{
"key": "creationTime",
"label": "Creation Time",
"value": "2022-09-14T23:58:31.234-07:00"
},
{
"key": "customerName",
"label": "Customer Name",
"value": null
},
{
"key": "destination",
"label": "Destination",
"value": null
},
{
"key": "direction",
"label": "Direction",
"value": "InboundDir"
},
{
"key": "dispositionAction",
"label": "Disposition Action",
"value": null
},
{
"key": "externalTransactionData",
"label": "External Transaction Data",
"value": null
},
{
"key": "finishedTime",
"label": "Finished Time",
"value": "2022-09-14T23:59:57.040-07:00"
},
{
"key": "interactionId",
"label": "Interaction ID",
"value": "int-1833ff122bc-9a3951e984fe40a6a010ed5802d3088f-chat-01-analyticsna12manu01"
},
{
"key": "interactionLabels",
"label": "Labels",
"value": [
"Queued",
"OfferingTimeout",
"Handled"
]
},
{
"key": "interactionType",
"label": "Type",
"value": null
},
{
"key": "ivrTreatmentDuration",
"label": "IVR Treatment Duration",
"value": null
},
{
"key": "mediaType",
"label": "Media Type",
"value": "Chat"
},
{
"key": "originalInteractionId",
"label": "Original Interaction ID",
"value": null
},
{
"key": "originalTransactionId",
"label": "Original Transaction ID",
"value": null
},
{
"key": "origination",
"label": "Origination",
"value": null
},
{
"key": "outboundPhoneCode",
"label": "Outbound Phone Code",
"value": null
},
{
"key": "outboundPhoneCodeId",
"label": "Outbound Phone Code ID",
"value": null
},
{
"key": "outboundPhoneCodeList",
"label": "Outbound Phone Code List",
"value": null
},
{
"key": "outboundPhoneCodeListId",
"label": "Outbound Phone Code List ID",
"value": null
},
{
"key": "outboundPhoneCodeText",
"label": "Outbound Phone Code Text",
"value": null
},
{
"key": "outboundPhoneShortCode",
"label": "Outbound Phone Short Code",
"value": null
},
{
"key": "participantAssignNumber",
"label": "Assign #",
"value": "2"
},
{
"key": "participantBusyDuration",
"label": "Busy Duration",
"value": "0:00:41"
},
{
"key": "participantHandlingDuration",
"label": "Handling Duration",
"value": "0:00:04"
},
{
"key": "participantHandlingEndTime",
"label": "Handling End Time",
"value": "2022-09-14T23:59:54.300-07:00"
},
{
"key": "participantHold",
"label": "Hold",
"value": "0"
},
{
"key": "participantHoldDuration",
"label": "Hold Duration",
"value": "0:00:00"
},
{
"key": "participantId",
"label": "Participant ID",
"value": [
"agsN41dY9PQtyhLSd9_xqQeg"
]
},
{
"key": "participantLongestHoldDuration",
"label": "Longest Hold Duration",
"value": "0:00:00"
},
{
"key": "participantName",
"label": "Participant",
"value": [
"Vlad Supervisor 2"
]
},
{
"key": "participantOfferAction",
"label": "Offer Action",
"value": [
"Accepted",
"OfferTimeout"
]
},
{
"key": "participantOfferActionTime",
"label": "Offer Action Time",
"value": "2022-09-14T23:59:01.350-07:00"
},
{
"key": "participantOfferDuration",
"label": "Offer Duration",
"value": "0:00:34"
},
{
"key": "participantOfferTime",
"label": "Offer Time",
"value": "2022-09-14T23:58:31.347-07:00"
},
{
"key": "participantProcessingDuration",
"label": "Processing Duration",
"value": "0:00:07"
},
{
"key": "participantType",
"label": "Participant Type",
"value": [
"Agent"
]
},
{
"key": "participantWrapUpDuration",
"label": "Wrap Up Duration",
"value": "0:00:03"
},
{
"key": "participantWrapUpEndTime",
"label": "Wrap Up End Time",
"value": "2022-09-14T23:59:57.039-07:00"
},
{
"key": "queueId",
"label": "Queue ID",
"value": "412"
},
{
"key": "queueName",
"label": "Queue Name",
"value": "roxana_chat_queue"
},
{
"key": "queueTime",
"label": "Queue Time",
"value": "2022-09-14T23:58:31.346-07:00"
},
{
"key": "queueWaitDuration",
"label": "Queue Wait Duration",
"value": "0:01:19"
},
{
"key": "recordId",
"label": "Record ID",
"value": null
},
{
"key": "transactionId",
"label": "Transaction ID",
"value": "1816"
},
{
"key": "warmTransfersCompleted",
"label": "Warm Transfers Completed",
"value": "0"
},
{
"key": "wrapUpCode",
"label": "Wrap Up Code",
"value": []
},
{
"key": "wrapUpCodeId",
"label": "Wrap Up Code ID",
"value": []
},
{
"key": "wrapUpCodeList",
"label": "Wrap Up Code List",
"value": []
},
{
"key": "wrapUpCodeListId",
"label": "Wrap Up Code List ID",
"value": []
},
{
"key": "wrapUpCodeText",
"label": "Wrap Up Code Text",
"value": []
},
{
"key": "wrapUpShortCode",
"label": "Wrap Up Short Code",
"value": []
}
]
},
{
"total": null,
"items": [
{
"key": "participants",
"label": "Participants",
"value": []
},
{
"key": "time",
"label": "Time",
"value": "2022-09-14T10:15:50.320-07:00"
},
{
"key": "agentNotes",
"label": "Agent Notes",
"value": null
},
{
"key": "blindTransferToAgent",
"label": "Blind Transfer To Agent",
"value": null
},
{
"key": "blindTransferToQueue",
"label": "Blind Transfer To Queue",
"value": null
},
{
"key": "campaignId",
"label": "Campaign ID",
"value": null
},
{
"key": "campaignName",
"label": "Campaign Name",
"value": null
},
{
"key": "caseFollowUp",
"label": "Case Follow Up",
"value": null
},
{
"key": "caseNumber",
"label": "Case Number",
"value": null
},
{
"key": "channelId",
"label": "Channel ID",
"value": "12029635128"
},
{
"key": "conferencesEstablished",
"label": "Conferences Established",
"value": null
},
{
"key": "consultationsEstablished",
"label": "Consultations Established",
"value": null
},
{
"key": "creationTime",
"label": "Creation Time",
"value": "2022-09-14T10:15:50.320-07:00"
},
{
"key": "customerName",
"label": "Customer Name",
"value": "Relative Ferdinand"
},
{
"key": "destination",
"label": "Destination",
"value": null
},
{
"key": "direction",
"label": "Direction",
"value": "InboundDir"
},
{
"key": "dispositionAction",
"label": "Disposition Action",
"value": null
},
{
"key": "externalTransactionData",
"label": "External Transaction Data",
"value": null
},
{
"key": "finishedTime",
"label": "Finished Time",
"value": "2022-09-14T10:16:55.513-07:00"
},
{
"key": "interactionId",
"label": "Interaction ID",
"value": "int-1833cfff2af-L7NxZXoe0ttnABJQ2innePQuP-phone-01-analyticsna12manu01"
},
{
"key": "interactionLabels",
"label": "Labels",
"value": [
"Queued",
"Dequeued"
]
},
{
"key": "interactionType",
"label": "Type",
"value": null
},
{
"key": "ivrTreatmentDuration",
"label": "IVR Treatment Duration",
"value": "0:00:05"
},
{
"key": "mediaType",
"label": "Media Type",
"value": "Phone"
},
{
"key": "originalInteractionId",
"label": "Original Interaction ID",
"value": null
},
{
"key": "originalTransactionId",
"label": "Original Transaction ID",
"value": null
},
{
"key": "origination",
"label": "Origination",
"value": "2068096167"
},
{
"key": "outboundPhoneCode",
"label": "Outbound Phone Code",
"value": null
},
{
"key": "outboundPhoneCodeId",
"label": "Outbound Phone Code ID",
"value": null
},
{
"key": "outboundPhoneCodeList",
"label": "Outbound Phone Code List",
"value": null
},
{
"key": "outboundPhoneCodeListId",
"label": "Outbound Phone Code List ID",
"value": null
},
{
"key": "outboundPhoneCodeText",
"label": "Outbound Phone Code Text",
"value": null
},
{
"key": "outboundPhoneShortCode",
"label": "Outbound Phone Short Code",
"value": null
},
{
"key": "participantAssignNumber",
"label": "Assign #",
"value": null
},
{
"key": "participantBusyDuration",
"label": "Busy Duration",
"value": null
},
{
"key": "participantHandlingDuration",
"label": "Handling Duration",
"value": null
},
{
"key": "participantHandlingEndTime",
"label": "Handling End Time",
"value": null
},
{
"key": "participantHold",
"label": "Hold",
"value": null
},
{
"key": "participantHoldDuration",
"label": "Hold Duration",
"value": null
},
{
"key": "participantId",
"label": "Participant ID",
"value": null
},
{
"key": "participantLongestHoldDuration",
"label": "Longest Hold Duration",
"value": null
},
{
"key": "participantName",
"label": "Participant",
"value": null
},
{
"key": "participantOfferAction",
"label": "Offer Action",
"value": null
},
{
"key": "participantOfferActionTime",
"label": "Offer Action Time",
"value": null
},
{
"key": "participantOfferDuration",
"label": "Offer Duration",
"value": null
},
{
"key": "participantOfferTime",
"label": "Offer Time",
"value": null
},
{
"key": "participantProcessingDuration",
"label": "Processing Duration",
"value": null
},
{
"key": "participantType",
"label": "Participant Type",
"value": null
},
{
"key": "participantWrapUpDuration",
"label": "Wrap Up Duration",
"value": null
},
{
"key": "participantWrapUpEndTime",
"label": "Wrap Up End Time",
"value": null
},
{
"key": "queueId",
"label": "Queue ID",
"value": "332"
},
{
"key": "queueName",
"label": "Queue Name",
"value": "CexInboundDemo"
},
{
"key": "queueTime",
"label": "Queue Time",
"value": "2022-09-14T10:15:55.443-07:00"
},
{
"key": "queueWaitDuration",
"label": "Queue Wait Duration",
"value": "0:01:00"
},
{
"key": "recordId",
"label": "Record ID",
"value": null
},
{
"key": "transactionId",
"label": "Transaction ID",
"value": "1807"
},
{
"key": "warmTransfersCompleted",
"label": "Warm Transfers Completed",
"value": null
},
{
"key": "wrapUpCode",
"label": "Wrap Up Code",
"value": null
},
{
"key": "wrapUpCodeId",
"label": "Wrap Up Code ID",
"value": null
},
{
"key": "wrapUpCodeList",
"label": "Wrap Up Code List",
"value": null
},
{
"key": "wrapUpCodeListId",
"label": "Wrap Up Code List ID",
"value": null
},
{
"key": "wrapUpCodeText",
"label": "Wrap Up Code Text",
"value": null
},
{
"key": "wrapUpShortCode",
"label": "Wrap Up Short Code",
"value": null
}
]
}
]