Query Designs Historical Reports

Conventions Used in This Chapter

The following conventions are used in this chapter:

  • Database table names - Explanations of report fields in this chapter refer to various Unified CCX database tables. In some cases, these explanations use abbreviations for database table names. Conventions Used in This Chapter lists the database tables that this chapter refers to and shows the abbreviations that are used.

    For detailed information about the Unified CCX database tables, refer to Cisco Unified Contact Center Express Database Schema.

    Table 1 Database Tables

    Database table name

    Abbreviation used in this chapter

    AgentConnectionDetail

    ACD

    AgentStateDetail

    ASD

    Campaign

    ContactCallDetail

    CCD

    ContactQueueDetail

    CQD

    ContactRoutingDetail

    CRD

    ContactServiceQueue

    CSQU

    DialingList

    MonitoredResourceDetail

    MRD

    Resource

    ResourceGroup

    RG

    ResourceSkillMapping

    RSM

    Skill

    SkillGroup

    SG

    TextAgentConnectionDetail

    TACD

    TextAgentStateDetail

    TASD

    TextContactDetail

    TCD

    TextContactQueueDetail

    TCQD

    EEMContactEmailDetail

    EEMCED

    EEMQueueAgentDetail

    EEMQAD

    EEMEmailAgentStateDetail

    EEMEASD

  • Database table fields - Explanations in this chapter specify fields in the Cisco Unified CCX database tables as follows:

    table.field

    where table is the name or abbreviation of the database table (see above) and field is the name of the field. For example,
    • CSQU.skillGroupID means the skillGroupID field in the ContactServiceQueue table

    • Resource.resourceID means the resourceID field in the Resource table

  • Report field names - In an explanation of a report field, a report field name in bold type indicates that field in the same report.

Chat Reports

Chat Agent Detail Report

The Chat Agent Detail report contains detailed information for the chat contacts received by all the chat agents. The report contains one row per chat contact for each of the agents.


Note


Chat Agent Detail report is available in Unified CCX Premium license package.


Table 1 shows how the information in the Chat Agent Detail report is obtained or calculated.

Table 2 Chat Agent Detail Report

Field

Explanation

Agent Name(Agent ID)

For the agents specified, obtain the Resource.resourceID and Resource.profileID as described in Table 2. Agent Name is stored in Resource.resourceName.

Note   

When an attribute of an agent changes (for example, extension or resource group), the agent will have multiple entries in the Resource table. In this case, each entry will have a different resource ID, so several resource IDs can belong to one agent, and Resource.resourceID will not uniquely identify an agent. Also, one agent may belong to different application profiles, and will have different Resource.profileID entries. Therefore, the combination of Resource.resourceID and Resource.profileID is not sufficient to uniquely identify an agent. The combination of Resource.resourceName and Resource.resourceLoginID is used to uniquely identify an agent. Resource.resourceName itself is not sufficient to do so because different agents may have the same first and last names, but have different resource login IDs. Resource.resourceLoginID by itself does not uniquely identify an agent because a generic resource login ID (for example, supportagent003) may be used for different agents at different times. The combination of two uniquely identifies an agent.

Chat Start Time

Time at which the chat contact is offered to an agent. It is obtained from the startdatetime field of the TACD table.

Chat End Time

Time at which agent ends the chat. It is obtained from the enddatetime field of the TACD table.

Duration

Chat time period which is calculated as follows:

Chat End Time – Chat Start Time

Displayed as hh:mm:ss.

Chat Originator

Contactid which uniquely identifies a chat contact. It is obtained from the Contactid field of the TACD table.

Chat Routed CSQ

CSQ through which the chat contact was routed to an agent. It is obtained from the csqname field of the contactservicequeue table.

Chat Skills

Skills associated with an agent for handling a chat contact. This is obtained from the skillname field of the skill table.

Active Time

Talk time for the chat agent. This is obtained from the talk time field of the TACD table.

Accept Time

Time the agent spent in accepting the chat contact. This is obtained from the acceptTime field of the TACD table.

Chat Type

Type of the chat contact. This is obtained from the contactType field of the TCD table.

Chat Agent Summary Report

The Chat Agent Summary report provides a summary line per chat agent. It includes the number of chats assigned and handled by an agent, active time, and accept time.


Note


Chat Agent Summary report is available in Unified CCX Premium license package.


Table 1 shows how the information in the Chat Agent Summary report is obtained or calculated.

Table 3 Chat Agent Summary Report

Field

Explanation

Agent Name(Agent ID)

For the agents specified, obtain the Resource.resourceID and Resource.profileID as described in Table 2. Agent Name is stored in Resource.resourceName.

Note   

When an attribute of an agent changes (for example, extension or resource group), the agent will have multiple entries in the Resource table. In this case, each entry will have a different resource ID, so several resource IDs can belong to one agent, and Resource.resourceID will not uniquely identify an agent. Also, one agent may belong to different application profiles, and will have different Resource.profileID entries. Therefore, the combination of Resource.resourceID and Resource.profileID is not sufficient to uniquely identify an agent. The combination of Resource.resourceName and Resource.resourceLoginID is used to uniquely identify an agent. Resource.resourceName itself is not sufficient to do so because different agents may have the same first and last names, but have different resource login IDs. Resource.resourceLoginID by itself does not uniquely identify an agent because a generic resource login ID (for example, supportagent003) may be used for different agents at different times. The combination of two uniquely identifies an agent.

Total Presented

Number of chats assigned to the agent. It is calculated by counting the number of TextAgentConnectionDetail records (TACDR) for the chat agent after joining with TextContactDetail records (TCDR) based on contactid, contactseqnum, and mediatype, which is 1 (chat_type).

Total Handled

Number of chats handled by the agent. It is calculated by counting the number of TACDR with talk time > 0 for the agent after joining with TCDR based on contactid, contactseqnum and mediatype = 1 (chat_type) and disposition = 2 (handled).

Active Time—Avg

Average talk time for the chat agent. It is calculated by taking the average talk time of all the TACDR for the agent after joining with TCDR based on contactid, contactseqnum, and mediatype = 1 (chat_type)

Active Time—Max

Maximum talk time for the chat agent. It is calculated by taking the maximum talk time of all the TACDR for the agent after joining with TCDR based on contactid, contactseqnum, and mediatype = 1 (chat_type)

Accept Time—Avg

Average time the agent spent in accepting the chat contact. It is calculated by taking the average accept time of all the TACDR for the agent after joining with TCDR based on contactid, contactseqnum, and mediatype = 1 (chat_type).

Accept Time—Max

Maximum time the agent spent in accepting the chat contact. It is calculated by taking the maximum accept time of all the TACDR for the agent after joining with TCDR based on contactid, contactseqnum, and mediatype = 1 (chat_type).

Chat Contact Service Queue Activity Report

The Chat Contact Service Queue Activity report shows one line for each CSQ that is configured in Unified CCX. A CSQ can be configured based on resource skill.

Table 1 shows how the information in the Chat Contact Service Queue Activity report is obtained or calculated.

Table 2 explains how the Chat Contact Service Queue Activity report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter

Table 4 Chat Contact Service Queue Activity Report Query Design

Field

Explanation

CSQ Name

The CSQ.recordID uniquely identifies a CSQ. Obtain this value as described in Table 2. CSQ name is stored in CSQ.csqName.

Chats Presented

Chats Presented is calculated using the sum of Chats Handled and Chats Abandoned.

Avg Queue Time

Calculated as total TCQD.queueTime / Total number of TCQD records with TCQD.queueTime greater than zero.

Max Queue Time

Join TCD and TCQD on contactId, contactseqnum, and nodeID to find TCQD records during the report period. (For these records, the values of the corresponding TCD.startdatetime is within the report period.) For each CSQ, determine the maximum value stored in TCQD.queueTime.

Chats Handled

Join TCQD and TACD on contactId, contactseqnum, qindex, and nodeID with TCQD.disposition is 2 (handled), and TACD.talkTime greater than zero. This process provides the chats handled by agents.

For each CSQ, count the number of TCQD records to determine the number of chats handled by the CSQ.

Avg Handle Time

Join TCQD and TACD on contactId, contactseqnum, qindex, and nodeID with TCQD.disposition is 2 (handled), and TACD.talkTime greater than zero. This process provides the chats handled by agents.

For each CSQ, calculate the average of TACD.talkTime to determine the average time for chats handled by the CSQ.

If Chats Handled is zero, this field is zero.

Max Handle Time

Join TCQD and TACD on contactId, contactseqnum, qindex, and nodeID with TCQD.disposition is 2 (handled), and TACD.talkTime greater than zero. This process provides the chats handled by agents.

For each CSQ, maximum of TACD.talkTime determine the value of this field.

If Chats Handled is zero, this field is zero.

Chats Abandoned

For each CSQ, count the number of TCQD records where TCQD.disposition = 1 to determine the number of chats abandoned from the CSQ.

You can filter the Chat Contact Service Queue Activity report by the following parameter:

Table 5 Chat Contact Service Queue Activity Report Filter Parameter  

Filter parameter

Result

All CSQs (default, no filter parameter)

Search the CSQ table to find the distinct CSQ.csqName with CSQ.queueType is equal to 2 and CSQ.dateinactive is NULL. This action determines all the active chat CSQs.

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID.

Chat CSQ Agent Summary Report

An agent can handle chat contacts for multiple CSQs. The Chat CSQ Agent Summary report table provides information about chat contacts handled in each CSQ for each agent.

Table 1 explains how to obtain and calculate the information in the Chat CSQ Agent Summary report.

Table 2 explains how the Chat CSQ Agent Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 6 Chat CSQ Agent Summary Report Query Design

Field

Explanation

CSQ Name

The CSQ.recordID uniquely identifies a CSQ. Obtain this value as described in Table 2. CSQ name is stored in CSQ.csqName.

Agent Name

Chat record tables (TACD and TASD) refer to agents by resource ID. Given Resource.resourceID, search the Resource table for the corresponding Resource.resourceName and Resource.resourceLoginID. These two fields uniquely identify an agent. The agent name is stored in Resource.resourceName.

Chat Received

A received chat contact has a TCCD record, a TCQD record for the CSQ that the chat contact was routed to, and a TACD record for the agent who received the chat contact.

Join TCCD and TCQD on contactID, contactSeqNum, and nodeID to find the TCQD record for the CSQ to which the chat contact was routed. Join TCQD and TACD on contactID, contactSeqNum, nodeID, and qIndex to find the agent who handled the chat contact. To uniquely identify a CSQ, the CSQ record ID is stored in TCQD.csqrecordid.

To uniquely identify an agent, the resource ID is stored in TACD.resourceid.

For each CSQ-Agent combination (CSQ is identified by CSQ.recordID, and agent is identified by Resource.resourceName), count the number of TACD records to determine the number of chat contacts handled by the specified CSQ-Agent combination.

Chat Handled

Same calculation as for chat contacts received, but in the search criteria, TACD.talkTime is greater than zero.

Average Active Chat Time

If chat contacts handled is not zero then this field is calculated as Total Talk Time divided by Chat Contacts Handled.

If Chat Contacts Handled is zero, this field is zero.

Chat No Answer

Same calculation as for chat contacts Received, but in the search criteria, TACD. talkTime is zero, and TACD.acceptTime is greater than zero.

For each CSQ-Agent combination, count the number of TACD records. This result is the number of chat contacts that got no answer.

Average Acceptance Time

If chat contacts Handled is not zero then this field is calculated as Total Accept Time divided by Chat Contacts Handled.

If Chat Contacts Handled is zero then this field is zero.

Table 7 Chat CSQ Agent Summary Report Filter Parameter

Field

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time and with CSQ.queuetype equal to 2. This action determines the active chat CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqname contains values that are in the list. Obtain the corresponding CSQ.recordID.

Chat Traffic Analysis Report

The Chat Traffic Analysis report shows information about incoming chat contacts to the Unified CCX system.

Table 1 shows how the information in the Chat Traffic Analysis report is obtained or calculated.

If the selected report Start Date and report End Date exceeds the date range available in the database, the report start date and report end date are automatically adjusted to match the date range that is available in the database. For example, if data is available in the database only from start date x to end date y, and if the selected start date is earlier than x and the selected end date is later than y, the report start date and report end date are automatically adjusted to x and y respectively.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter .

Table 8 Chat Traffic Analysis Report Query Design

Field

Explanation

Date

Date of each day in the report period.

Total Incoming Chat Contacts

For each day, count the number of TCCD records with a unique contactID with the Contact Type field set to the value of 1 (incoming contact).

Avg Chats (per hour)

Calculated as total incoming contacts divided by the number of hours in a day.

The first day or the last day of the report period may be a partial day depending on the start time and the end time selected by the user. Any other day within the report period has 24 hours.

Peak Chats (per hour)

Divide each day into 1-hour intervals. The number of incoming chat contacts within each interval is determined by counting the number of TCCD records with a unique contactID in the interval. The peak hour is the interval with the largest number of incoming chat contacts. This field displays the number of chat contacts in the peak hour.

Peak Hour Start Time

Divide each day into 1-hour intervals. The number of incoming chat contacts within each interval is determined by counting the number of TCCD records with a unique contactID in the interval. The peak hour is the interval with the largest number of incoming chat contacts. This field displays the start time of the peak hour.

Peak Hour End Time

Divide each day into 1-hour intervals. The number of incoming chat contacts within each interval is determined by counting the number of TCCD records with a unique contactID in the interval. The peak hour is the interval with the largest number of incoming chat contacts. This field displays the end time of the peak hour.

Avg Chat Duration

The contact duration for a chat contact is calculated as the sum of TACD.talkTime for all the contacts connected to an agent. It is zero for all other contacts.

Average contact duration for a day is calculated as the sum of contact durations for all incoming contacts on that day divided by the number of incoming contacts on that day.

Min Chat Duration

The contact duration for a chat contact is calculated as the sum of TACD.talkTime for all the contacts connected to an agent. It is zero for all other contacts.

Minimum contact duration for a day is the shortest contact duration of all incoming contacts for that day.

Max Chat Duration

The contact duration for a chat contact is calculated as the sum of TACD.talkTime for all the contacts connected to an agent. It is zero for all other contacts.

Maximum contact duration for a day is the shortest contact duration of all incoming contacts for that day.

Email Reports

Email Agent Activity Report

The Email Agent Activity Report presents email statistics of the email-enabled agents for a day.

Table 1shows how the information in the Email Agent Activity Report is obtained or calculated.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 9 Email Agent Activity Report Query Design

Field

Explanation

Agent Name

Name of the agent. It is obtained from Agent Names filter selected by user and then mapped with resource and textagentstatedetail tables.

Agent Id

Login user ID of the agent. It is obtained from textagentstatedetail table.

Login Date

Date the agent logged in. It is obtained from textagentstatedetail table after grouping by statechangedatetime.

Logged-In

Total time the agent logged in. It is calculated from textagentstatedetail table. It is sum of ready, notready, reserved, busy and partial busy state time.

Not Ready

Total time the agent spent in the E-Mail Not Ready state. It is obtained from textagentstatedetail table.

Ready

Total time the agent spent in the E-Mail Ready state. It is obtained from textagentstatedetail table.

Time Spent On Desk

It is sum of busy and partial busy duration. It is obtained from textagentstatedetail table.

Note    This is a hidden field.

Presented

Number of email messages that are presented to the agent. It is obtained from TextAgentConnectionDetail table.

Requeued

Number of email messages that the agent requeued. It is obtained from TextContactDetail table where disposition is 2 (Handled) and dispositionReason is email_requeue_transfer or email_requeue_agent_disconnected.

Sent

Number of response email messages that the agent sent. It is obtained from TextContactDetail table where disposition is 2 (Handled) and dispositionReason is email_agent_replied.

Discarded

Number of email messages that the agent discarded. The discarded date and time determines whether the email message falls within the interval. It is obtained from the textcontactdetail table where disposition = 4 and dispositionReason = email_agent_discarded.

Avg On Desk

Avg On Desk = Total time spent on handling email contacts/Number of emails sent and requeued by agent. It is obtained from TextAgentConnectionDetail.

Email Contact Detail Report

The Email Contact Detail Report presents information about each email contact that is handled by the agent.

Table 1 shows how the information in the Email Contact Detail Report is obtained or calculated.

Table 2 explains how the Email Contact Detail Report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 10 Email Contact Detail Report Query Design

Field

Explanation

Contact ID

Contactid which uniquely identifies an email contact. It is obtained from the contactid field of the textcontactdetail table.

Sequence No

Number that the system incrementally assigns to each contact leg. It is obtained from the contactseqnum field of the textcontactdetail table.

CSQ Name

Name of the Contact Service Queue (CSQ) that routed the email contact to the agent. It is obtained from the contactservicequeue table based on the csqrecordid field from the textcontactqueuedetail table.

Agent Name

