Work Sessions
  • 26 Oct 2022
  • 10 Minutes To Read
  • PDF

Work Sessions

  • PDF

The Work Sessions report provides a line-by-line breakdown of what Agents are working on. It allows you to understand precisely how Agents are using their time, how many Customers they've helped, which Contacts, and more. The primary use of this information is for forecasting and scheduling purposes. The report can also help you understand other aspects of Agent behavior, Agent performance, multichannel Conversation patterns, and more.

How Data in the report is measured

The Work Sessions report is measured using the following:

Grouping

  • Grouped by Work Session. Only compare this report to other Work Session reports.

Time Anchor

  • Data is anchored to 'Contact Ended Date' in the UI and 'Contact Ended At' in the API.

Two versions: API and UI report

The Work Sessions report is available in two formats: API and UI. There are slight differences in available data for each format:

  • UI report is filtered and created on the Reports page, whereas API is generated via API.
  • Each format uses a different time anchor. The UI report uses 'Contact Ended Date,' and API uses 'Contact Ended At.'
  • Some metrics are only available in the API. Review the below CSV to review the difference.

Metrics used for the Work Session report

Review the definition of each metric and how it's used to calculate data. These are fields you'll see in the CSV download. The columns in the report fill dynamically and are populated when the event comes in.

MetricDescriptionAPI NameComments
Work Session ID

The Work Session ID is only generated when the Contact session ends. Otherwise, the value will be Null. This is possible when generating the Work Session report via the APIs only.

id
  • Data is available at the time of a Contact end event.
  • This field may be blank for outgoing sessions if two outgoing sessions are stacked.
    • Note – Stacked is when there is more than one outbound session (Contact). For example, in an outbound email and outbound SMS, the handle time is associated only with one, higher ranking session in the list of Channels. In this case, the SMS session would rank higher, therefore, the Agent will be associated with the SMS session. The email row in the report will have the Agent column blank.
Agent
Name of the Agent that worked on the Contact.agent_id
  • Data is available at the time of a Contact end event.
  • If two outgoing sessions are stacked, this field may be blank for outgoing sessions.
    • Note – Stacked is when there is more than one outbound session (Contact). For example, in an outbound email and outbound SMS, the handle time is associated only with one, higher ranking session in the list of Channels. In this case, the SMS session would rank higher, therefore, the Agent will be associated with the SMS session. The email row in the report will have the Agent column blank.
Link
Link to the Conversation.n/a
Contact ID
An alphanumeric identifier for the Contact that an Agent works with a Customer on a given Channel.contact_session_id
  • Data is available at the time of a Contact start event.
Customer ID
Unique Alphanumeric identifier for the Customercustomer_id
Data is available at the time of a Contact start event.
Conversation ID
Unique Alphanumeric identifier of the Conversation that the Customer and Contact are a part of.conversation_idData is available at the time of a Contact start event.
Inbox
Inbox where the Contact was initially routed when the Contact started.inbox_id
This is called inbox_id in the API. You can get the Agent name using Agent API.
ChannelChannel used for Contact.channelData is available at the time of a Contact start event.
Direction
Indicates if the Contact is Incoming or Outgoing.direction
Data is available at the time of a Contact start event.
Contact Started at
Date and time when a Contact started.
contact_session_created_at
Agent Routed at
Date and Time the Agent was routed or offered, an incoming Contact.contact_session_routed_at
  • Data is available at the time of a Contact end event.
  • This field is blank for any outgoing Contact session.
  • If the same Agent is offered the same Contact more than once, this timestamp will show the earliest of those times.
Agent Accepted at
Date and time when the Agent accepted an incoming Contact.agent_accepted_at
  • Data is available at the time of a Contact end event.
  • This field is blank for any outgoing Contact session.
  • If the same Agent accepts the same Contact more than once, this timestamp will show the earliest of those times.
Contact Fulfilled at
Date and time a Contact fulfilled SLA.sla_fulfilled_at
  • Data is available at the time of a Contact end event.
  • This field is blank for any outgoing Contact session.
