Reporting on Service Cloud channels
Reporting on Salesforce Service Cloud can sometimes feel like navigating a labyrinth. While the platform offers immense flexibility, it often leaves users yearning for more guidance. This blog aims to demystify the process, providing you with the insights and tools needed to harness the full power of Salesforce Service Cloud reporting.
Simplifying the Complexity
Historically, we’ve made it challenging for our customers by offering a plethora of reporting options without clear direction, or even making them aware of the options out there. Many customers will start with a single channel and build reports on that single object with some success. However, what happens when you add more channels and want consistent reporting across them all? The flexibility is there in the application, but the guidance on how to do it has been lacking. This blog, and future ones coming, are intended to help bridge that gap, making it easier for you to create meaningful reports and understand the data at your fingertips.
Harnessing the Power of Omni-Channel
One of the most powerful features of Salesforce Service Cloud is Omni-Channel. This tool is not only a powerhouse for work classification and routing, but also allows you to report consistently across all channels using a unified object model.
There are 2 objects that are critical to this consistent reporting:
1. AgentWork Object: This object is your go-to for tracking all the work assigned to agents and their performance. By analyzing the AgentWork object, you can gain insights into how efficiently your agents are handling their tasks, and the volumes you are handling.
This is where you find key performance indicators like average handle time, wait time (speed to answer) and wrap up time (after conversation time). For a work focused view, remember to group by the WorkItemId to find all the work performed for a given case or conversation, or alternatively for a service rep focused view, group by the UserId to find all the important metrics for your team.
For those with more advanced routing configurations, this object joins to the AgentWorkSkill object, where you can find if additional skills were dropped or not, and the relevant performance per skill.
2. UserServicePresence Object: To monitor user presence and capacity throughout each day, the UserServicePresence object is invaluable. It helps you keep track of when agents were available, busy, or offline, providing a clear picture of your team’s capacity and workload over time.
This contains important information related to how busy your team was, and how they are spending their time while logged in. You’ll want to group by user, presence status and date, to identify how long they are in each status each day, as well as analyze their idle time and average capacity, to see where you are potentially over or under staffed.
Recent Reporting Enhancements
We’ve recently enhanced our reporting capabilities to make it even easier to join Omni-Channel data with channel-specific data in Custom Report Types. For example, you can now join the AgentWork object with Case, MessagingSession, and VoiceCall objects (amongst others). This capability allows for a more comprehensive view of your service operations, enabling you to make data-driven decisions with greater confidence, and create consistent reports across channels.
This allows more in-depth analysis per channel, for instance determining which Case Types have a higher average handle time than others, or which customers you are spending the most time supporting. You will need to create separate reports for each object you want to join, but you will then be able to put them all on the same dashboard with common filters, allowing you to identify trends around volume or performance.
Existing Reporting Gaps
While we’ve made some strides in improving our reporting capabilities, we acknowledge that there are still some gaps that you can’t report accurately on (or at all) without customization. Two of the most common gaps we hear about are related to abandoned and transferred work – stay tuned for future blogs in this series, where we’ll provide tips and tricks to help you navigate these gaps until we can address them natively in the product.
In the Summer ’25 release we are going to be adding some reports and dashboards that you can install from the Setup screens, with the intention of giving you some basic reporting right away, with the flexibility to customize and enhance to your hearts desire – we’d love you feedback on those once they are available.
Future Topics
This blog is largely an introduction and some high level guidance, with some extra posts planned in the coming weeks, including more in depth guides on building these reports, as well as work arounds to address the known gaps. I’ll also call attention to these two new help docs related to reporting on Messaging:
- Report on Messaging Activity in Service Cloud
- Transitioning Your Reporting from Chat to Messaging for In-App and Web
Future blog topics include:
- Step by step instructions on how to report on the AgentWork object
- Extra: How to report on Skills
- Step by step instructions on how to report on the UserServicePresence object
- Extra: Utilization & Concurrency
- How to report on Transfer
- How to report on Abandoned
Let me know if there is something else I’m missing that you’re wanting to learn more about – these aren’t in a particular order, so those that are most desired I can start with.