First name and last name of the agent who sent the response email message. It is obtained from the resource table based on the resourceid field from the textagentconnectiondetail table.

Received

Date and time the contact center received the email contact. It is obtained from the textcustomerdetails table.

Retrieved

Date and time the agent retrieved the email contact. It is obtained from the enddatetime field of the textagentconnectiondetail table.

Replied

Date and time the agent sent the response email message. It is obtained from the enddatetime field of the textcontactdetail table.

Discarded

Date and time that the agent discarded the email message. It is obtained from the enddatetime column from the textcontactdetail table where disposition = 4 and dispositionReason = email_agent_discarded.

From

Email address of the customer who sent the email message. It is obtained from the textcustomerdetails table.

Reply-To

Email address of the customer to which the response email message is sent. It is obtained from the textcustomerdetails table.

To

Email address of the contact center to which the email message was sent. It is obtained from the accountuserid field of the contactservicequeue table based on the csqrecordid field from the textcontactqueuedetail table.

Subject

Subject line of the received email message. It is obtained from the textcustomerdetails table.

Contact Type

Contact type of the email contact. It is obtained from the contacttype field of the textcontactdetail table.

Contact Disposition

Disposition of the email contact. It is obtained from the contactdisposition field of the textcontactdetail table.

Table 11 Email Contact Detail Report Filter Parameters

Filter parameter

Explanation

CSQ Name

To report on specific email CSQ or CSQs, obtain the list of CSQ names from the user selection for this parameter.

Search the contactservicequeue table to find the records with the queuetypename "Email" and match the csqname with the values that are in the list. In the report query, use the recordid field to get the ID of the CSQ.

Agent Name

To report on specific email agents, obtain the list of agent names from the user selection for this parameter.

Search the resource table to find the records with the resourcename that matches with the values that are in the list. In the report query, use the resourceid field to get the ID of the agent.

Subject

This is a case-sensitive filter to search for the records that the user specifies in the search string for subject.

Email CSQ Activity Report

The Email CSQ Activity Report presents email activity statistics of agents in a Contact Service Queue (CSQ) for each day.

Table 1 shows how the information in the Email CSQ Agent Activity Report is obtained or calculated.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 12 Email CSQ Activity Report Query Design

Field

Explanation

CSQ Name

Name of the Contact Service Queue (CSQ) that routed the email contact to the agent.

It is obtained from the contactservicequeue table based on the csqrecordid field from the textcontactqueuedetail table.

Date

Date of each day in the interval.

Agent Name

Name of the agent to whom the email messages are routed.

It is obtained from the resource table based on the resourceid field from the textagentconnectiondetail table.

Retrieved

Number of email messages that are routed through the CSQ to the agent and then retrieved by the agent.

It is obtained by taking the sum of the records obtained querying the tables textagentconnectiondetail, textcontactdetail and textcontactqueuedetail for the given date time interval.

Requeued

Number of email messages that are requeued to the agent.

It is calculated by taking the sum of records obtained by querying textcontactdetail table for contactdisposition 2 and dispositionreason that contains the text 'email_requeue’ where the contactid and contactseqnum in textcontactdetail matches with the contactid and contactseqnum of textagentconnectiondetail and textcontactqueuedetail tables.

Sent

Number of response email messages that the agent sent.

It is calculated by taking the sum of records obtained by querying textcontactdetail table for contactdisposition 2 and dispositionreason 'email_agent_replied' where the contactid and contactseqnum in textcontactdetail matches with the contactid and contactseqnum of textagentconnectiondetail and textcontactqueuedetail tables.

Discarded

Number of email messages that the agent discarded. The discarded date and time determines whether the email message falls within the interval. It is obtained from the textcontactdetail table where disposition = 4 and dispositionReason = email_agent_discarded.

Avg On Desk

Average time agent spent on desk to reply to email once the agent receives it.

It is obtained by summing the talktime field in textagentconnectiondetail table and dividing by the total number of emails requeued and sent.

Time Spent On Desk

Sum of the time that the agent spends in email processing state to respond to all the emails.

It is obtained by taking the sum of talktime in textagentconnectiondetail table for all the emails handled by the agent the given date time interval.

Note    This is a hidden field.

Email Traffic Analysis Report

The Email Traffic Analysis Report gives the count of email messages received for the specified date or date range.

Table 1 shows how the information in the Email Traffic Analysis report is obtained or calculated.

Table 2 explains how the Email Traffic Analysis report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 13 Email Traffic Analysis Report

Field

Explanation

Email Address

Obtained from ContactServiceQueue.accountuserid for email CSQs.

Received Date

Obtained from TextCustomerDetails.insertionDate.

Email Count

Count of ContactServiceQueue.accountuserId where the csq type is 'Email'.

Table 14 Email Traffic Analysis Report Filter Parameter

Filter parameter

Explanation

Email Address

ContactServiceQueue.accountuserid for email CSQs.

Inbound Reports

Abandoned Call Detail Activity Report

The Abandoned Call Detail Activity report contains one row per abandoned call. An abandoned call is a call for which CCD.contactDisposition is set to 1 (abandoned).

Table 1 shows how the information in the Abandoned Call Detail Activity report is obtained or calculated.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 15 Abandoned Call Detail Activity Report Query Design

Field

Explanation

Call Start Time

Obtained from CCD.startDateTime.

Called Number

Obtained from CCD.calledNumber.

Call ANI

For ACD calls, obtained from CCD.originatorDN.

For IVR calls, this field is set to the extension of the originating agent as follows: join CCD.originatorID with Resource.resourceID, and CCD.profileID with Resource.profileID to obtain Resource.extension.

Initial Call Priority

Join CCD and CRD on sessionID, sessionSeqNum, nodeID, and profileID.

Note   

A call may be abandoned without being assigned a call priority. In this case, CRD.origPriority will be blank and this Initial Call Priority field will show "n/a."

Call Routed CSQ

Join CCD and CQD on sessionID, sessionSeqNum, nodeID, and profileID. Additional search criteria are CCD.contactDisposition is 1 (abandoned), CQD.disposition is 1 (abandoned) or 3 (dequeued), and CQD.targetType is 0 (CSQ type). The CSQ information is stored in CQD.targetID. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID to obtain CSQ name, which is stored in CSQ.csqName.

Note   

A call may be abandoned without being presented to any CSQ. In this case, this Call Routed CSQ field will be blank.If a call has been routed to multiple CSQs, the Call Routed CSQ field displays the CSQ name followed by ellipsis (for example: CSQ025...).

Agent Name

Join CCD and ACD on sessionID, sessionSeqNum, nodeID and profileID to include only calls with CCD.contactDisposition set to 1 (abandoned). Join ACD and Resource on resourceID and profileID to obtain the name of the agent who was presented with the call, which is stored in Resource.resourceName.

Note   

A call may be abandoned without being presented to any agent. In this case, this agent Name field will be blank.

Call Skills

This field shows the list of skills that belong to the CSQ shown in Call Routed CSQ.

Join CQD.targetID with CSQU.recordID, and CQD.profileID with CSQU.profileID to obtain CSQU.skillGroupID. Join CSQU.skillGroupID with SG.skillGroupID to obtain SG.skillID. Join SG.skillID with Skill.skillID to obtain the list of call skills, which is stored in Skill.skillName.

Note   

This Call Skills field will be blank for a call that is abandoned without being presented to a CSQ and for a call that is abandoned after it is presented a resource-based CSQ.

Final Call Priority

Join CCD and CRD on sessionID, sessionSeqNum, nodeID, and profileID.

Note   

A call may be abandoned without being assigned a call priority. In this case, CRD.finalPriority will be blank and this Final Call Priority field will show "n/a."

Call Abandon Time

Obtained from CCD.endDateTime.

Aborted and Rejected Call Detail Report

The Aborted and Rejected Call Detail report provides detailed information about each call that is aborted or rejected by the system. A call is aborted if an exception occurs in the workflow that is processing a call. A call is rejected if system resources reach maximum capacity (for example, the maximum number of CTI ports is reached).

Table 1 shows how the information in the Aborted and Rejected Call Detail report is obtained or calculated.

Table 2 explains how the Aborted and Rejected Call Detail report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 16 Aborted and Rejected Call Detail Report Query Design

Field

Explanation

Node ID

Obtained from CCD.nodeID.

Session ID

Obtained from CCD.sessionID.

Sequence No

Obtained from CCD.sessionSeqNum.

Call Start Time

Obtained from CCD.startDateTime.

Call End Time

Obtained from CCD.endDateTime.

Contact Type

Obtained from CCD.contactType.

Contact Disposition

Obtained from CCD.contactDisposition.

If CCD.contactDisposition is 4, this field displays Aborted. If CCD.contactDisposition is 5 or greater, this field displays Rejected.

Abort/Reject Reason

For aborted calls, CCD.contactDisposition is 4, and this field displays the value stored in CCD.dispositionReason.

For rejected calls, CCD.contactDisposition is 5 or greater, and this field displays the text according to the following mapping. The description for each reject reason is also explained below:

5—Reject: No Trigger - Trigger is not recognized or has been removed

6—Reject: Channels Not Ready - Channels Not Ready - Group(s) are not ready

7—Reject: Trigger Timeout - Trigger timeout expires before attempting to get the channel

8—Reject: Channels Busy - No channel(s) available

9—Reject: No Channel License - No channel license is available to process the call

10—Reject: Remote Timeout - CTI Accept Timer expires

11—Reject: Software Error - Internal software error

12—Reject: Trigger Max Session - Trigger has reached its maximum session

13—Reject: Trigger Failed - JTAPI Subsystem redirect to CTI port fails

14—Reject: Setup Timeout - Setup Timeout: JTAPI Subsystem Accept timer expires

15—Reject: Setup Failed - JTAPI Subsystem Accept fails

16—Reject: Resource Invalid - Resource address is invalid

17—Reject: Resource Not Acknowledging - Resource is not acknowledging

18—Reject: Resource Busy - Resource is busy

19—Reject: Contact Not Offered - Contact is not successfully offered, either because the destination is not acknowledging the offering or it does not receive it

20—Reject: Internal Error - PlaceCall gets an internal error

21—Reject: Contact Rejected in Script - Rejected by script

22—Reject: Agent reject Outbound call - Outbound call rejected by agent

23—Reject: Agent Skipped Outbound Call - Outbound call skipped by agent

24—Reject: Agent clicked Cancel Reservation for Outbound call.

Note   

The event occurred when the campaign got disabled or deleted or when the associated CSQ got deleted before the agent clicked Cancel Reservation. This is because CCDR will be written only when the call is disconnected.

25-98—Reserved.

Originator DN

(DN = Directory Number)

The originator directory number. This number is the same as the calling number. Originator Type can be agent, device, or unknown.
  • If Originator Type is agent, this field shows the Unified CCX extension of the agent. If the call is attended at the non-IPCC extension, then the non-IPCC extension is displayed. If the call is made from a non-IPCC extension, then the non-IPCC extension is displayed.

  • If Originator Type is device, this field shows the CTI port number.

  • If Originator Type is unknown (through a gateway or an unmonitored device), this field shows the telephone number of the caller.

Destination DN

The destination directory number. Destination Type can be agent, device, or unknown.
  • If Destination Type is agent, this field shows the Unified CCX extension of the agent.

  • If destination type is device, this field shows the CTI port number.

  • If destination type is unknown (through a gateway or an unmonitored device), this field shows the telephone number called.

Called Number

Obtained from CCD.calledNumber.

Original Called No.

Obtained from CCD.origCalledNumber.

Application Name

Obtained from CCD.applicationName.

Call Routed CSQ

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to determine CQD records with a CCD.startDateTime value that is within the report period. Join CQD and CRD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex to obtain CQD.targetID, and join CQD.profileID with CQD.targetType = 0 (CSQ type). CQD.targetID contains the recordID of the CSQ that handled the call. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID to obtain the CSQ name, which is stored in CSQ.csqName.

Table 17 Aborted and Rejected Call Detail Report Filter Parameter

Filter parameter

Explanation

Contact Disposition

To report on aborted calls only, obtain CCD records with CCD.contactDisposition = 4.

To report on rejected calls only, obtain CCD records with CCD.contactDisposition >= 5.

To report on both aborted and rejected calls, obtain CCD records with CCD.contactDisposition >= 4.

Agent Call Summary Report

The Agent Call Summary report shows, for each agent specified, summary information about each call that was received (an inbound call) and each call that was made (an outbound call) by the agent. This report also shows the number of calls transferred to the agent and transferred out (to another route point or another agent) by the agent, and the number of conference calls in which the agent participated.

Table 1 shows how the information in the Agent Call Summary report is obtained or calculated.

Table 2 explains how the Agent Call Summary report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see Conventions Used in This Chapter.

Table 18 Agent Call Summary Report Query Design

Field

Explanation

Agent Name

For the agents specified, obtain the Resource.resourceID and Resource.profileID as described in Table 2. Agent Name is stored in Resource.resourceName.

Note   

When an attribute of an agent changes (for example, extension or resource group), the agent will have multiple entries in the Resource table. In this case, each entry will have a different resource ID, so several resource IDs can belong to one agent, and Resource.resourceID will not uniquely identify an agent. Also, one agent may belong to different application profiles, and will have different Resource.profileID entries. Therefore, the combination of Resource.resourceID and Resource.profileID is not sufficient to uniquely identify an agent. The combination of Resource.resourceName and Resource.resourceLoginID is used to uniquely identify an agent. Resource.resourceName itself is not sufficient to do so because different agents may have the same first and last names, but have different resource login IDs. Resource.resourceLoginID by itself does not uniquely identify an agent because a generic resource login ID (for example, supportagent003) may be used for different agents at different times. The combination of two uniquely identifies an agent.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

Total Inbound

Calculated as follows:

Total inbound ACD calls + Total inbound IVR calls.

Inbound ACD— Total

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, count the number of ACD records to determine the total number of inbound ACD calls received by each agent.

Inbound ACD—Avg Talk

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, calculate the sum of the values in ACD.talkTime, then divide by the number of ACD records for that agent.

Inbound ACD—Avg Hold

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, calculate the sum of the values in ACD.holdTime, then divide by the number of ACD records for that agent.

Inbound ACD—Avg Work

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, calculate the sum of the values in ACD.workTime, then divide by the number of ACD records for that agent.

Inbound Non-ACD—Total

Search CCD for records for which the value of startDateTime is within the report period and destinationType is 1 (agent). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

Compare sessionID, sessionSeqNum, profileID, nodeID, and resourceID in this result set with the results for these fields obtained from Inbound ACD—Total. Eliminate all entries that are already counted in the calculation of total inbound ACD calls. The remaining value is the number of IVR calls.

For each agent, count the number of CCD records to determine the number of total inbound IVR calls.

Inbound Non-ACD— Avg Talk Time

Talk time of an IVR call is stored in CCD.connectTime.

Search CCD for records in which the value of startDateTime is within the report period and destinationType is 1 (agent). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

Compare sessionID, sessionSeqNum, profileID, nodeID, and resourceID in this result set with the result obtained from Inbound ACD—Total. Eliminate all entries that are already counted in the calculation of total inbound ACD calls. The remaining value is the number of IVR calls.

For each agent, calculate the sum of the values stored in CCD.connectTime, then divide by the number of CCD records for that agent.

Inbound Non-ACD— Max Talk Time

Talk time of an IVR call is stored in CCD.connectTime.

Search CCD for records for which the value of startDateTime is within the report period and destinationType is 1 (agent). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

Compare sessionID, sessionSeqNum, profileID, nodeID, and resourceID in this result set with the result obtained from Inbound ACD—Total. Eliminate all entries that are already counted in the calculation of total inbound ACD calls. The remaining value is the number of IVR calls.

For each agent, determine the maximum value stored in CCD.connectTime.

Outbound—Total

Search CCD for records in which the startDateTime is within the report period, and originatorType is 1 (agent). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, count the number of CCD records.

Outbound—Avg Call Time

Search CCD for records in which the startDateTime is within the report period, and originatorType is 1 (agent). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, calculate the sum of the values stored in CCD.connectTime, then divide by the number of CCD records for that agent.

Outbound—Max Call Time

Search CCD for records in which the startDateTime is within the report period, and originatorType is 1 (agent). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, determine the maximum value stored in CCD.connectTime.

ACD Transfer-In

For ACD calls that are transferred in, CCD.contactType = 5 (transfer-in), and an ACD record is present.

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, count the number of ACD records for which the corresponding CCD records have contactType = 5 (transfer-in).

ACD Transfer-Out

For ACD calls that are transferred out, CCD.transfer = 1, and an ACD record is present.

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, count the number of ACD records for which the corresponding CCD records have transfer = 1.

ACD Conference

For ACD conference calls, CCD.conference = 1, and an ACD record is present.

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to find ACD records within the report period. (For such records, the corresponding CCD.startDateTime value is within the report period.) Join ACD.resourceID with Resource.resourceID and ACD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