Contact Ended at
Date and time a Contact ended.contact_session_ended_atData is available at the time of a Contact end event.
StatusIndicates if a Contact is Answered, Unanswered, Abandoned, or Unknown.statusData is available at the time of a Contact end event.
Seconds within (-) or over (+) SLA
A numeric value that identifies if a Contact was fulfilled within or outside of Service Levels (SL). This value can be negative or positive. A negative value tells you how many seconds under service level targets this Contact was fulfilled. A positive value tells you how many seconds outside of SL targets was this Contact fulfilled.within_slaData is available at the time of a Contact end event.
Handle Time in sec
The amount of time an Agent spends on the Customer Profile during an active Contact. If multiple contacts are ongoing at the same time, Handle Time will be attributed to the most synchronous Channel. As defined here, handle time does not include After Call Work (ACW), which is labeled Unknown Time.work_session_handle_time
  • Data is available at the time of a Contact end event.
  • This field may be blank for outgoing sessions if two outgoing sessions are stacked.
    • Note – Stacked is when there is more than one outbound session (Contact). For example, in an outbound email and outbound SMS, the handle time is associated only with one, higher ranking session in the list of Channels. In this case, the SMS session would rank higher, therefore, the Agent will be associated with the SMS session. The email row in the report will have the Agent column blank.
  • See Handle Time examples here.
Unknown Time in sec
The amount of time an Agent spends on the Customer Profile before the Conversation is closed or another Contact is initiated.work_session_unknown_time
  • Data is available at the time of a Contact end event.
  • This field may be blank for outgoing sessions if two outgoing sessions are stacked.
    • Note – Stacked is when there is more than one outbound session (Contact). For example, in an outbound email and outbound SMS, the handle time is associated only with one, higher ranking session in the list of Channels. In this case, the SMS session would rank higher, therefore, the Agent will be associated with the SMS session. The email row in the report will have the Agent column blank.
Accepted Inbox IDInbox where the Contact was assigned when the Agent first accepted the Contact.accepted_inbox_id
  • This field is not provided in the UI version of the report, only in the API version.

How the Work Session report is filtered

You can filter the report using the following criteria. This is how you start segmenting the data based on what you are trying to learn. You can learn more about filters here.

Date

  • When filtering by date in the Gladly UI, the Work Session report will list all Contacts that were worked on and completed on the date specified. These Contacts could have started before the date, but they were all completed on the date specified in the filter.

Channels

  • Indicates the Channel in which the Contact was initiated.
  • The Channel column in the CSV will have an additional status: "Abandoned_Call." In this case, the "Abandoned_Call" Channel does not refer to the abandoned call itself, but to the abandoned call follow-up event that gets created when a known Customer abandons a call.

Inbox

  • The Inbox column and report filter refer to the Inbox where the Contact was when it started.

Teams

  • This filter allows you to filter the report on one or more Teams you have defined in Gladly. Teams are a logical grouping of one or more Agents.

How to use the Work Session report

There are many ways to slice and dice the Work Session report's data, depending on what you are trying to learn.

The first step is to download the CSV version of the report then follow up with the filters below.

ScenarioColumn Filter
How to calculate the number of inbound calls 
  • Channel = Phone_Ca
  • Direction = Incoming
  • Count of unique Contacts IDs
How to calculate the number of Outbound calls 
  • Channel = Phone_Call
  • Direction = Outgoing
  • Count of unique Contacts IDs
How to calculate the number of Calls answered
  • Channel = Phone_Call
  • Direction = Incoming
  • Status = Answered
  • Count of unique Contacts IDs
How to calculate the number of Calls answered in 30 Sec
  • Channel = Phone_Call
  • Direction = Incoming
  • Status = Answered
  • Count of unique Contacts IDs - where "Contact Fulfilled at" minus "Contact Started at" is less than 30 seconds. 
How to calculate the calculate phone average handle time for a team
  • Team = The team you want to focus on
  • Channel = Phone_Call 
  • Direction = Incoming 
  • Sum all "Handle Time in sec" and divide by the count of unique "Contacts ID"
