Routing report

Last Update: Nov 2024 • Est. Read Time: 5 MIN
To check plan availability, see the pricing page.

The Routing report lets you see your queues and how well they perform, monitor agent availability, and monitor customer wait time. This report also provides a simple way to see how many agents are online and their current status. You can see how many conversations are queued and waiting for the agent to accept. Here, you can view all your queues rolled up into a single report or on each individual level and easily group individual queues together.

We also report on the wait time of a conversation in a queue, which can be presented to chat users as a means of channel deflection.

Who can access this feature?
User typesManagers or users with custom permission set access to reporting can access this feature.


In this article:

To access the Queue report, select Reporting, and then select Routing.

Current Agent Statuses chart

This chart displays the current status of all agents that are online. If you create custom unavailable statuses they will display by name, but follow the unavailable definition.

The following statuses are available:

  • Available - Full Capacity Reached are the users who are available in the queue but have reached their current conversation capacity.

  • Available - With Capacity are the users who are available in the queue, and are not yet at their conversation capacity.

  • Unavailable are the users who are not available to receive routed conversations from a queue.

  • Busy are the users who are available, but in a call.

Current Conversation Statuses chart

This chart shows the status of conversations in the queue. Snoozed conversations are excluded.

The following statuses are available:

  • Assigned are conversations that have been routed and assigned to a user.

  • In queue are conversations that have been assigned a queue, but not routed yet.

  • Wrap-up are conversations that have been assigned, and ended but not marked done.

Routing report metrics

The report shows eight metrics that let you quickly see your queues are performing.

The following metrics are shown: 

  • Available Agents is the total number of agents in the queue in an available status.

  • Unavailable Agents is the total number of agents in the queue in an unavailable or busy status.

  • Total Conversations is the total number of conversations in the queue that are not routed or assigned. Snoozed conversations are excluded.

  • Conversations Per Available Agent is the total number of assigned conversations currently in an Open or Wrap-up status divided by the total number of agents currently in an Available status.

  • The longest Wait is the time that the conversation has been waiting in the queue for the longest time during that current 24-hour day.

  • Latest Wait is the wait time of the last conversation to be routed to a user.

  • Average Wait is the average of all wait times in the queue for the current 24-hour day.

  • Average Handle Time is the average time a conversation routed from a queue was assigned to a user in an open status. This metric includes snoozed time.

Historical Queue reporting

On top of seeing queue performance in real-time, organizations can get a clear historical view of each queue. With this report, you can monitor how long customers wait in a queue to be assigned to an agent and how long it takes an agent to handle their conversation. You can also see how skill-based queues performed by selecting the Skill Metrics tab.

The following metrics are shown:

  • Agent Handle Time (Total & Average) is the time an agent is assigned to a conversation from open to close including snoozed.

  • Wrap-up Time (Total & Average) is the time a conversation spends in wrap-up status between ending and closing.

  • First Routed Response time (Total & Average) is the time from when a work item was accepted to when an agent sends the first reply.

  • Total Conversations is the total number of conversations that entered a queue. Snoozed conversations are excluded.

  • Max Wait Time (Total & Average) is the longest time a conversation is waiting in a queue.

  • Average Queue Time is the time a conversation waits in the queue before being routed to an agent.

Organizations can also track how much time their agents spend in each status while working in queues. The time is broken down in Available, Unavailable, and Busy statuses. You can also see how many conversations were assigned to them in that timeframe.

The following agent metrics are shown:

  • Available Time Total is the total amount of time a user spends in an Available Status.

  • First Routed Response time (Total & Average) is the time from when a work item was accepted to when an agent sends the first reply.

  • Unavailable Time Total is the total amount of time a user spends in any Unavailable Status.

  • Busy Time Total is the total amount of time a user spends in the Busy Status (Voice on Call).

  • Agent Total Handled Items is the number of conversations assigned to the user.

  • Wrap-up Time Total is the total amount of time a conversation assigned to the user was in wrap up.

Live Dashboard

For organizations that make their queue metrics available to their agents via TV or computer monitors, the Live Dashboard can be expanded for everyone to see. Select the [ ] icon from within the Queue report screen to expand the Kustomer interface for a full-screen view.

The Live Dashboard data will refresh every 15 seconds and also includes a "Night Mode" that can be turned on by selecting the icon on the top-left corner.

Note: The Live Dashboard is only available on Ultimate plans.

Filter results

This report offers four attributes in its filter component - Channels, Queues, Teams, Users. It's important to understand how these filters will impact the data displayed.

  1. Channels will filter to work-items where the selected channel or channels is present.
  2. Queues will filter to a work-item's most recent queue, as items can move from queue to queue within their lifecycle.
  3. Teams will filter to data whose Team relationship is the value selected, not to data where the assigned team is equal to the value selected.
  4. Users will filter to data where the assigned user is the value selected.