For each agent, count the number of ACD records for which the corresponding CCD records have conference = 1.

Table 19 Agent Call Summary Report Filter Parameters

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs and profile IDs as follows:

Search the Resource table for agents who are active (Resource.active is 1) or who are deleted after report start time (Resource.dateInactive is later than the report start time). In this way, the report does not include agents who are deleted before the report start time.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Agent Detail Report

The Agent Detail report contains detailed information for calls received and calls made by an agent. The report contains one row per call and includes Unified CCX and Cisco Unified IP IVR calls.

For ACD calls, the ACD table records all the calls handled by an agent.

For IVR calls, the CCD table records all the calls made by or received by an agent. If an agent makes an IVR call, the agent’s resource ID appears in CCD.originatorID. If the agent receives an IVR call, the agent’s resource ID appears in CCD.destinationID.

Table 1 shows how the information in the Agent Detail report is obtained or calculated.

Table 2 explains how the Agent Detail report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 20 Agent Detail Report Query Design

Field

Explanation

Agent Name

For ACD calls, an agent is identified by the combination of ACD.resourceID and ACD.profileID. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

For IVR calls, if an agent is the originator of the call, the agent is identified by CCD.originatorID and CCD.profileID, when CCD.originatorType = 1 (agent type). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

If an agent is the destination of an IVR call, the agent is identified by CCD.destinationID and CCD.profileID, when CCD.destinationType = 1 (agent type). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

Extension

For ACD calls, an agent is identified by the combination of ACD.resourceID and ACD.profileID. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

For IVR calls, if an agent is the originator of the call, the agent is identified by CCD.originatorID and CCD.profileID, when CCD.originatorType = 1 (agent type). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

If an agent is the destination of an IVR call, the agent is identified by CCD.destinationID and CCD.profileID, when CCD.destinationType = 1 (agent type). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.extension.

Call Start Time

For ACD calls, obtained from ACD.startDateTime.

For IVR calls, obtained from CCD.startDateTime.

Call End Time

For ACD calls, obtained from ACD.endDateTime.

For IVR calls, obtained from CCD.startDateTime.

Duration

Calculated as follows:

Call End Time – Call Start Time

Displayed as hh:mm:ss.

Called Number

For ACD calls, agent identification is stored in ACD (see Agent Name earlier in this table). Join ACD and CCD on sessionID, sessionSeqNum, nodeID, and profileID. The value of this field is obtained from CCD.calledNumber.

For IVR calls, agent identification is stored in CCD (see Agent Name earlier in this table). The value of this field is obtained directly from CCD.calledNumber.

Call ANI

For ACD calls, agent identification is stored in ACD (see Agent Name earlier in this table). Join ACD and CCD on sessionID, sessionSeqNum, nodeID, and profileID. The value of this field is obtained from CCD.originatorDN.

For IVR calls, agent identification is stored in CCD (see Agent Name earlier in this table). The value of this field is obtained directly from CCD.originatorDN.

For internal calls (CCD.contactType = 3), but the CCD.orignatorDN field is blank. This field is set to the extension of the agent who originates the call, as follows:

Join CCD.originatorID with Resource.resourceID, join and CCD.profileID with Resource.profileID to obtain the extension of the originating agent, which is stored in Resource.extension.

Call Routed CSQ

Join ACD and CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type), and CQD.disposition = 2 (handled). The combination of CQD.targetID and CQD.profileID uniquely identifies a CSQ. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID to obtain the CSQ name, which is stored in CSQ.csqName.

Other CSQs

Join ACD and CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type), and CQD.disposition is not 2 (not handled) to obtain the CSQ for which the call was queued but not handled. The combination of CQD.targetID and CQD.profileID uniquely identifies a CSQ. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID to obtain the CSQ name, which is stored in CSQ.csqName. Multiple CSQ names are represented by "…".

Call Skills

Join ACD and CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type), and CQD.disposition = 2 (handled) to obtain a skill group ID, which is stored in CSQ.skillGroupID. Join CSQ.skillGroupID with SG.skillGroupID to get SG.skillID. Join SG.skillID with Skill.skillID to get the list of skill names, stored in Skill.skillName. Multiple skill names are separated by commas.

Talk Time

For ACD calls, obtained from ACD.talkTime.

For IVR calls, shows the value of Duration if CCD.contactDispostion = 2 (handled). Shows zero if CCD.contactDisposition = 1 (abandoned).

Hold Time

For ACD calls, obtained from ACD.holdTime.

Blank for IVR calls.

Work Time

For ACD calls, obtained from ACD.workTime.

Blank for IVR calls.

Call Type

  • Inbound ACD—Call has an ACD record present.
  • Inbound Non-ACD—CCD.destinationType = 1 (agent type), CCD.destinationID is a resource ID, and there is no corresponding ACD record. (A corresponding ACD record has the same sessionID, sessionSeqNum, nodeID, and profileID.)
  • Outbound—CCD.originatorType = 1 (agent type), and CCD.originatorID is a resource ID.
  • Transfer-In—CCD.contactType = 5 (transfer-in), and there is a corresponding ACD record.
  • Transfer-Out—CCD.transfer = 1, and there is a corresponding ACD record.
  • Conference—CCD.conference = 1, and there is a corresponding ACD record.
Table 21 Agent Detail Report Filter Parameters

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs and profile IDs from the Resource table.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Call Type

To report on a specific call type or types, obtain the call types from the user selection for this parameter. (Up to 6 call types can be selected.) Call types that are not selected will be eliminated before the final result set is displayed. The elimination process is based on the classification criteria described in the Call Type field in Table 1.

Agent Login Logout Activity Report

The Agent Login Logout Activity report contains detailed information about the login and logout activities of agents. The login and logout information is stored in the ASD table.

Table 1 shows how the information in the Agent Login Logout Activity report is obtained or calculated.

Table 2 explains how the Agent Login Logout Activity report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 22 Agent Login Logout Activity Report Query Design

Field

Explanation

Agent Name

Join ASD.agentID with Resource.resourceID to obtain the agent name, which is stored in Resource.resourceName.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

Login Time

Join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain state transition records for each agent, identified by Resource.resourceName and Resource.resourceLoginID. (See agent Name for the relationship between resourceID/profileID and resourceName/ resourceLoginID.) Login Time is stored in ASD.eventDateTime where ASD.eventType = 1. If the agent logged in before the report start time, this field is displayed as < report start time.

Logout Time

Join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain state transition records for each agent, identified by Resource.resourceName and Resource.resourceLoginID. (See Agent Name for the relationship between resourceID/profileID and resourceName/ resourceLoginID.) Login Time is stored in ASD.eventDateTime where ASD.eventType = 7. If the agent logged out after the report end time, this field is displayed as: > report end time.

Logout Reason Code

This field is obtained from ASD.reasonCode when ASD.eventType = 7 (logout).

Logged-In Duration

  • If the agent logged in before the report start time and logged out after the report end time—Logged-In Duration = report end time – report start time
  • If the agent logged in before the report start time and logged out during the report period—Logged-In Duration = Logout Time – report start time
  • If the agent logged in during the report period and logged out after the report end time—Logged-In Duration = report end time – Login Time
  • If the agent logged in and out during the report period—Logged-In Duration = Logout TimeLogin Time
Table 23 Agent Login Logout Activity Report Filter Parameters

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs as follows:

Search the Resource table for records with resourceType set to 1 (agent). Resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs as follows:

Obtain the list of resource group name(s) from the user selection for this parameter. Find the corresponding RG.resourceGroupID(s). Join RG.resourceGroupID with Resource.resourceGroupID to find agents belonging to the selected resource group(s). The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs as follows:

Obtain the list of agent names from the user selection for this parameter. Find the corresponding Resource.resourceID(s).

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Skill Names

To report on agents who possess a specific skill or skills, obtain the list of resource IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Find the corresponding Skill.skillID(s). Join Skill.skillID with RSM.skillID, RSM.resourceSkillMapID with Resource.resourceSkillMapID to find the agents who possess the selected skill(s). The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records in which Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and join Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. The Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Agent Not Ready Reason Code Summary Report

The Agent Not Ready Reason Code Summary report provides information about the length of time each agent spent in Not Ready state during the report period. This report also shows the length of time that agents spent in Not Ready state for the reasons indicated by the reason codes that agents entered when going to Not Ready state. The report shows detailed information for each of up to eight reason codes, and displays consolidated information for other reason codes. By default, the report shows information for eight predefined reason codes. However, you can specify the eight reason codes for which the report shows detailed information.

Table 1 shows how the information in the Agent Not Ready Reason Code Summary report is obtained or calculated.

Table 2 explains how the Agent Not Ready Reason Code Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 24 Agent Not Ready Reason Code Summary Report Query Design

Field

Explanation

Agent Name

For the agents specified, obtain the Resource.resourceID and Resource.profileID as described in Table 2. Agent Name is stored in Resource.resourceName.

Note   

When an attribute of an agent changes (for example, extension or resource group), the agent will have multiple entries in the Resource table. In this case, each entry will have a different resource ID, so several resource IDs can belong to one agent, and Resource.resourceID will not uniquely identify an agent. Also, one agent may belong to different application profiles, and will have different Resource.profileID entries. Therefore, the combination of Resource.resourceID and Resource.profileID is not sufficient to uniquely identify an agent. The combination of Resource.resourceName and Resource.resourceLoginID is used to uniquely identify an agent.

Resource.resourceName itself is not sufficient to do so because different agents may have the same first and last names, but have different resource login IDs.

Resource.resourceLoginID by itself does not uniquely identify an agent because a generic resource login ID (for example, supportagent003) may be used for different agents at different times. The combination of two uniquely identifies an agent.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

Interval Start Time

Beginning of an interval.

End users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Interval End Time

End of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Total Logged-in

Login time is stored in ASD.eventDateTime with eventType set to 1 (log in). Logout time is stored in ASD.eventDateTime with eventType set to 7 (log out).

The calculation of the logged-in time for a single session depends on the agent activity, as follows:

  • An agent logs in and logs out during the interval:

    Total Logged-in Time = logout time – login time

  • An agent logs in before the interval and logs out after the interval:

    Total Logged-in Time = Interval End TimeInterval Start Time

  • An agent logs in before the interval and logs out during the interval:

    Total Logged-in Time = logout time – Interval Start Time

  • An agent logs in during the interval and logs out after the interval:

    Total Logged-in Time = Interval End Time – login time

If an agent has multiple login sessions during the interval, this field displays the sum of the time spent in each login session.

Total Not Ready

Join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain state transition records for each agent, identified by Resource.resourceName and Resource.resourceLoginID. (See agent Name in this table for the relationship between resourceID/profileID and resourceName/resourceLoginID.) Not Ready state is identified by ASD.eventType = 2.

The time spent in Not Ready state depends on the agent activity, as follows:

  • An agent goes in to and out of Not Ready state during the interval:

    Total Not Ready Time = time out of Not Ready state – time in Not Ready state

  • An agent goes in to Not Ready state before the interval and goes out of Not Ready state after the interval:

    Total Not Ready Time = Interval End TimeInterval Start Time

  • An agent goes in to Not Ready state before the interval and goes out of Not Ready state during the interval:

    Total Not Ready Time = time out of Not Ready state – Interval Start Time

  • An agent goes in to Not Ready state during the interval and goes out of Not Ready state after the interval:

    Total Not Ready Time = Interval End Time – time in to Not Ready state

If an agent goes to Not Ready state multiple times during the interval, this field displays the sum of the time spent in each Not Ready state.

Time in RC n1

Time in RC n2

Time in RC n3

Time in RC n4

Time in RC n5

Time in RC n6

Time in RC n7

Time in RC n8

Join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain state transition records for each agent, identified by Resource.resourceName and Resource.resourceLoginID. (See Agent Name in this table for the relationship between resourceID/profileID and resourceName/resourceLoginID.) Not Ready state is identified by ASD.eventType = 2. The reason code is stored in ASD.reasonCode.

By default, this report sorts the predefined Not Ready reason codes in numerical order and displays the first eight reason codes.

You can specify other reason codes to report by selecting Filter Parameter Reason Code.

Time in Other RCs

Sum of the duration spent in Not Ready reason codes that are not shown in the Time in RC n1 through Time in RC n8 fields. The total time spent in different reason codes adds up to Total Not Ready Time (Time in Reason Code 1 + Time in Reason Code 2 + … + Time in Reason Code 8 = Total Not Ready Time).

Join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain state transition records for each agent, identified by Resource.resourceName and Resource.resourceLoginID. (See Agent Name in this table for the relationship between resourceID/profileID and resourceName/resourceLoginID.) Not Ready state is identified by ASD.eventType = 2. The reason code is stored in ASD.reasonCode. For this calculation, do not consider values that have been listed in the previous eight fields.

Table 25 Agent Not Ready Reason Code Summary Report Filter Parameter

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs and profile IDs as follows:

Search and display the Resource table for agents who are active (Resource.active is 1) or who are deleted after report start time (Resource.dateInactive is later than the report start time). In this way, the report does not include agents who are deleted before the report start time.

Interval Length

Entire report range—Displays information from the report start time through the report end time, but does not display information for specific intervals within the report period.

Thirty (30) minute intervals—Displays information for 30-minute intervals within the report period. The first interval begins at the report start time, the next interval begins 30 minutes after the report start time, and so on.

Sixty (60) minute intervals—Displays information for 60-minute intervals within the report period. The first interval begins at the report start time, the next interval begins 60 minutes after the report start time, and so on.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Reason Code

To report on a specific reason code or codes, obtain the list of reason codes from the user selection for this parameter. Find ASD records for which the ASD.eventType is 2 (Not Ready) and for which the value stored ASD.reasonCode is found in the selected list.

Agent State Detail Report

The Agent State Detail report shows detailed information about when an agent changed from one state to another.

Table 1 shows how the information in the Agent State Detail report is obtained or calculated.

Table 2 explains how the Agent State Detail report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 26 Agent State Detail Report Query Design

Field

Explanation

Agent Name

For the agents specified, obtain the Resource.resourceID and Resource.profileID as described in Table 2. Agent Name is stored in Resource.resourceName.

Note   

When an attribute of an agent changes (for example, extension or resource group), the agent will have multiple entries in the Resource table. In this case, each entry will have a different resource ID, so several resource IDs can belong to one agent, and Resource.resourceID will not uniquely identify an agent. Also, one agent may belong to different application profiles, and will have different Resource.profileID entries. Therefore, the combination of Resource.resourceID and Resource.profileID is not sufficient to uniquely identify an agent. The combination of Resource.resourceName and Resource.resourceLoginID is used to uniquely identify an agent. Resource.resourceName itself is not sufficient to do so because different agents may have the same first and last names, but have different resource login IDs. Resource.resourceLoginID by itself does not uniquely identify an agent because a generic resource login ID (for example, supportagent003) may be used for different agents at different times. The combination of two uniquely identifies an agent.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

State Transition Time

Obtained from ASD.eventDateTime.

For agent identification, join ASD.agentID with Resource.resourceID, and join ASD.profileID with Resource.profileID to obtain Resource.resourceName and Resource.resourceLoginID, the combination of which uniquely identifies an agent.

Agent State

Obtained from ASD.eventType. The mapping between the numeric ASD.eventType and the displayed text is as follows:

1—Logged-in

2—Not Ready

3—Ready

4—Reserved

5—Talking

6—Work

7—Logout

Reason Code

Obtained from ASD.reasonCode.

Duration

Time agent goes out of the state specified in the Agent State field – Time Agent goes to Agent State

The calculation of the duration depends on the agent activity, as follows:

  • An agent goes to Agent State before the report start time and goes out of that state after the report end time:

    Duration = report end time – report start time

  • An agent goes to Agent State before the report start time and goes out of that state during the report period:

    Duration = time agent goes out of Agent State – report start time

  • An agent goes to Agent State during the report period and goes out of that state after the report end time:

    Duration = report end time – Transition Time

  • An agent goes to Agent State and out of Agent State during the report period:

    Duration = time agent goes out of Agent State – Transition Time

Table 27 Agent State Detail Report Filter Parameters

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs and profile IDs as follows:

Search and display the Resource table for agents who are active (Resource.active is 1) or who are deleted after report start time (Resource.dateInactive is later than the report start time). In this way, the report does not include agents who are deleted before the report start time.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Team Name

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Agent State Summary Report (by Agent and Interval)

The Agent State Summary report (by Agent) and the Agent State Summary report (by Interval) show the length and percentage of time that each agent spent in each of the following agent states: Not Ready, Ready, Reserved, Talk, and Work. These reports also show the total length of time that each agent was logged in.

In the Agent State Summary report (by Agent), information presented is sorted first by agent, then by interval.

In the Agent State Summary report (by Interval), information presented is sorted first by interval, then by agent.