How to calculate the calculate short abandons
  • Channel = Phone_Call
  • Direction = Incoming
  • Status = Abandoned
  • Count of unique Contacts IDs, where the difference between "Contact Ended At" and "Contact Started At" is less than your short Abandon time threshold (i.e., 5 seconds
How to calculate the calculate abandons
  • Channel = Phone_Call
  • Direction = Incoming
  • Status = Abandoned
  • Count of unique Contacts IDs
How to calculate the calculate total After Call Work
  • Channel = Phone_Call
  • Direction = Incoming
  • Status = Answered
  • Sum all "Unknown Time"

FAQs

What happens if a Conversation moves to a different Inbox. How does this affect the report?

The Work Session report is not anchored to a Conversation. The report focuses on Agents' work on the Contact and Inboxes those Contacts were originally assigned to. So if a Contact is initially routed to Inbox A and gets reassigned to Inbox B, as long as you filter the report to include inbox A, that Contact will be in the report.

How do you report on data for an escalation Inbox if you include all Inboxes that may have been the source of the inquiry as well?

Work done by Agents will be captured regardless of what Inbox it's in. The difference to note is that the report only shows data from the first Inbox of the Contact.

Does the Inbox indicate where the Contact initially routed to or where the Contact was completed?

The Inbox in the Work Sessions report tells you the Inbox the Contact was initially assigned to.

What type of call would show a status of "unknown"?

All outbound calls have a status of "unknown."

How can something show as unanswered have a handle time?

An Agent might have accepted a Contact and done some work without ever answering the Customer. They could have also switched Channels to a higher-order Channel.

How can two or more Agents have handle time associated with the same Contact?

There are several ways this could happen. For example, if a call comes in and gets transferred between Agents, then all those Agents will have handle time associated with the call. Another example is if an email gets routed to agent A and they create a task for Agent B, As Agent B works the task and Agent A works the email, both will accrue handle time for the same Contact.

Is the handle time reported unique to each Agent, or do they share the sum of the total handle time for that Contact? 

A "Work Session" is, by definition, the time one Agent spends on one Contact. For example, if Agent A and Agent B would both accrue their own handle times, but we do not specify that Agent B was working on a task, we show the had handle time equal to the time spent viewing the Customer Profile.

Does this re-write history? What does it re-write?

Work Sessions are event-based, so history is not re-written.

Why are there duplicate Work Session IDs?

Work Session IDs generated prior to 10/27/2022 5 PM PT may not be unique. These IDs were not always unique because Gladly uses the contact "ended" event id as the Work Session ID when Agents have utilization activity only (i.e., working with the Customer without creating any Contact events directly). We suggest using agent_id + contact_session_id as that will always be unique.

Work Session IDs generated on or after 10/27/2022 at 5 PM PT will be unique.

Why do some events have a "Null" value for one record but have a value for a second record?

When a Contact session has not ended, only certain fields are populated:

  • contact_session_id
  • contact_session_created_at
  • customer_id
  • conversation_id
  • inbox_id
  • channel
  • direction

This means other fields remain empty until the Contact session ends. 

Note that Work Session ID may also be NULL (or blank) until the Contact session ends.

Like agent_accepted_at, agent_routed_at, other fields may also be blank if an Agent never worked on the Contact session. OR if the Agent' cherry-picked' the interaction (e.g., a manager took it from the queue vs. being routed the Conversation.)

Increasing Time Needed to Resolve Customer Conversations

Think about the following If you notice that it's taking longer than usual to help Customers:

  • Check in which Channel (s) the increase is more prevalent. Are the Agents staffing that particular Channel/Inbox adequately trained to handle these types of requests?
  • Did you recently introduce a new communication Channel? Do your Customers prefer to communicate over a particular Channel?
  • Did First Contact Resolution (FCR) decrease? Potential issues typically require multiple interactions to resolve.
  • Check your Topic report. Is there an abnormal increase in usage for a certain Topic?

Was this article helpful?

What's Next