Metric calculations

Below, you'll find descriptions of the calculations for each metric, including the attributes used in their formation. These can be beneficial when rebuilding standard report metrics in your custom reports or referenced when building metrics or performing analysis outside the Kustomer platform with data sourced from our APIs or data services, such as Kinesis.

The Date Anchor is the attribute linked to the date range picker in each report's header that determines whether or not any objects that fit the calculation criteria will appear in your chart or table.

Metric
Calculation
Date Anchor
Current Agent Statuses

Filtered to work sessions where work_session.signedOutAt is not present, grouped by status

Available - Full Capacity Reached: capacityRemaining <= 0, statusId = available

Available - Partial Capacity: workItemCount > 0, routable = true

Unavailable (and custom unavailable statuses): routable = false

N/A; handled by signedOutAt filter
Current Conversation StatusesFiltered to work items where lastRevision.queueId exists, work_item.status is not 'completed', and work_item.paused is not 'true'
work_item.createdAt
Available Agents

Filtered to work sessions where work_session.signedOutAt is not present,

matching either:

Available - Full Capacity Reached: capacityRemaining <= 0, statusId = available

or

Available - Partial Capacity: workItemCount > 0, routable = true

N/A; handled by signedOutAt filter
Unavailable Agents
Filtered to work sessions where work_session.signedOutAt is not present and routable = false
N/A; handled by signedOutAt filter

Total Conversations
Filtered to work items where lastRevision.queueId exists, work_item.status is one of  'ivr', 'queued', and work_item.paused is not 'true'
work_item.createdAt
Conversations Per Available Agent
Distinct work_item.id where work_item.status is one of `assigned`,`wrap-up` divided by distinct work_session.id where statusType = `available`
N/A
Longest WaitMax of work_item.lastRevision.queueTime
work_item.lastRevision.acceptedAt
Latest WaitFirst item of work_item.lastRevision.acceptedAt sorted in descending order
work_item.lastRevision.acceptedAt
Average Wait
Average of work_item.lastRevision.queueTime
work_item.lastRevision.acceptedAt
Average Handle TimeAverage of work_item.handle.businessTime
work_item.lastRevision.acceptedAt
Queue metrics table
Agent Handle Time TotalSum of work_item.handle.businessTime grouped by lastRevision.queueId
work_item.handle.completedAt
Agent Handle Time AverageAverage of work_item.handle.businessTime grouped by lastRevision.queueId
work_item.handle.completedAt
First Routed Response Time TotalSum of firstRoutedResponse.businessTime, grouped by lastRevision.queueId
work_item.firstRoutedResponse.createdAt
First Routed Response Time AverageSum of firstRoutedResponse.businessTime, grouped by lastRevision.queueId
work_item.firstRoutedResponse.createdAt
Wrap-Up Time TotalSum of wrapUp.businessTime, grouped by lastRevision.queueId
work_item.wrapUp.enteredAt
Wrap-Up Time AverageAverage of wrapUp.businessTime, grouped by lastRevision.queueId
work_item.wrapUp.enteredAt
Total ConversationsDistinct work_item.id with resourceType: 'conversation', grouped by lastRevision.queueId
work_item.firstEnterQueueAt
Max Wait TimeMax of lastRevision.queueBusinessTime, grouped by lastRevision.queueId
work_item.lastRevision.acceptedAt
Average Queue TimeAverage of lastRevision.queueBusinessTime, grouped by lastRevision.queueId
work_item.lastRevision.acceptedAt
Agent Total Handled ItemshandledItemCount, grouped by lastRevision.queueId
work_item.handle.completedAt
Agent Metrics Table
Agent Total Handled Items handledItemCount, grouped by userId
work_item.handle.completedAt
Agent Handle Time AverageAverage of work_item.handle.businessTime grouped by userId
work_item.handle.completedAt
Agent Handle Time TotalSum of work_item.handle.businessTime grouped by userId
work_item.handle.completedAt
First Routed Response Time TotalSum of work_item.firstRoutedResponse.businessTime grouped by userId
work_item.firstRoutedResponse.createdAt
First Routed Response Time AverageAverage of work_item.firstRoutedResponse.businessTime grouped by userId
work_item.firstRoutedResponse.createdAt
Wrap-Up Time TotalSum of work_session.wrapUp.businessTime grouped by userId
work_session.wrapUp.enteredAt
Available Time TotalSum of work_session.totalAvailable.businessTime grouped by userId
work_session.totalAvailable.statusAt
Unavailable Time TotalSum of work_session.totalUnavailable.businessTime grouped by userId
work_session.totalUnavailable.statusAt
Busy Time TotalSum of work_item.totalBusy.businessTime grouped by userId
work_session.totalBusy.statusAt