Table 1shows how the information in the Agent State Summary reports is obtained or calculated.

Table 2 explains how the Agent State Summary reports filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 28 Agent State Summary Reports Query Design

Field

Explanation

Agent Name

Join ASD.agentID with Resource.resourceID to obtain the agent name, which is stored in Resource.resourceName.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

Interval Start Time

Beginning of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Interval End Time

End of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Total Logged-in Time

Login time is stored in ASD.eventDateTime with eventType set to 1 (log in). Logout time is stored in ASD.eventDateTime with eventType set to 7 (log out).

The calculation of the logged-in time for a single session depends on the agent activity, as follows:

  • An agent logs in and logs out during the interval:

    Total Logged-in Time = logout time – login time

  • An agent logs in before the interval and logs out after the interval:

    Total Logged-in Time = Interval End TimeInterval Start Time

  • An agent logs in before the interval and logs out during the interval:

    Total Logged-in Time = logout time – Interval Start Time

  • An agent logs in during the interval and logs out after the interval:

    Total Logged-in Time = Interval End Time – login time

If an agent has multiple login sessions during the interval, this field displays the sum of the time spent in each login session.

Not Ready Time

Total time that an agent spent in Not Ready state during the interval, and the percentage of total logged-in time that an agent spent in Not Ready state.

The time that an agent goes to Not Ready state is stored in ASD.eventDateTime with eventType set to 2. The time spent in Not Ready state depends on the agent activity, as follows:

  • An agent goes in to and out of Not Ready state during the interval:

    Total Not Ready Time = time out of Not Ready state – time in to Not Ready state

  • An agent goes in to Not Ready state before the interval and goes out of Not Ready state after the interval:

    Total Not Ready Time = Interval End TimeInterval Start Time

  • An agent goes in to Not Ready state before the interval and goes out of Not Ready state during the interval:

    Total Not Ready Time = time out of Not Ready state – Interval Start Time

  • An agent goes in to Not Ready state during the interval and goes out of Not Ready state after the interval:

    Total Not Ready Time = Interval End Time – time in to Not Ready state

If an agent goes to Not Ready state multiple times during the interval, this field displays the sum of the time spent in each Not Ready state.

The percentage is calculated as:

(Not Ready Time / Total Logged-in Time) * 100%

Ready Time

Total time that an agent spent in Ready state during the interval, and the percentage of total logged-in time that an agent spent in Ready state.

The time that an agent goes to the Ready state is stored in ASD.eventDateTime with eventType set to 3. The time spent in Ready state depends on the agent activity, as follows:

  • An agent goes in to and out of Ready state during the interval:

    Total Ready Time = time out of Ready state – time in to Ready state

  • An agent goes in to Ready state before the interval and goes out of Ready state after the interval:

    Total Ready Time = Interval End TimeInterval Start Time

  • An agent goes in to Ready state before the interval and goes out of Ready state during the interval:

    Total Ready Time = time out of Ready state – Interval Start Time

  • An agent goes in to Ready state during the interval and goes out of Ready state after the interval:

    Total Ready Time = Interval End Time – time in to Ready state

If an agent goes to Ready state multiple times during the interval, this field displays the sum of the time spent in each Ready state.

The percentage is calculated as:

(Ready Time / Total Logged-in Time) * 100%

Reserved Time

Total time an agent spent in the Reserved state during the interval, and the percentage total logged-in time that an agent spent in Reserved state.

The time that an agent goes to the Reserved state is stored in ASD.eventDateTime with eventType set to 4. The time spent in Reserved state depends on the agent activity, as follows:

  • An agent goes in to and out of Reserved state during the interval:

    Total Reserved Time = time out of Reserved state – time in to Reserved state

  • An agent goes in to Reserved state before the interval and goes out of Reserved state after the interval:

    Total Reserved Time = Interval End TimeInterval Start Time

  • An agent goes in to Reserved state before the interval and goes out of Reserved state during the interval:

    Total Reserved Time = time out of Reserved state – Interval Start Time

  • An agent goes in to Reserved state during the interval and goes out of Reserved state after the interval:

    Total Reserved Time = Interval End Time – time in to Reserved state

If an agent goes to the Reserved state multiple times during the interval, this field displays the sum of the time spent in each Reserved state.

The percentage is calculated as:

(Reserved Time / Total Logged-in Time) * 100%

Talk Time

Total time an agent spent in the Talk state during the interval, and the percentage of total logged-in time that an agent spent in Talk state.

The time that an agent goes to the Talk state is stored in ASD.eventDateTime with eventType set to 5. The time spent in Talk state depends on the agent activity, as follows:

  • An agent goes in to and out of Talk state during the interval:

    Total Talk Time = time out of Talk state – time in to Talk state

  • An agent goes in to Talk state before the interval and goes out of Talk state after the interval:

    Total Talk Time = Interval End TimeInterval Start Time

  • An agent goes in to Talk state before the interval and goes out of Talk state during the interval:

    Total Talk Time = time out of Talk state – Interval Start Time

  • An agent goes in to Talk state during the interval and goes out of Talk state after the interval:

    Total Talk Time = Interval End Time – time in to Talk state

If an agent goes to the Talk state multiple times during the interval, this field displays the sum of the time spent in each Talk state.

The percentage is calculated as:

(Talk Time / Total Logged-in Time) * 100%

Work Time

Total time an agent spent in the Work state during the interval, and the percentage of total logged-in time that an agent spent in Work state.

The time that an agent goes to the Work state is stored in ASD.eventDateTime with eventType set to 6. The time spent in Work state depends on the agent activity, as follows:

  • An agent goes in to and out of Work state during the interval:

    Total Work Time = time out of Work state – time in to Work state

  • An agent goes in to Work state before the interval and goes out of Work state after the interval:

    Total Work Time = Interval End TimeInterval Start Time

  • An agent goes in to Work state before the interval and goes out of Work state during the interval:

    Total Work Time = time out of Work state – Interval Start Time

  • An agent goes in to Work state during the interval and goes out of Work state after the interval:

    Total Work Time = Interval End Time – time in to Work state

If an agent goes to the Work state multiple times during the interval, this field displays the sum of the time spent in each Work state.

The percentage is calculated as:

(Work Time / Total Logged-in Time) * 100%

Summary

For the Agent State Summary report (by Agent): Summation of data in each report field across all intervals.

For the Agent State Summary report (by Interval): Summation of data in each report field during each interval.

Grand Total

Summation of data in all report fields for all intervals.

Table 29 Agent State Summary Reports Filter Parameters

Filter parameter

Explanation

All Agents (default, no filter parameter)

To report on all agents, obtain the list of resource IDs as follows:

Search the Resource table for records with resourceType set to 1 (agent). Resource ID is stored in the Resource.resourceID field.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Interval Length

Options are entire report period (default), 30 minutes, 60 minutes.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs as follows:

Obtain the list of resource group name(s) from the user selection for this parameter. Find the corresponding RG.resourceGroupID(s). Join RG.resourceGroupID with Resource.resourceGroupID to find agents belonging to the selected resource group(s). The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs as follows:

Obtain the list of agent names from the user selection for this parameter. Find the corresponding Resource.resourceID(s).

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Skill Names

To report on agents who possess a specific skill or skills, obtain the list of resource IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Find the corresponding Skill.skillID(s). Join Skill.skillID with RSM.skillID and join RSM.resourceSkillMapID with Resource.resourceSkillMapID to find the agents who possess the selected skill(s). The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ASD.resourceID to obtain other call-related data.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records in which Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and join Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. The Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Agent Summary Report

The Agent Summary report contains one row per agent. Each row contains a summary of the activities of an agent.

The ACD table contains information of the agents who handled ACD calls. This table provides the basic data for the Agent Summary report.

Table 1 shows how the information in the Agent Summary report is obtained or calculated.

Table 2 explains how the Agent Summary report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 30 Agent Summary Report Query Design

Field

Explanation

Agent Name

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to get ACD.resourceID and ACD.profileID. ACD.resourceID contains the resource ID of the agent who handled the call. Join ACD.resourceID with Resource.resourceID, and ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

Extension

For agents who have not had their extension changed, obtained from Resource.extension.

For agents who have had their extension changed at some time, the extension that is assigned to the agent during the report period.

Avg Logged-In Time

The ASD provides the times that each agent logs in and logs out. The length of time between log in and log out is the agent logged-in time. Login time is stored in ASD.eventDateTime with eventType set to 1 (log in). Logout time is stored in ASD.eventDateTime with eventType set to 7 (log out).

The calculation of the average logged-in time depends on the agent activity, as follows. In these calculations, t1 is the report start time and t2 is the report end time.

  • An agent logs in before t1 and logs out between t1 and t2:

    Logged-in duration = logout time – t1

  • An agent logs in between t1 and t2 and logs out after t2:

    Logged-in duration = t2 – login time

  • An agent logs in between t1 and t2 and logs out between t1 and t2:

    Logged-in duration = logout time – login time

  • An agent logs in before t1 and logs out after t2:

    Logged-in duration = t2 – t1

The average logged-in time for an agent is calculated as follows:

Calculate the total logged-in time for an agent during the report period and divide by the number of logged-in sessions.

Calls Handled

Join ACD and CCD on sessionID, sessionSeqNum, profileID, and nodeID. For each agent, count the number of unique CCD.sessionID that meet the following criteria:

  • CCD.startDateTime is in the report period
  • CCD.contactDisposition is 2 (handled)
  • ACD.talkTime is greater than zero

Calls Presented

Join ACD and CCD on sessionID and sessionSeqNum, profileID, and nodeID. For each agent, count the number of unique CCD.sessionID with CCD.startDateTime falling within the report period.

Handle Ratio

Call Handled divided by Calls Presented.

Handle Time—Avg

Each call handled by an agent has an ACD record. The handle time of a call is calculated as follows:

ACD.talkTime + ACD.holdTime + ACD.workTime

The average handle time is the sum of the handle times of all the calls handled by the agent within the report period divided by the number of calls handled within the report period.

Handle Time—Max

Each call handled by an agent has an ACD record. The handle time of a call is calculated as follows:

ACD.talkTime + ACD.holdTime + ACD.workTime

The maximum handle time for an agent is the longest handle time of all calls handled by the agent within the report period.

Talk Time—Avg

Talk time of a call is obtained from ACD.talkTime.

The average talk time for an agent is the sum of talk times of all calls handled by the agent within the report period divided by the number of calls handled within the report period.

Talk Time—Max

Talk time of a call is obtained from ACD.talkTime.

Maximum talk time for an agent is the longest talk time of all the calls handled by the agent within the report period.

Hold Time—Avg

Hold time of a call is obtained from ACD.holdTime.

Average hold time for an agent is the sum of the hold times of all calls handled by the agent within the report period divided by the number of calls handled calls within the report period.

Hold Time—Max

Hold time of a call is obtained from ACD.holdTime.

The maximum hold time for an agent is the longest hold time of all calls handled by the agent within the report period.

Work Time—Avg

Work time of a call is obtained from ACD.workTime.

The average work time for an agent is the sum of work times of all calls handled by the agent within the report period divided by the number of calls handled within the report period.

Work Time—Max

Work time of a call is obtained from ACD.workTime.

The maximum work time for an agent is the longest work time of all the calls handled by the agent within the report period.

Idle Time—Avg

The ASD records the date and time that an agent goes to a specific state. Idle time is the time spent in the Not Ready state (2). While in the Not Ready state (2), an agent can go to Ready state (3), Reserved state (4), or Logout state (7).

An idle session begins when an agent goes to Not Ready state and ends when the agent goes to the next state (Ready, Reserved, or Logout). The length of time that the agent spends in Not Ready state is the duration of an idle session.

The average idle time for an agent is the sum of the durations of all of an agent’s idle sessions within the report period divided by the number of idle sessions within the report period.

Idle Time—Max

The ASD records the date and time that an agent goes to a specific state. Idle time is the time spent in the Not Ready state (2). While in the Not Ready state (2), an agent can go to Ready state (3), Reserved state (4), or Logout state (7).

An idle session begins when an agent goes to Not Ready state and ends when the agent goes to the next state (Ready, Reserved, or Logout). The length of time that the agent spends in Not Ready state is the duration of an idle session.

The maximum idle time for an agent is the longest duration of the idle sessions within the report period.

Table 31 Agent Summary Report Filter Parameters

Filter parameter

Explanation

All Agents (default, no filtering parameters)

To report on all agents, obtain the list of resource IDs and profile IDs as follows:

Search and display the Resource table for agents who are active (Resource.active = 1) or who are deleted after the report start time (Resource.dateInactive later than the report start time, which means that the agent is still active during the report period). In this way, the report does not include agents who are deleted before the report start time.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents who belong to the selected resource group(s). Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are found in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records whose Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents who have the selected skill(s). Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who were active during the report start time.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records in which Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and join Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. The Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

This report displays only the active agents and the agents who are deleted after the report start time.

Top N Calls Handled/Presented Ratio

To report on N agents who rank highest in the calls handled/presented ratio, obtain the list of resource IDs as follows:

Rank the agents by the calls handled/presented ratio in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the top N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Bottom N Calls Handled/Presented Ratio

To report on N agents who rank lowest in the calls handled/presented ratio, obtain the list of resource IDs as follows:

Rank the agents by the calls handled/presented ratio in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the bottom N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Top N Avg Hold Time

To report on N agents who rank highest in average hold time, obtain the list of resource IDs as follows:

Rank the agents by average hold time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the top N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Bottom N Avg Hold Time

To report on N agents who rank lowest in average hold time, obtain the list of resource IDs as follows:

Rank the agents by average hold time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the bottom N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Top N Avg Talk Time

To report on N agents who rank highest in average talk time, obtain the list of resource IDs as follows:

Rank the agents by average talk time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the top N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Bottom N Avg Talk Time

To report on N agents who rank lowest in average talk time, obtain the list of resource IDs as follows:

Rank the agents by average talk time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the bottom N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Top N Avg Work Time

To report on N agents who rank highest in average work time, obtain the list of resource IDs as follows:

Rank the agents by average work time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the top N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Bottom N Avg Work Time

To report on N agents who rank lowest in average work time, obtain the list of resource IDs as follows:

Rank the agents by average work time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the bottom N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Top N Avg Handle Time

To report on N agents who rank highest in average handle time, obtain the list of resource IDs as follows:

Rank the agents by average handle time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the top N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Bottom N Avg Handle Time

To report on N agents who rank lowest in average handle time, obtain the list of resource IDs as follows:

Rank the agents by average handle time in descending order. In case of a tie, order the agents alphabetically by Resource.resourceLoginID. Select the bottom N agents. The value of resource ID is stored in Resource.resourceID.

Join Resource.resourceID with ACD.resourceID and ACD.profileID to obtain other call-related data.

Agent Wrap-up Data Detail Report

The Agent Wrap-up Data Detail report shows the details entered by an agent when entering the work state after attending an ACD. This report is available with the Agent Wrap-up feature.

Table 1 shows how the information in the Agent Wrap-up Data Detail report is obtained or calculated.

Table 2 explains how the Agent Wrap-up Data Detail report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 32 Agent Wrap-up Data Detail Report Query Design

Field

Explanation

Agent Name

For ACD calls, an agent is identified by the combination of ACD.resourceID and ACD.profileID. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

For IVR calls, if an agent is the originator of the call, the agent is identified by CCD.originatorID and CCD.profileID, when CCD.originatorType = 1 (agent type). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

If an agent is the destination of an IVR call, the agent is identified by CCD.destinationID and CCD.profileID, when CCD.destinationType = 1 (agent type). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

Extension

For ACD calls, an agent is identified by the combination of ACD.resourceID and ACD.profileID. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

For IVR calls, if an agent is the originator of the call, the agent is identified by CCD.originatorID and CCD.profileID, when CCD.originatorType = 1 (agent type). Join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.resourceName.

If an agent is the destination of an IVR call, the agent is identified by CCD.destinationID and CCD.profileID, when CCD.destinationType = 1 (agent type). Join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.extension.

Node ID

Obtained from CCD.nodeID.

Session ID

Obtained from CCD.sessionID.

Sequence No.

Obtained from CCD.sessionSeqNum.

Call Start Time

Obtained from ACD.startDateTime.

Call End Time

Obtained from ACD.endDateTime.

Call ANI

Agent identification is stored in ACD (see Agent Name earlier in this table). Join ACD and CCD on sessionID, sessionSeqNum, nodeID, and profileID. The value of this field is obtained from CCD.originatorDN.

Called Number

Agent identification is stored in ACD (see Agent Name earlier in this table). Join ACD and CCD on sessionID, sessionSeqNum, nodeID, and profileID. The value of this field is obtained from CCD.calledNumber.

Call Routed CSQ

Join ACD and CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type), and CQD.disposition = 2 (handled). The combination of CQD.targetID and CQD.profileID uniquely identifies a CSQ. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID to obtain the CSQ name, which is stored in CSQ.csqName.

Talk Time

Obtained from ACD.talkTime.

Hold Time

Obtained from ACD.holdTime.

Work Time

Obtained from ACD.workTime.

Wrap-up Data

Obtained from ACD.callWrapupData.

Table 33 Agent Wrap-up Data Detail Report Filter Parameters

Filter parameter

Explanation

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Skill Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Team Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Agent Wrap-up Data Summary Report

The Agent Wrap-up Data Summary report displays shows detailed information about Wrap-up data. This report is available with the Agent Wrap-up feature.

Table 1 shows how the information in the Agent Wrap-up Data Summary report is obtained or calculated.

Table 2 explains how the Agent Wrap-up Data Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 34 Agent Wrap-up Data Summary Report Query Design

Field

Explanation

Wrap-up Data

Obtained from ACD.callWrapupData.

Total ACD Calls

For the selected Wrap-up data, count the number of ACD records.

Total Handle Time

For the selected Wrap-up data, for all ACD records, calculate (ACD.talkTime + ACD.holdTime + ACD.workTime).

Average Handle Time

Total Handle Time / Total ACD Calls.

Max Handle Time

For the selected Wrap-up data, for all ACD records, find the one with maximum (talkTime + holdTime + workTime).

Total Talk Time

For the selected Wrap-up data, for all ACD records, determine the total ACD.talkTime.

Average Talk Time

Total Talk Time / Total ACD Calls.

Max Talk Time

For the selected Wrap-up data, for all ACD records, find the one with the maximum ACD.talkTime.

Total Talk Time as % of Total Handle Time

(Total Talk Time / Total Handle Time) * 100%

Total Work Time

For the selected Wrap-Up data, for all ACD records, determine the total ACD.workTime.

Average Work Time

Total Work Time / Total ACD Calls.

Max Work Time

For the selected Wrap-up data, for all ACD records, find the one with the maximum ACD.workTime.

Total Work Time as % of Total Handle Time

(Total Work Time / Total Handle Time) * 100%

Table 35 Agent Wrap-up Data Summary Report Filter Parameter

Filter parameter

Explanation

Wrap-up Data

To report on a specific Wrap-up data, obtain the list of data from the user selection for this parameter. Look up these selections in the ACD table, and include the corresponding ACD records.

Call Custom Variables Report

The Call Custom Variables report shows information about custom variables that are set by the Set Enterprise Call step in the workflow that the Unified CCX or Cisco Unified IP IVR application associated with a call invoked. This information comes from the CCD table.

Table 1 shows how the information in the Call Custom Variables report is obtained or calculated.

Table 2 explains how the Call Custom Variables report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 36 Call Custom Variables Report Query Design

Field

Explanation

Node ID

Obtained from CCD.nodeID

Session ID

Obtained from CCD.sessionID.

Sequence No.

Obtained from CCD.sessionSeqNum.

Start Time

Obtained from CCD.startDateTime.

End Time

Obtained from CCD.endDateTime.

Contact Disposition

Obtained from CCD.contactDisposition.

Agent Name

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to obtain ACD.resourceID and ACD.profileID. ACD.resourceID contains the resource ID of the agent who handled the call. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain the agent name, which is stored in Resource.resourceName.

Blank for ACD calls that were not handled by any agent and for IVR calls.

Application Name

Obtained from CCD.applicationName.

Custom Variable 1

Obtained from CCD.customVariable1.

Custom Variable 2

Obtained from CCD.customVariable2.

Custom Variable 3

Obtained from CCD.customVariable3.

Custom Variable 4

Obtained from CCD.customVariable4.

Custom Variable 5

Obtained from CCD.customVariable5.

Custom Variable 6

Obtained from CCD.customVariable6.

Custom Variable 7

Obtained from CCD.customVariable7.

Custom Variable 8

Obtained from CCD.customVariable8.

Custom Variable 9

Obtained from CCD.customVariable9.

Custom Variable 10

Obtained from CCD.customVariable10.

Called Number Summary Activity Report

The Called Number Summary Activity report contains one row per called number. The called number is stored in CCD.origCalledNumber.

Outgoing calls are not included in this report.

Table 1 shows how the information in the Called Number Summary Activity report is obtained or calculated.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 37 Called Number Summary Activity Report Query Design

Field

Explanation

Called Number

Obtained from CCD.calledNumber

Call Type

Obtained from CCD.destinationType. The value 1 (agent) indicates an IVR call. The value 2 (device) indicates an ACD call. The value 3 (unknown) indicates an outgoing call or a call to an unmonitored device, and is not reported.

Total Calls

For each unique CCD.calledNumber, count the number of CCD records.

Avg Calls (per day)

Total calls divided by the number of days in the report period.

The number of days in the report period is calculated as follows. This information is displayed in units of days, rounded up to the next integer.

report end time – report start time

For example, if the report start time and the report end time are on the same day, the number of days is 1.

Avg Call Duration

Duration of a call is obtained from CCD.connectTime. Average call duration of a called number is calculated by the sum of CCD.connectTime of all calls for that called number, divided by the number of calls to that number.

Table 38 Call Custom Variables Report Filter Parameters

Filter parameter

Result

Original Called Number

To report on a specific original called number or numbers, obtain the list of original called numbers from the user selection for this parameter. Find CCD records whose value stored in CCD.origCalledNumber is in the selected list.

Called Number

To report on a specific called number or numbers, obtain the list of called numbers from the user selection for this parameter. Find CCD records whose value stored in CCD.calledNumber is in the selected list.

Calling Number

To report on a specific calling number or numbers, obtain the list of calling numbers from the user selection for this parameter. Find at CCD records whose value stored in CCD.originatorDN is in the selected list.

Application Name

To report on a specific application name or names, obtain the list of application names from the user selection for this parameter. Find CCD records whose value stored in CCD.applicationName is in the selected list.

Contact Type

To report on a specific contact type or types, obtain the list of contact type names from the user selection for this parameter. The numeric ID is mapped to contact type name as follows:

1—incoming

2—outgoing

3—internal

4—redirect-in

5—transfer-in

6—outbound preview

Find CCD records for which the value stored in CCD.contactType is in the selected list.

Originator Type

To report on a specific originator types, obtain the list of originator types from the user selection for this parameter. The numeric ID is mapped to originator type name as follows:

1—agent

2—device

3—unknown

Find CCD records for which the value stored in CCD.originatorType is in the selected list.

Destination Type

To report on a specific destination type, obtain the list of destination type from the user selection for this parameter. The numeric ID is mapped to destination type name is as follows:

1—agent

2—device

3—unknown

Find at CCD records for which the value stored in CCD.destinationType is in the selected list.

Duration Greater Than or Equal to T seconds

To report on calls with duration greater than or equal to T seconds, obtain the value of T from the user input for this parameter. The call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find CCD records with call duration greater than or equal to T.

Duration Less Than or Equal to T seconds

To report on calls with duration less than or equal to T seconds, obtain the value of T from the user input for this parameter. The call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find CCD records with call duration less than or equal to T.

Custom Variable 1

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable1 matches the user input either partially or wholly.

Custom Variable 2

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable2 matches the user input either partially or wholly.

Custom Variable 3

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable3 matches the user input either partially or wholly.

Custom Variable 4

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable4 matches the user input either partially or wholly.

Custom Variable 5

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable5 matches the user input either partially or wholly.

Custom Variable 6

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable6 matches the user input either partially or wholly.

Custom Variable 7

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable7 matches the user input either partially or wholly.

Custom Variable 8

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable8 matches the user input either partially or wholly.

Custom Variable 9

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable9 matches the user input either partially or wholly.

Custom Variable 10

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in CCD.customVariable10 matches the user input either partially or wholly.

Any Custom Variable

Obtain the string from the user input for this parameter. Find CCD records for which the value stored in any of the 10 custom variables matches the user input either partially or wholly. The value of custom variable is stored in CCD.customVariablen, where n = 1 to 10.

Common Skill Contact Service Queue Activity Report (by Interval)

The Common Skill Contact Service Queue Activity report (by Interval) shows summary information about calls presented, calls handled, and calls abandoned for each group of contact service queues (CSQs). (Such a group consists of CSQs that are configured with the same skill or skills and with different competence levels.)

Table 1 shows how the information in the Common Skill Contact Service Queue Activity report (by Interval) is obtained or calculated.

Table 2 explains how the Common Skill Contact Service Queue Activity report (by Interval) filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 39 Common Skill Contact Service Queue Activity Report (by Interval) Query Design

Field

Explanation

Interval Start Time

Beginning of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Interval End Time

End of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Skills (Competence Level)

CSQU.recordID is used to obtain CSQU.skillGroupID. Join CSQU.skillGroupID with SG.skillGroupID to obtain SG.skillID. Join SG.skillID with Skill.skillID to obtain the list of skill names, which is stored in Skill.skillName. Competence level is obtained from SG.competenceLevel.

Calls Presented— Total

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (For these records, the values of the corresponding CCD.startDateTime is within the report period.) Additional search criterion: CQD.targetType is 0 (type CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls presented to that CSQ.

Calls Presented— Queue Time Avg

Queue Time is stored in CQD.queueTime. Determine the sum of CQD.queueTime values for all calls presented to this CSQ, then divide by Calls Presented—Total, if calls presented is not zero. If it is zero, this field is set to zero.

Calls Presented— Queue Time Max

Maximum value stored in CQD.queueTime, for all calls presented to this CSQ.

Calls Handled— Total

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls handled by the CSQ.

Calls Handled— Handle Time Avg

Handle time of a call is calculated as (ACD.talkTime + ACD.holdTime + ACD.workTime). Determine the sum of handle times for all calls handled by this CSQ, then divide by Calls Handled—Total, if calls handled is not zero. If it is zero, this field is set to zero.

Calls Handled— Handle Time Max

Handle time of a call is calculated as (ACD.talkTime + ACD.holdTime + ACD.workTime). This field is set to the maximum value of handle time for all calls handled by this CSQ.

Calls Abandoned— Total

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls abandoned from the CSQ.

Calls Abandoned— Queue Time Avg

Queue Time is stored in CQD.queueTime. Determine the sum of CQD.queueTime values for all calls abandoned from this CSQ, then divide by Calls Abandoned—Total, if calls abandoned is not zero. If it is zero, this field is set to zero.

Calls Abandoned— Queue Time Max

Maximum value stored in CQD.queueTime, for all calls abandoned from this CSQ.

Service Level— Percentage SL Met

Join CQD and ACD on sessionID, sessionSeqNum, nodeID, profileID, and qIndex. Additional search criteria is CQD.targetType is 0 (CSQ type) and CQD.metServiceLevel is 1.

For each CSQ identified by the combination of CQD.targetID and CQD.profileID, determine the number of CQD records, which is the number of Calls Handled Within Service Level.

This field is calculated as follows, if Calls Presented—Total is not zero:

(Calls Handled Within Service Level / Calls Presented) * 100%

If Calls Presented—Total is zero, this field is set to zero.

Summary for Skills

Summation of statistics for all CSQs within the same logical CSQ group.

Table 40 Common Skill Contact Service Queue Activity Report (by Interval) Filter Parameters

Filter parameter

Explanation

Interval Length

Options are entire report period (default), 30 minutes, 60 minutes.

CSQ Names

To report on a specific CSQ or CSQs, obtain the list of the CSQ names from the user selection for this parameter. Join CSQ.recordID with CQD.targetID, and join CSQ.profileID with CQD.profileID to obtain the CQD records for the specified CSQs. For these CQD records, CQD.targetType should be 0 (CSQ type). Join CQD and CCD on sessionID, sessionSeqNum, nodeID, and profileID to obtain other information stored in the CCD table.

Contact Service Queue Activity Report

The Contact Service Queue Activity report shows one line for each CSQ that is configured in Unified CCX. A CSQ can be configured based on resource group or based on resource skill.

Table 1 shows how the information in the Contact Service Queue Activity report is obtained or calculated.

Table 2 explains how the Contact Service Queue Activity report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 41 Contact Service Queue Activity Report Query Design

Field

Explanation

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Call Skills

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. Join CSQ.skillGroupID with SG.skillGroupID to obtain SG.skillID. Join SG.skillID with Skill.skillID to obtain the list of skill names, which are stored in Skill.skillName. Multiple skill names are separated by commas.

Calls Presented

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (For these records, the values of the corresponding CCD.startDateTime is within the report period.) Additional search criterion: CQD.targetType is 0 (type CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls presented to that CSQ.

Average Queue Time

Calculated as total queue time / Calls Presented.

To obtain total queue time, Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (For these records, the values of the corresponding CCD.startDateTime is within the report period.) Additional search criterion: CQD.targetType is 0 (type CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the sum of the values stored in CQD.queueTime.

Max Queue Time

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (For these records, the values of the corresponding CCD.startDateTime is within the report period.) Additional search criterion: CQD.targetType is 0 (type CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, determine the maximum value stored in CQD.queueTime.

Calls Handled

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls handled by the CSQ.

Avg Speed of Answer

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the sum of the values stored in ACD.ringTime to obtain total ring time, and calculate the sum of the values stored in CQD.queueTime to obtain total queue time.

If Calls Handled is not zero, the Avg Speed of Answer is calculated as:

total queue time / Calls Handled

Here total queue time includes the total ring time. If Calls Handled is zero, this field is zero.

Avg Handle Time

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the sum of the values stored in ACD.talkTime, ACD.holdTime, and ACD.workTime to obtain the total handle time for all calls handled. Handle time for a call is defined as talk time + hold time + work time.

If Calls Handled is not zero, this field is calculated as:

total handle time / Calls Handled

If Calls Handled is zero, this field is zero.

Max Handle Time

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the handle time for each call as follows:

ACD.talkTime + ACD.holdTime + ACD.workTime

This field shows the maximum handle time for all calls handled by this CSQ.

Calls Abandoned

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls abandoned from the CSQ.

Avg Time to Abandon

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the sum of the values stored in CQD.queueTime to obtain total queue time for abandoned calls.

If Calls Abandoned is not zero, this field is:

total queue time / Calls Abandoned

If Calls Abandoned is zero, this field is zero.

Max Time to Abandon

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, find the maximum value stored in CQD.queueTime.

Avg Abandon Per Day

Calculated as Calls Abandoned / number of days during report period.

The number of days is calculated as follows. This information is displayed in units of days, rounded up to the next integer.

report end time – report start time

For example, if the report start time and the report end time are on the same day, the number of days is 1.

Max Abandon Per Day

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ and each day during the report period, count the number of CQD records to determine the number of calls abandoned from the CSQ. CCD.startDateTime is used to determine on which day a call is abandoned.

For each CSQ, find the maximum number of calls abandoned on a particular day during the report period.

Calls Dequeued

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type), and CQD.disposition is 3 (dequeued).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls dequeued from the CSQ.

Avg Time to Dequeue

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type), and CQD.disposition is 3 (dequeued).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, calculate the sum of the values stored in CQD.queueTime to determine queue time.

If Calls Dequeued is not zero, this field is calculated as:

total queue time / Calls Dequeued

If Calls Dequeued is zero, this field is zero.

Max Time to Dequeue

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values within the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type), and CQD.disposition is 3 (dequeued).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, determine the maximum value stored in CQD.queueTime.

Calls Handled by Other

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values within the report period.) Additional search criteria are: CQD.targetType is 0 (CSQ type), and CQD.disposition is 4 (handled by script) or 5 (handled by another CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls handled by script or another CSQ.

Table 42 Contact Service Queue Activity Report Filter Parameter

Filter parameter

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID and CSQ.profileID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time. This action determines the active CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

CSQ Types

To report on a specific CSQ type or types, obtain the list of CSQ.recordID and CSQ.profileID from the user selection for this parameter as follows:

  • If user selects Resource Group, search the CSQ table for records with CSQ.resourcePoolType = 1 (resource group type).
  • If user selects Skill Group, search the CSQ table for records with CSQ.resourcePoolType = 2 (skill group type).
  • If user selects both Resource Group and Skill Group, search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

Contact Service Queue Activity Reports (by CSQ and Interval)

The Contact Service Queue Activity report (by CSQ) and the Contact Service Queue Activity report (by Interval) show information about service levels, and about the number and percentage of calls presented, handled, abandoned, and dequeued.

In the Contact Service Queue Activity report (by CSQ), information presented is sorted first by CSQ, then by interval.

In the Contact Service Queue Activity report (by Interval), information presented is sorted first by interval, then by CSQ.

Table 1shows how the information in the Contact Service Queue Activity reports is obtained or calculated.

Table 2 explains how the Contact Service Queue Activity reports filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 43 Contact Service Queue Activity Reports Query Design

Field

Explanation

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 1. CSQ name is stored in CSQ.csqName.

Call Skills

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. Join CSQ.skillGroupID with SG.skillGroupID to get SG.skillID. Join SG.skillID with Skill.skillID to obtain the list of skill names, which is stored in Skill.skillName. Multiple skill names are separated with commas.

Interval Start Time

Beginning of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Interval End Time

End of an interval.

End-users can divide the report period into 30- or 60-minute intervals. (The default interval length is the entire report period.)

Service Level (sec)

Obtained from CSQU.serviceLevel.

Calls Hand < SL

Join ACD and CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex. Additional search criteria are CQD.targetType is 0 (CSQ type), and CQD.metServiceLevel is 1. For each CSQ identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records.

Calls Aband < SL

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to determine CQD records during the report period. (Corresponding CCD records have CCD.startDateTime during the report period.) Additional search criteria are CQD.disposition is 1 (abandoned), and CQD.targetType is 0 (CSQ type). For each CSQ identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records with CQD.metServiceLevel = 1.

Percentage of Service Level Met— Only Handled

Considers calls that were handled only, regardless of whether they were handled within the service level. This value does not consider calls that were abandoned.

This value is calculated as follows:

(number of calls handled within service level / number of calls handled) * 100%

Percentage of Service Level Met— Without Abandon

Does not include information for calls that were abandoned within the service level.

This value is calculated as follows:

(number of calls handled within service level / (number of calls presented – number of calls abandoned within service level)) * 100%

Percentage of Service Level Met— Positive Abandon

Considers calls that were abandoned within the service level as meeting the service level.

This value is calculated as follows:

((number of calls handled within service level + number of calls abandoned within service level) / number of calls presented) * 100%

Percentage of Service Level Met— Negative Abandon

Considers calls that were abandoned within the service level as not meeting the service level.

This value is calculated as follows:

(number of calls handled within service level / number of calls presented) * 100%

Calls Presented

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to determine CQD records during the report period. (For these records, the corresponding CCD.startDateTime is during the report period.) The additional search criterion is CQD.targetType is 0 (type CSQ).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. CSQ record ID and profile ID are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls presented to that CSQ.

Calls Handled

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition = 2 (handled) and ACD.talkTime greater than zero. This process determines the calls handled by agents. To obtain the CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. CSQ record ID and profile ID are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls handled by the CSQ.

The percentage is calculated as follows:

(calls handled / calls presented) * 100%

Calls Abandoned

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to determine CQD records during the report period. (Corresponding CCD records have CCD.startDateTime during the report period.) Additional search criteria are CQD.disposition is 1 (abandoned), and CQD.targetType is 0 (CSQ type). For each CSQ identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records.

The percentage is calculated as follows:

(calls abandoned / calls presented) * 100%

Calls Dequeued

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to determine CQD records during the report period. (Corresponding CCD records have CCD.startDateTime during the report period.) Additional search criteria are CQD.targetType is 0 (CSQ type), and CQD.disposition is 3 (dequeued via Dequeue step), 4 (call handled by workflow script and therefore dequeued from this CSQ), or 5 (handled by another CSQ and therefore dequeued from this CSQ). For each CSQ identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records.

The percentage is calculated as follows:

(calls dequeued / calls presented) * 100%

Table 44 Contact Service Queue Activity Reports Filter Parameters

Filter parameter

Explanation

All CSQs (default, no filter)

To report on all agents, obtain the list of resource IDs and profile IDs as follows:

Search and display the Resource table for agents who are active (Resource.active = 1) or who are deleted after report start time (Resource.dateInactive is later than report start time, which means that agent is still active during the report period). In this way, the report does not include agents who are deleted before the report start time.

Interval Length

Options are entire report period (default), 30 minutes, 60 minutes.

CSQ Name

To report on a specific CSQ or CSQs, obtain the list of the CSQ names from the user selection for this parameter. Join CSQ.recordID with CQD.targetID, and join CSQ.profileID with CQD.profileID to obtain the CQD records for the specified CSQs. For these CQD records, CQD.targetType should be 0 (CSQ type). Join CQD and CCD on sessionID, sessionSeqNum, nodeID, and profileID to obtain other information stored in the CCD table.

Contact Service Queue Call Distribution Summary Report

The Contact Service Queue Call Distribution Summary report shows the number and percentage of calls handled and dequeued in four different time intervals. The time interval lengths can be configured by users.

Table 1 shows how the information in the Contact Service Queue Call Distribution Summary report is obtained or calculated.

Table 2 explains how the Contact Service Queue Call Distribution Summary report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 45 Contact Service Queue Call Distribution Summary Report Query Design

Field

Explanation

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Call Skills

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. Join CSQ.skillGroupID with SG.skillGroupID to obtain SG.skillID. Join SG.skillID with Skill.skillID to obtain the list of skill names, which are stored in Skill.skillName. Multiple skill names are separated by commas.

Calls Handled

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls handled by the CSQ.

Total Calls Handled With Queue Time 0–T sec

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to T seconds.

Percentage Calls Handled With Queue Time 0–T sec

If Calls Handled is not zero, this field is calculated as

(Total Calls Handled with Queue Time in 0–T seconds / Calls Handled) * 100%

If Calls Handled is zero, this field is zero.

Total Calls Handled With Queue Time 0–2T sec

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 2T seconds.

Percentage Calls Handled With Queue Time 0–2T sec

If Calls Handled is not zero, this field is calculated as:

(Total Calls Handled with Queue Time in 0–2T seconds / Calls Handled) * 100%

If Calls Handled is zero, this field is zero.

Total Calls Handled With Queue Time 0–3T sec

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 3T seconds.

Percentage Calls Handled With Queue Time 0–3T sec

If Calls Handled is not zero, this field is calculated as:

(Total Calls Handled with Queue Time in 0–3T seconds / Calls Handled) * 100%

If Calls Handled is zero, this field is zero.

Total Calls Handled With Queue Time 0–4T sec

Join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID with CCD.contactDisposition is 2 (handled), and ACD.talkTime greater than zero. This process provides the calls handled by agents. To obtain CSQ information, join ACD with CQD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex, with CQD.targetType = 0 (CSQ type) and CQD.disposition = 2 (handled).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 4T seconds.

Percentage Calls Handled With Queue Time 0–4T sec

If Calls Handled is not zero, this field is calculated as:

(Total Calls Handled with Queue Time in 0–4T seconds / Calls Handled) * 100%

If Calls Handled is zero, this field is zero.

Calls Abandoned

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records to determine the number of calls abandoned from the CSQ.

Total Calls Abandoned With Queue Time 0–T

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to T seconds.

Percentage Calls Abandoned With Queue Time 0–T

If Calls Abandoned is not zero, this field is calculated as:

(Total Calls Abandoned with Queue Time 0–T seconds / Calls Abandoned) * 100%

If Calls Abandoned is zero, this field is zero.

Total Calls Abandoned With Queue Time 0–2T sec

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 2T seconds.

Percentage Calls Abandoned With Queue Time 0–2T sec

If Calls Abandoned is not zero, this field is calculated as:

(Total Calls Abandoned with Queue Time 0–2T seconds / Calls Abandoned) * 100%

If Calls Abandoned is zero, this field is zero.

Total Calls Abandoned With Queue Time 0–3T sec

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 3T seconds.

Percentage Calls Abandoned With Queue Time 0–3T sec

If Calls Abandoned is not zero, this field is calculated as:

(Total Calls Abandoned with Queue Time 0–3T seconds / Calls Abandoned) * 100%

If Calls Abandoned is zero, this field is zero.

Total Calls Abandoned With Queue Time 0–4T sec

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (These records have corresponding CCD.startDateTime values that are within the report period) Additional search criteria are CQD.targetType is 0 (CSQ type) and CQD.disposition is 1 (abandoned).

The combination of CSQ record ID and profile ID uniquely identifies a CSQ. These values are stored in CQD.targetID and CQD.profileID, respectively.

For each CSQ, count the number of CQD records in which the value stored in CQD.queueTime is less than or equal to 4T seconds.

Percentage Calls Abandoned With Queue Time 0–4T sec

If Calls Abandoned is not zero, this field is calculated as:

(Total Calls Abandoned with Queue Time 0–4T seconds / Calls Abandoned) * 100%

If Calls Abandoned is zero, this field is zero.

Table 46 Contact Service Queue Call Distribution Summary Report Filter Parameters

Filter parameter

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID and CSQ.profileID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time. This action determines the active CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

Time Interval (sec) T

Obtained from user input for this parameter. Indicates the length of the time interval, in number of seconds.

Contact Service Queue Priority Summary Report

The Contact Service Queue Priority Summary report shows the total number of calls presented to each CSQ selected. It also shows the total number of calls by priority and the average number of calls per day, by priority, that were presented to each CSQ.

Table 1 shows how the information in the Contact Service Queue Priority Summary report is obtained or calculated.

Table 2 explains how the Contact Service Queue Priority Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 47 Contact Service Queue Priority Summary Report Query Design

Field

Explanation

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Call Skills

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. Join CSQ.skillGroupID with SG.skillGroupID to get SG.skillID. Join SG.skillID with Skill.skillID to get the list of skill names, stored in Skill.skillName. Multiple skill names are separated by commas.

Total Calls Presented

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (The corresponding CCD records have CCD.startDateTime during the report period). Additional search criterion is CQD.targetType is 0 (CSQ type). For each CSQ, which is uniquely identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records to determine the number of calls presented to each CSQ.

Total Number of Calls by Priority (Priority 1 through Priority 10)

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (The corresponding CCD records have CCD.startDateTime during the report period.) Join CQD and CRD on sessionID, sessionSeqNum, profileID, nodeID, and qIndex. Additional search criterion is CQD.targetType is 0 (CSQ type).

For each CSQ (identified by CQD.targetID and CQD.profileID) and each call priority (identified by CRD.finalPriority), count the number of CQD records to determine the number of calls presented to each CSQ for each call priority.

Average Number of Calls by Priority (Priority 1 through Priority 10)

If the number of days within the report period is not zero, this field is calculated as follows:

(Total Calls Presented by Call Priority / number of days within report period) * 100%

If the number of days within the report period is zero, this field is zero.

Number of days within report period is the maximum value stored in CQD.queueTime for all calls abandoned from this CSQ.

Table 48 Contact Service Queue Priority Summary Report Filter Parameter

Filter parameter

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID and CSQ.profileID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time. This action determines the active CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Name

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

Contact Service Queue Service Level Priority Summary Report

The Contact Service Queue Service Level Priority Summary report contains information about the total number and percentage of calls that are handled within a service level and the number and percentage of calls that are handled within service level for each call priority.

Table 1 shows how the information in the Contact Service Queue Service Level Priority Summary report is obtained or calculated.

Table 2 explains how the Contact Service Queue Service Level Priority Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 49 Contact Service Queue Service Level Priority Summary Report Query Design

Field

Explanation

CSQ Name (Call Skills)

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Service Level (sec)

Obtained from CSQ.serviceLevel

Calls Presented

Join CCD and CQD on sessionID, sessionSeqNum, profileID, and nodeID to find CQD records during the report period. (The corresponding CCD records have CCD.startDateTime during the report period.) Additional search criterion is CQD.targetType is 0 (CSQ type).

For each CSQ, which is uniquely identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records to determine the number of calls presented to each CSQ.

Total Service Level Met

Join CCD, CQD, and ACD on sessionID, sessionSeqNum, nodeID, and profileID. Join CQD and ACD also on qIndex. Additional search criteria are: CCD.contactDisposition is 2 (handled), CQD.targetType is 0 (CSQ type), CQD.disposition is 2 (handled), and ACD.talkTime is greater than zero.

For each CSQ identified by the combination of CQD.targetID and CQD.profileID, count the number of CQD records whose value in CQD.metServiceLevel is 1. This is the number of calls handled by each CSQ which met the specified service level.

Percent SL Met

If Calls Presented is not zero, this field is calculated as:

(Total Service Level Met / Calls Presented) * 100%

If Calls Presented is zero, this field is zero.

Number of Calls that Met Service Level for Each Call Priority (Priority 1 through Priority 10)

Join CCD, CQD, and ACD on sessionID, sessionSeqNum, nodeID, and profileID. Join CQD and ACD also on qIndex. Join CRD also on sessionID, sessionSeqNum, nodeID, profileID, and qIndex. The call priority is stored in CRD.finalPriority. Additional search criteria are, CCD.contactDisposition is 2 (handled), CQD.targetType is 0 (CSQ type), CQD.disposition is 2 (handled), and ACD.talkTime is grater than 0.

For each CSQ (identified by CQD.targetID and CQD.profileID), and each call priority (identified by CRD.finalPriority), count the number of CQD records for which the value of CQD.metServiceLevel is 1. This total is the number of calls handled by each CSQ for each call priority which met the specified service level.

Percentage of Calls that Met Service Level for Each Call Priority (Priority 1 through Priority 10)

If total calls presented for each call priority is not zero, this field is calculated as follows:

(number of calls that met SL for each call priority / total calls presented for each call priority) * 100%

If total calls presented for each call priority is zero, this field is zero.

Total calls presented for each call priority is calculated as follows:

For each CSQ (identified by CQD.targetID and CQD.profileID) and each call priority (identified by CRD.finalPriority), count the number of CQD records. This total is the number of calls handled by each CSQ for each call priority which met the specified service level.

Table 50 Contact Service Queue Service Level Priority Summary Report Filter Parameter

Filter parameter

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID and CSQ.profileID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time. This action determines the active CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

CSQ-Agent Summary Report

An agent can handle calls for multiple CSQs. The CSQ-Agent Summary report shows, for each agent, information about calls handled in each CSQ.

Table 1 shows how the information in the CSQ-Agent Summary report is obtained or calculated.

Table 2 explains how the CSQ-Agent Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 51 CSQ-Agent Summary Report Query Design

Field

Explanation

CSQ Name

The combination of CSQ.recordID and CSQ.profileID uniquely identifies a CSQ. Obtain these two values as described in Table 2. CSQ name is stored in CSQ.csqName.

Agent Name

Call record tables (ACD and ASD) refer to agent by resource ID and profile ID. Given Resource.resourceID and Resource.profileID, search the Resource table for corresponding Resource.resourceName and Resource.resourceLoginID. These two fields uniquely identify an agent. The agent name is stored in Resource.resourceName.

Note   

Note: One resourceName/resourceLoginID combination may have multiple resourceID/profileID combinations, because when an agent has a certain attribute changed (for example, extension or resource group), a resource ID is created and the old one is set to Deactivated.

Extension

Given Resource.resourceName and Resource.resourceLoginID, search the Resource table for the corresponding Resource.extension.

If an agent extension changed, display the most recent extension assigned to the agent.

Calls Handled

A handled call has a CCD record, a CQD record for the CSQ that the call is routed to, and an ACD record for the agent who handles the call. The talk time in ACD should be greater than zero.

Join CCD and CQD on sessionID, sessionSeqNum, nodeID, and profileID to find the CQD record for the CSQ to which the call is routed. Join CQD and ACD on sessionID, sessionSeqNum nodeID, profileID, and qIndex to find the agent who handles the call. Additional search criteria are CQD.disposition is 2 (handled), CQD.targetType is 0 (CSQ type), and ACD.talkTime is greater than zero.

To uniquely identify a CSQ, the CSQ record ID and profile ID are stored in CQD.targetID and CQD.profileID.

To uniquely identify an agent, obtain resource ID and resource login ID as follows: join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to find Resource.resourceName and Resource.resourceLoginID.

For each CSQ-Agent combination (CSQ is identified by CSQ.recordID/CSQ.profileID, and agent is identified by Resource.resourceName/Resource.resourceLoginID), count the number of ACD records to determine the number of calls handled by the specified CSQ-Agent combination.

Talk Time Avg

If Calls Handled is not zero, this field is calculated as Total Talk Time / Calls Handled.

If Calls Handled is zero, this field is zero.

Talk Time Total

Same calculation as for Calls Handled, but instead of counting the number of ACD records, calculate the sum of the values stored in ACD.talkTime.

Work Time Avg

If Calls Handled is not zero, this field is calculated as Total Work Time / Calls Handled.

If Calls Handled is zero, this field is zero.

Work Time Total

Same calculation as for Calls Handled, but instead of counting the number of ACD records, calculate the sum of the values stored in ACD.workTime.

Total Ring Time

Same calculation as for Calls Handled, but instead of counting the number of ACD records, calculate the sum of the values stored in ACD.ringTime.

Calls On Hold

Same calculation as for Calls Handled. An additional search criterion is ACD.holdTime is greater than zero.

For each CSQ-Agent combination, count the number of ACD records. The result is the number of calls put on hold by the specified CSQ-Agent combination.

Hold Time Avg

If Calls on Hold is not zero, this field is calculated as Total Hold Time / Calls on Hold.

If Calls on Hold is zero, this field is zero.

Hold Time Total

Same calculation as for Calls on Hold, but instead of counting the number of ACD records, add up the values stored in ACD.holdTime.

RNA

Same calculation as for Calls Handled, but the search criteria should be: ACD.talkTime is zero, and ACD.ringTime is greater than zero.

For each CSQ-Agent combination, count the number of ACD records. This result is the number of calls that go to Ring No Answer (RNA).

Table 52 CSQ-Agent Summary Report Filter Parameter

Filter parameter

Explanation

All CSQs (default, no filter parameter)

Search the CSQ table to find CSQ.recordID and CSQ.profileID for CSQs with CSQ.dateInactive set to null or set to a date/time later than the report start time. This action determines the active CSQs and CSQs that are deleted after the report start time (they are still active during the report period).

CSQ Names

Obtain the list of CSQ names from the user selection for this parameter. Search the CSQ table to find records for which CSQ.csqName contains values that are in the list. Obtain the corresponding CSQ.recordID and CSQ.profileID.

Detailed Call by Call CCDR Report

The Detailed Call by Call CCDR report shows most of the information that is contained in the CCD table. This report also includes information from the CRD and the ACD tables. The report contains one row per call leg (a call transfer or redirect initiates a new call leg).

Table 1 shows how the information in the Detailed Call by Call CCDR report is obtained or calculated.

Table 2 explains how the Detailed Call by Call CCDR report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 53 Detailed Call by Call CCDR Report Query Design

Field

Explanation

Node ID

Obtained from CCD.nodeID.

Session ID

Obtained from CCD.sessionID.

Sequence No.

Obtained from CCD.sessionSeqNum.

Start Time

Obtained from CCD.startDateTime.

End Time

Obtained from CCD.endDateTime.

Contact T

Obtained from CCD.contactType.

Contact D

Obtained from CCD.contactDisposition.

Originator T

Obtained from CCD.originatorType.

Originator ID

Obtained from CCD.originatorID.

If originator type is 1 (agent), CCD.originatorID is a resource ID. join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to display the agent login ID, which is stored in Resource.resourceLoginID.

Originator DN

(DN = directory number)

If CCD.originatorType is Device (2) or Unknown (3), obtained from CCD.originatorDN.

If CCD.originatorType is Agent (1), join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.extension.

Destination T

Obtained from CCD.destinationType.

Destination ID

Obtained from CCD.destinationID.

If destination type is 1 (agent), CCD.destinationID is a resource ID.join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to display the agent login ID, which is stored in Resource.resourceLoginID.

Destination DN

If CCD.destinationType is Device (2) or Unknown (3), obtained from CCD.destinationDN.

If CCD.destinationType is Agent (1), jCCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID and obtain Resource.extension.

Called Number

Obtained from CCD.calledNumber.

Original Called No.

Obtained from CCD.origCalledNumber.

Application Name

Obtained from CCD.applicationName.

Queue Time

Join CCD and CRD on sessionID, sessionSeqNum, nodeID, and profileID to obtain value stored in CRD.queueTime.

Blank for IVR calls.

Talk Time

For ACD calls, join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to obtain the value in ACD.talkTime.

For IVR calls, there is no ACD record. Talk time of handled IVR calls (where CCD.contactDisposition set to 2) is calculated as (CCD.endDateTime – CCD.startDateTime). For abandoned IVR calls (where CCD.contactDisposition set to 1), talk time is zero.

Hold Time

For ACD calls, join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to obtain the value in ACD.holdTime.

Blank for IVR calls.

Work Time

For ACD calls, join CCD and ACD on sessionID, sessionSeqNum, profileID, and nodeID to obtain the value in ACD.workTime.

Blank for IVR calls.sessionID, sessionSeqNum, nodeID, and profileID to obtain value stored in CRD.queueTime.

Table 54 Detailed Call by Call CCDR Report Filter Parameter

Filter parameter

Explanation

Original Called Number

To report on a specific original called number or numbers, obtain the list of original called numbers from the user selection for this parameter. Find each CCD record for which the value stored in CCD.origCalledNumber is in the selected list.

Called Number

To report on a specific called number or numbers, obtain the list of called numbers from the user selection for this parameter. Find each CCD record for which the value stored in CCD.calledNumber is in the selected list.

Calling Number

To report on a specific calling number or numbers, obtain the list of calling numbers from the user selection for this parameter. Find each CCD record for which the value stored in CCD.originatorDN is in the selected list.

Application Name

To report on a specific application name or names, obtain the list of application names from the user selection for this parameter. Find each CCD record for which the value stored in CCD.applicationName is in the selected list.

Contact Type

To report on a specific contact type or types, obtain the list of contact type names from the user selection for this parameter. The mapping between numeric ID and contact type name is as follows:

1—incoming

2—outgoing

3—internal

4—redirect-in

5—transfer-in

6—outbound preview

Find each CCD record for which the value stored in CCD.contactType is in the selected list.

Originator Type

To report on a specific originator type or types, obtain the list of originator type or types from the user selection for this parameter. The mapping between numeric ID and originator type name is as follows:

1—agent

2—device

3—unknown

Find each CCD record for which the value stored in CCD.originatorType is in the selected list.

Destination Type

To report on a specific destination type or types, obtain the list of destination type or types from the user selection for this parameter. The mapping between numeric ID and destination type name is as follows:

1—agent

2—device

3—unknown

Find each CCD records for which the value stored in CCD.destinationType is in the selected list.

Duration Greater Than or Equal to T seconds

To report on calls with durations greater than or equal to T seconds, obtain the value of T from the user input for this parameter. Call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find CCD records with call duration greater than or equal to T.

Duration Less Than or Equal to T seconds

To report on calls with durations less than or equal to T seconds, obtain the value of T from the user input for this parameter. The call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find at CCD records with call duration less than or equal to T.

Detailed Call CSQ Agent Report

The Detailed Call, CSQ, Agent report shows detailed call information about the CSQ that a call was routed to and the agent that handled the call.

Table 1 shows how the information in the Detailed Call, CSQ, Agent report is obtained or calculated.

Table 2 explains how the Detailed Call, CSQ, Agent report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 55 Detailed Call, CSQ, Agent Report Query Design

Field

Explanation

Node ID

Obtained from CCD.nodeID.

Session ID

Obtained from CCD.sessionID.

Sequence No.

Obtained from CCD.sessionSeqNum.

Call Start Time

Obtained from CCD.startDateTime.

Call End Time

Obtained from CCD.endDateTime.

Contact Disp

Obtained from CCD.contactDisposition.

Originator DN (Calling Number)

The originator directory number. This number is the same as the calling number. Originator Type can be agent, device, or unknown.
  • If Originator Type is agent, this field shows the Unified CCX extension of the agent. If the call is attended at the non-IPCC extension, then the non-IPCC extension is displayed. If the call is made from a non-IPCC extension, then the non-IPCC extension is displayed.

  • If Originator Type is device, this field shows the CTI port number.

  • If Originator Type is unknown (through a gateway or an unmonitored device), this field shows the telephone number of the caller.

Destination DN

The destination directory number. Destination Type can be agent, device, or unknown.
  • If Destination Type is agent, this field shows the Unified CCX extension of the agent.

  • If destination type is device, this field shows the CTI port number.

  • If destination type is unknown (through a gateway or an unmonitored device), this field shows the telephone number called.

Called Number

Obtained from CCD.calledNumber.

App. Name

Obtained from CCD.applicationName.

CSQ Names

Join CCD and CQD on sessionID, sessionSeqNum, nodeID, and profileID. Find CQD records with targetType = 0 (CSQ type). The CSQ information is stored in CQD.targetID and CQD.profileID. Join CQD.targetID with CSQ.recordID, and join CQD.profileID with CSQ.profileID. The CSQ name is stored in CSQ.csqName. Multiple CSQ names are separated by commas.

Queue Time

Join CCD and CQD on sessionID, sessionSeqNum, nodeID, and profileID. Queue Time is stored in CQD.queueTime.

Agent Name

Join CCD and ACD on sessionID, sessionSeqNum, nodeID, and profileID to obtain ACD.resourceID and ACD.profileID. Join ACD.resourceID with Resource.resourceID, and join ACD.profileID with Resource.profileID to obtain agent name, which is stored in Resource.resourceName.

Ring Time

Join CCD and ACD on nodeID, sessionID, sessionSeqNum, and profileID. The value is stored in ACD.ringTime.

Talk Time

For ACD calls, join CCD and ACD on nodeID, sessionID, sessionSeqNum, and profileID. The value is stored in ACD.talkTime.

For IVR calls, there is no ACD record for the call. If the call is handled (CCD.contactDisposition = 2), this field is calculated as (Call End Time – Call Start Time), and shows the result in hh:mm:ss. Otherwise, this field shows zero.

Work Time

Join CCD and ACD on nodeID, sessionID, sessionSeqNum, and profileID. The value is stored in ACD.workTime.

Table 56 Detailed Call, CSQ, Agent Report Filter Parameters

Filter parameter

Explanation

Called Number

To report on a specific called number or numbers, obtain the list of called numbers from the user selection for this parameter. Find CCD records for which the value stored in CCD.calledNumber is in the selected list.

Calling Number

To report on a specific calling number or numbers, obtain the list of calling numbers from the user selection for this parameter. Find CCD records for which the value stored in CCD.originatorDN is in the selected list.

Application Name

To report on a specific application name or names, obtain the list of application names from the user selection for this parameter. Find CCD records for which the value stored in CCD.applicationName is in the selected list.

Contact Type

To report on a specific contact type or types, obtain the list of contact type names from the user selection for this parameter. The mapping between numeric ID and contact type name is as follows:

1—incoming

2—outgoing

3—internal

4—redirect-in

5—transfer-in

6—outbound preview

Find CCD records for which the value stored in CCD.contactType is in the selected list.

Originator Type

To report on a specific originator type or types, obtain the list of originator types from the user selection for this parameter. The mapping between numeric ID and originator type name is as follows:

1—agent

2—device

3—unknown

Find CCD records for which the value stored in CCD.originatorType is in the selected list.

Destination Type

To report on a specific destination type or types, obtain the list of destination types from the user selection for this parameter. The mapping between numeric ID and destination type name is as follows:

1—agent

2—device

3—unknown

Find CCD records for which the value stored in CCD.destinationType is in the selected list.

Agent Name

To report on a specific agent or agents, find Resource records in which values in resourceName match the user input for this parameter. Join Resource.resourceID with ACD.resourceID, join and Resource.profileID with ACD.profileID to obtain the corresponding ACD records for the specified agents. Join ACD and CCD on sessionID, sessionSeqNum, nodeID, and profileID to obtain other information stored in the CCD table.

CSQ Name

To report on a specific CSQ or CSQs, find for CSQ records in which values in csqName match the user input for this parameter. Join CSQ.recordID with CQD.targetID, and join CSQ.profileID with CQD.profileID to obtain the CQD records for the specified CSQs. For these CQD records, CQD.targetType should be 0 (CSQ type). Join CQD and CCD on sessionID, sessionSeqNum, nodeID, and profileID to obtain other information stored in the CCD table.

Duration Greater Than or Equal to T seconds

To report on calls with durations greater than or equal to T seconds, obtain the value of T from the user input for this parameter. The call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find CCD records with call duration greater than or equal to T.

Duration Less Than or Equal to T seconds

To report on calls with durations less than or equal to T seconds, obtain the value of T from the user input for this parameter. The call duration is calculated as CCD.endDateTime minus CCD.startDateTime, in number of seconds. Find CCD records with call duration less than or equal to T.

Priority Summary Activity Report

The Priority Summary Activity report contains one row per call priority.

Table 1 shows how the information in the Priority Summary Activity report is obtained or calculated.

Table 2 explains how the Priority Summary Activity report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 57 Priority Summary Activity Report Query Design

Field

Explanation

Call Priority

Obtained from CRD.finalPriority. It is a value from 1 through 10.

Total Calls

Join CCD and CRD on sessionID, sessionSeqNum, nodeID, and profileID to find CRD records during the report period. (Corresponding CCD records have startDateTime during the report period.) For each call priority identified by CRD.finalPriority, count the number of CRD records.

Avg Calls

Total calls divided by the number of days in the report period.

The number of days is calculated as follows. This information is displayed in units of days, rounded up to the next integer.

report end time – report start time

For example, if the report start time and the report end time are on the same day, the number of days is 1.

Total Number of Calls (Per Day) with Different Original and Final Priorities

Original call priority is stored in CRD.origPriority and final call priority in CRD.finalPriority. Count the number of CRD records with CRD.finalPriority different than CRD.origPriority in the report period.

Average Number of Calls (Per Day) with Different Original and Final Priorities

Total number of calls with different original and final call priorities divided by the number of days in the report period.

The number of days is calculated as follows. This information is displayed in units of days, rounded up to the next integer.

report end time – report start time

For example, if the report start time and the report end time are on the same day, the number of days is 1.

Maximum Difference Between Original and Final Priorities Experienced by All Calls

Original call priority is stored in CRD.origPriority and final call priority in CRD.finalPriority. For a single call, the difference between original and final priorities is calculated as the absolute value of (CRD.finalPriority – CRD.origPriority)

This field shows the largest number of all calls in the report period.

Average Difference (Per Call) Between Original and Final Priorities Experienced by All Calls

Original call priority is stored in CRD.origPriority and final call priority in CRD.finalPriority. For a single call, the difference between original and final priorities is calculated as the absolute value of (CRD.finalPriority – CRD.origPriority).

This field is calculated as sum of the difference (absolute value) for all calls in the report period, divided by the number of calls.

Table 58 Priority Summary Activity Report Filter Parameter

Filter parameter

Explanation

Call Priority Levels

To report on a specific call priority or priorities, obtain the list of call priorities from the user selection for this parameter. Query the CRD table to include only the selected call priority or priorities.

Traffic Analysis Report

The Traffic Analysis report shows information about incoming calls to the Unified CCX system.

Table 1 shows how the information in the Traffic Analysis report is obtained or calculated.

If the selected report Start Date and report End Date exceeds the date range available in the database, the report start date and report end date is automatically adjusted to match the date range available in the database. For example: If data is available in the database only from the start date x and end date y and if the selected start date is earlier than x and selected end date is later than y, then the report start date and report end date is automatically adjusted to x and y respectively.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 59 Traffic Analysis Report Query Design

Field

Explanation

Date

Date of each day in the report period.

Total Incoming Calls

For each day, count the number of CCD records with the unique sessionID with the Contact Type field set to the value of 1 (incoming call).

Avg Calls (per hour)

Calculated as total incoming calls divided by the number of hours in the day.

The first day or the last day of the report period may be a partial day, depending on the start time and the end time selected by the user. Any other day within the report period has 24 hours.

Peak Calls (per hour)

Divide each day into one-hour intervals. The number of incoming calls within each interval is determined by counting the number of CCD records with unique sessionIDs in the interval. The peak hour is the interval with the largest number of incoming calls. This field displays the number of calls in the peak hour.

Peak Hour Start

Divide each day into one-hour intervals. The number of incoming calls within each interval is determined by counting the number of CCD records with unique sessionIDs in the interval. The peak hour is the interval with the largest number of incoming calls. This field displays the start time of the peak hour.

Peak Hour End

Divide each day into one-hour intervals. The number of incoming calls within each interval is determined by counting the number of CCD records with unique sessionIDs in the interval. The peak hour is the interval with the largest number of incoming calls. This field displays the end time of the peak hour.

Call Duration Avg

A call may have multiple call legs. The call duration for a call is calculated as sum of CCD.connectTime for all the call legs.

Average call duration for a day is calculated as the sum of call durations for all incoming calls on that day divided by the number of incoming calls on that day.

Call Duration Min

A call may have multiple call legs. The call duration for a call is calculated as sum of CCD.connectTime for all the call legs.

Minimum call duration for a day is the shortest call duration of all incoming calls for that day.

Call Duration Max

A call may have multiple call legs. The call duration for a call is calculated as sum of CCD.connectTime for all the call legs.

Maximum call duration for a day is the longest call duration of all incoming calls for that day.

Outbound Reports

Agent Outbound Campaign Summary Report

The Agent Outbound Campaign Summary report provides call statistics for agent-based progressive and predictive outbound campaigns.

Table 1 shows how the information in the Agent Outbound Campaign Summary report is obtained or calculated.

Table 2 explains how the Agent Outbound Campaign Summary report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 60 Agent Outbound Campaign Summary Report Query Design

Field

Explanation

Campaign

For each outbound call, campaignID is recorded in CCDR. Campaign Name is obtained from the Campaign table, given the campaignID. the mapping between campaignName and campaignID is one-to-one.

Contacts—Total

For a given campaignID, total number of DialingList records with a unique dialingListID and that have the specified campaignID. Active and inactive records are included in the calculation. Records are marked inactive when callStatus becomes 3 (closed) or 5 (max calls).

Contacts—Attempted

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 1 (voice), 2 (fax), 3 (answering machine), 4 (invalid), 11 (busy), 15 (no answer), 16 (system abandoned), 17 (fail) or 18 (customer abandoned).

Contacts—Remaining

For a given campaignID and profileID, count the number of DialingList records with callStatus = 1 (pending), 2 (active), 4 (callback), 6 (retry) or 7 (unknown).

Contacts—% Attempted

(Attempted / Total Records) * 100%

Calls—Voice

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 1 (voice).

Calls—Answering Machine

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 3 (answering machine).

Calls—Invalid

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 4 (invalid).

Calls—Fax/Modem

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 2 (fax).

Calls—No Answer

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 15 (no answer).

Calls—Busy

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 11 (busy).

Calls—Failed

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 17 (failed).

Calls—Customer Abandoned

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 18 (customer abandoned).

Calls—System Abandoned

For a given campaignID, sessionID, profileID, and Contact Type set to the value of 8 (agent outbound), count the number of CCD records with CCD.callResult = 16 (system abandoned).

Requested Callback

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 8 (requested callback).

Average Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice). For these records, calculate the average talk time using ACD.talkTime.

Maximum Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice). For these records, obtain the maximum ACD.talkTime.

Table 61 Agent Outbound Campaign Summary Report Filter Parameters

Filter parameter

Explanation

Campaign List

Obtain the list of campaign names from the user selection for this parameter. Look up the correspondingcampaignID in the Campaign table, and use these campaignIDs only for report generation.

Agent Outbound CCDR Report

The Agent Outbound CCDR report shows most of the information that is contained in the CCD table. This report also includes information from the DialingList and Campaign tables. The report contains one row per call leg (a call transfer or redirect initiates a new call leg).

Table 1 shows how the information in the Agent Outbound CCDR report is obtained or calculated.

Table 2 explains how the Agent Outbound CCDR report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 62 Agent Outbound CCDR Report Query Design

Field

Explanation

Node ID

Obtained from CCD.nodeID.

Session ID

Obtained from CCD.sessionID.

Sequence No.

Obtained from CCD.sessionSeqNum.

Start Time

Obtained from CCD.startDateTime.

End Time

Obtained from CCD.endDateTime.

Contact D

Obtained from CCD.contactDisposition.

Originator T

Obtained from CCD.originatorType.

Originator ID

Obtained from CCD.originatorID.

If originator type is 1 (agent), CCD.originatorID is a resource ID. join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to display the agent login ID, which is stored in Resource.resourceLoginID.

Originator DN

(DN = directory number)

If CCD.originatorType is Device (2) or Unknown (3), obtained from CCD.originatorDN.

If CCD.originatorType is Agent (1), join CCD.originatorID with Resource.resourceID, and join CCD.profileID with Resource.profileID to obtain Resource.extension.

Destination T

Obtained from CCD.destinationType.

Destination ID

Obtained from CCD.destinationID.

If destination type is 1 (agent), CCD.destinationID is a resource ID.join CCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID to display the agent login ID, which is stored in Resource.resourceLoginID.

Destination DN

If CCD.destinationType is Device (2) or Unknown (3), obtained from CCD.destinationDN.

If CCD.destinationType is Agent (1), jCCD.destinationID with Resource.resourceID, and join CCD.profileID with Resource.profileID and obtain Resource.extension.

Call Status

Obtain the dialingListID from the CCD table. Find the record in the DialingList table corresponding to the dialingListID obtained from the CCD table. Get the call status value from this record in the DialingList table. The value of the call status is stored in DialingList.callStatus.

Call Result

Obtained from CCD.callResult.

Campaign Name

Obtain the campaignID from the CCD table. Find the record in the Campaign table corresponding to the campaignID obtained from the CCD table. The value of the campaign name is stored in Campaign.campaignName.

Table 63 Agent Outbound CCDR Report Filter Parameter

Filter parameter

Explanation

UCCX Agent Campaign List

Obtained from Campaign.campaignName.

If Campaign.campaignType is 1 (agent based outbound campaign) and Campaign.dialerType is 1 (progressive) or 2 (predictive).

Agent Outbound Half Hourly Report

The Agent Outbound Half Hourly report shows detailed statistics for all the progressive and predictive agent outbound calls for every half hour.

Table 1 shows how the information in the Agent Outbound Half Hourly report is obtained or calculated.

Table 2 explains how the Agent Outbound Half Hourly report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 64 Agent Outbound Half Hourly Report Query Design

Field

Explanation

Campaign Name

Obtain the campaignID from the CampaignData table. Find the record in the Campaign table corresponding to the campaignID obtained from the CampaignData table. Get the campaign name from this record in the Campaign table. The value of the campaign name is stored in Campaign.campaignName.

Start Time

Obtained from CampaignData.startDateTime.

End Time

Obtained from CampaignData.endDateTime.

Total Attempted Calls

Obtained from CampaignData.attemptedCalls.

Total Live Voice Calls

Obtained from CampaignData.voiceCalls.

Total Abandoned Calls

Obtained from CampaignData.abandonedCalls.

Lines Per Agent

Obtained from CampaignData.linesPerAgent.

Abandoned Rate

Obtained from CampaignData.abandonedRate.

Table 65 Agent Outbound Half Hourly Report Filter Parameters

Filter parameter

Explanation

Campaign Name

Obtain the campaignID from the CampaignData table. Find the record in the Campaign table corresponding to the campaignID obtained from the CampaignData table. Get the campaign name from this record in the Campaign table. The value of the campaign name is stored in Campaign.campaignName.

Outbound Agent Detail Performance Report

The Outbound Agent Detail Performance report presents detailed statistics for each agent by campaign (progressive and predictive). The report also presents the total call details, campaign call details for each agent, and a summary row of the call details for each agent for all agent based progressive and predictive campaigns.

Table 1 shows how the information in the Outbound Agent Detail Performance report is obtained or calculated.

Table 2 explains how the Outbound Agent Detail Performance report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 66  Outbound Agent Detail Performance Report Query Design

Field

Description

Agent Name

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. The agent that dials for the campaign is recorded in ACD.resourceID. Join ACD.resourceID with Resource.resourceID to obtain Resource.resourceName.

Campaign

For a given campaignID, look up the campaign name in the Campaign table.

RNA

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult is 12 (ring no answer).

Transfer

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult is 8 (requested callback), or 20 (transfer) and contactType = 5 (transfer-in).

Talk Time—Avg

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice), 8 (requested callback), or 20 (transfer) and resourceID for this agent. For these records, calculate the average talk time using ACD.talkTime.

Talk Time—Max

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice), 8 (requested callback), or 20 (transfer) and resourceID for this agent. For these records, obtain the maximum ACD.talkTime.

Table 67 Outbound Agent Detail Performance Report Filter Parameters

Filter Parameter

Result

Campaign Names

Obtain the list of agent based progressive and predictive campaign names from the user selection for this parameter. Look up the corresponding campaignID in the Campaign table, and use these campaignIDs only for report generation.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

Outbound Campaign Summary Report

The Outbound Campaign Summary report provides summary statistics for each campaign over a specified time period. This report is available with the Cisco Unified OUTD feature.

Table 1 shows how the information in the Outbound Campaign Summary report is obtained or calculated.

Table 2 explains how the Outbound Campaign Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 68 Outbound Campaign Summary Report Query Design

Field

Explanation

Campaign Name

For each outbound call, campaignID is recorded in CCDR. Campaign Name is obtained from the Campaign table, given the campaignID. The mapping between campaignName and campaignID is one-to-one.

Total Records

For a given campaignID, total number of DailingList records with a unique dialingListID and that have the specified campaignID. Active and inactive records are included in the calculation. Records are marked inactive when callStatus becomes 3 (closed) or 5 (max calls).

Available

For a given campaignID, total number of DialingList records with a unique dialingListID and that have the specified campaignID. Also, DailingList.callStatus must be one of the following values (it cannot be 3 (closed) or 5 (max calls):

1 = pending

2 = active

4 = callback

6 = retry

7 = unknown

Attempted

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records in which callResult is not 9 (agent skip) or 10 (agent close). This number is the same as Accepted. From this number, deduct duplicate records with the same dialingListID so that a given dialingListID occurs only once in the final result.

Attempted %

(Attempted / Total Records) * 100%

Accepted

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult not equal to 9 (agent reject) or 10 (agent close).

Rejected

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 9 (agent reject).

Closed

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 10 (agent close).

Voice

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 1 (voice).

Answering Machine

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 3 (answering machine).

Fax/Modem

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 2 (fax/modem).

Invalid

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 4 (invalid).

Requested Callback

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 8 (requested callback).

Customer Not Home

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 7 (customer not home).

Wrong Number

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 6 (wrong number).

Busy

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records with ACD.callResult = 11 (busy).

Average Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice). For these records, calculate the average talk time using ACD.talkTime.

Maximum Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice). For these records, obtain the maximum ACD.talkTime.

Table 69 Outbound Campaign Summary Report Filter Parameter

Filter parameter

Explanation

Campaign Name

Obtain the list of campaign names from the user selection for this parameter. Look up the corresponding campaignID in the Campaign table, and use these campaignIDs only for report generation.

Preview Outbound Agent Detail Performance Report

The Preview Outbound Agent Detail Performance report shows detailed statistics for each agent by campaign. It also shows the total call details and campaign call details for preview outbound campaigns. This report is available with the Cisco Unified Outbound Dialer (Cisco Unified OUTD) feature.

Table 1 shows how the information in the Preview Outbound Agent Detail Performance report is obtained or calculated.

Table 2 explains how the Preview Outbound Agent Detail Performance report filter parameters obtain data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 70 Preview Outbound Agent Detail Performance Report Query Design

Field

Explanation

Agent Name

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. The agent that dials for the campaign is recorded in ACD.resourceID. Join ACD.resourceID with Resource.resourceID to obtain Resource.resourceName.

Campaign Name

For a given campaignID, look up the campaign name in the Campaign table.

Offered

Calculated as (Accepted + Rejected + Closed)

Accepted

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult is not 9 (agent reject) or 10 (agent close).

Rejected

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult = 9 (agent reject).

Closed

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult = 10 (agent close).

RNA

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult is not 12 (transfer).

Transfer

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records. Count the number of ACD records for this agent (as identified in ACD.resourceID) where callResult is not 13 (ring no answer).

Average Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice), 8 (requested callback), or 20 (transfer) and resourceID for this agent. For these records, calculate the average talk time using ACD.talkTime.

Maximum Talk Time

For a given campaignID, determine from the CCD table the sessionID, sessionSeqNum, profileID, and nodeID values. Use these values to look up the associated ACD records with callResult = 1 (voice), 8 (requested callback), or 20 (transfer) and resourceID for this agent. For these records, calculate the average talk time using ACD.talkTime.

Table 71 Preview Outbound Agent Detail Performance Report Filter Parameters

Filter parameter

Explanation

Campaign Name

Obtain the list of campaign names from the user selection for this parameter. Look up the corresponding campaignID in the Campaign table, and use these campaignIDs only for report generation.

Agent Names

To report on a specific agent or agents, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of agent names from the user selection for this parameter. These values are in Resource.resourceName. Obtain the corresponding Resource.resourceID and Resource.profileID.

Resource Group Names

To report on a specific resource group or groups, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of resource group names from the user selection for this parameter. Search the ResourceGroup table to find records for which RG.resourceGroupName contains values found in the list. Join RG and Resource on resourceGroupID and profileID to find the list of agents that belong to the selected resource group or groups. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Skill Names

To report on agents with a specific skill or skills, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of skill names from the user selection for this parameter. Search the Skill table to find records for which Skill.skillName contains values found in the list. Join Skill and RSM on skillID and profileID to find resourceSkillMapID. Join RSM and Resource on resourceSkillMapID and profileID to find the list of agents that have the selected skill or skills. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively. This report displays only agents who are active and agents who are deleted after the report start time.

Team Names

To report on a specific team or teams, obtain the list of resource IDs and profile IDs as follows:

Obtain the list of team names from the user selection for this parameter. Search the Team table to find records whose Team.teamName contains values found in the list. Join Team.teamID with Resource.assignedTeamID, and Team.profileID with Resource.profileID to find the list of agents who belong to the selected team or teams. Resource ID and profile ID of agents are stored in Resource.resourceID and Resource.profileID, respectively.

System Reports

Application Performance Analysis Report

The Application Performance Analysis report shows information about calls received by each Unified CCX or Cisco Unified IP IVR application. It contains one row per call application. The information is stored in the CCD table.

Table 1 shows how the information in the Application Performance Analysis report is obtained or calculated.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 72 Application Performance Analysis Report Query Design

Field

Explanation

Application ID

Obtained from CCD.applicationID.

Application Name

Obtained from CCD.applicationName.

Call Presented

Each application is identified by the combination of CCD.applicationID and CCD.applicationName. For each application, count the number of CCD records to determine the total number of calls presented to the application.

Calls Handled

Each application is identified by the combination of CCD.applicationID and CCD.applicationName. For each application, count the number of CCD records with CCD.contactDisposition = 2 (handled) to determine the total number of calls presented to the application.

Calls Abandoned

Each application is identified by the combination of CCD.applicationID and CCD.applicationName. For each application, count the number of CCD records with CCD.contactDisposition = 1 (abandoned) or 4 (aborted) to determine the total number of calls presented to the application.

Abandon Rate (per hour)

Calculated as follows:

Calls Abandoned / number of hours within the report period

Avg Call Duration

Call duration is stored in CCD.connectTime. Average call duration of an application is calculated as the sum of CCD.connectTime for all calls in that application, divided by the number of calls.

Application Summary Report

The Application Summary report provides summary call statistics for each Unified CCX or Cisco Unified IP IVR application.

Table 1 shows how the information in the Application Summary report is obtained or calculated.

Table 2 explains how the Application Summary report filter parameter obtains data.

For information about the database table names and field names that are shown in this section, see the Conventions Used in This Chapter.

Table 73 Application Summary Report Query Design

Field

Explanation

Application Name

Obtained from CCD.applicationName.

Called Number

Obtained from CCD.origCalledNumber.

Calls Presented

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, count the number of CCD records to obtain the number of calls presented to the application.

Flow-In

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, count the number of CCD records in which CCD.contactType is 4 (redirect in).

Flow-Out

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, count the number of CCD records in which CCD.flowout is 1.

Calls Handled

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, count the number of CCD records in which CCD.contactDisposition is 2 (handled).

Avg Speed Answer

This field includes only calls connected to agents.

Join CCD, CRD, and ACD on sessionID, sessionSeqNum, profileID, and nodeID. Find ACD records with ACD.talkTime greater than zero (so that RNAs are excluded).

To calculate total queue time, add the values stored in CRD.queueTime.

To obtain total ring time, add the values stored in ACD.ringTime.

To obtain the number of calls connected to agents, count the number of ACD records in the result set from the join.

Average speed to answer is calculated as:

total queue time / number of calls connected to agents.

If number of calls connected to agents is zero for this application, this field is zero.

Avg Talk Time

Join CCD, CRD, and ACD on sessionID, sessionSeqNum, profileID, and nodeID. Find ACD records with ACD.talkTime greater than zero (so that RNAs are excluded).

To obtain total talk time, add up the values stored in ACD.talkTime.

To obtain the number of calls connected to agents, count the number of ACD records in the result set from the join.

Average talk time is calculated as:

Total talk time / number of calls connected to agents.

If number of calls connected to agents is zero for this application, this field is zero.

Avg Work Time

Join CCD, CRD, and ACD on sessionID, sessionSeqNum, profileID, and nodeID. Find ACD records with ACD.talk time greater than zero (so that RNAs are excluded).

To obtain total work time, add up the values stored in ACD.workTime.

To obtain the number of calls connected to agents, count the number of ACD records in the result set from the join.

Average work time is calculated as:

Total work time / number of calls connected to agents.

If number of calls connected to agents is zero for this application, this field is zero.

Calls Abandoned

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, count the number of CCD records in which CCD.contactDisposition is 1 (abandoned), 4 (aborted), or 5 or greater (rejected).

Avg Abandon Time

The combination of CCD.applicationName and CCD.origCalledNumber uniquely identifies an application.

For each application, calculate the sum of the values in CCD.connectTime where the CCD.contactDispostion is 1 (abandoned), 4 (aborted), or 5 or greater (rejected) to obtain the total abandon time.

If Calls Abandoned is not zero, this field is calculated as:

Total abandon time / Calls Abandoned.

If Calls Abandoned is zero, this field is zero.

Table 74 Aborted and Rejected Call Detail Report Filter Parameter

Filter parameter

Explanation

Application Name

To report on a specific application or applications, obtain the list of application names from the user selection for this parameter. Find CCD records for which values stored in CCD.applicationName are found in the selected list.