logo

NJP

Measuring Incident Reassignments to the Service Desk (or any other group) in Performance Analytics

Import · May 19, 2021 · article

Our Service Desk is the frontline of our IT support operation. Customers contact them, they solve the Incidents they can at the point of contact, and they route the rest to other internal teams. Sometimes, though, those internal teams reassign their own Incidents to the Service Desk, which subverts the intended flow and places an undue burden on the Service Desk (who already experience by far the highest volume of Incidents in the organization). To help tackle this problem, we wanted to be able to:

  • See which internal teams were reassigning their Incidents to the Service Desk
  • Rank those teams by the volume of their reassignments
  • Drill-Down to examine individual Incidents in order to better understand why they were reassigned

ServiceNow comes out-of-the-box with the Assignment Group platform metric, which tracks every change to every Incident's Assignment Group field, but - on its own - it can't tell you anything about the sequence of those assignments (like which group previously occupied the Assignment Group field). We could have designed a new platform metric to capture precisely that, but we'd already collected years of data with the Assignment Group metric, so we really wanted to leverage that. We did, through the use of Performance Analytics, and the steps below describe how.

This solution relies on: The Assignment Group platform metric The Incident Metric [incident_metric] database viewThe Groups breakdown source All of which come out-of-the-box with ServiceNow.
1 Login to ServiceNow as a user with the pa_admin role.
2 Click Scripts inside Automation under Performance Analytics. Click New beside Scripts. Set Name to Previous Assignment Group in Incident Assignment Group Metric, Description to Return the sys_id of the previous assignment group for the supplied (current) Incident. Only use with breakdowns based on the Incident Assignment Group metric (incident_metric table with definition = 'Assignment Group')., Facts table to Incident Metric [incident_metric], Fields to Definition, ID, Value, and Start, Script to: var previousAssignmentGroup = function(){ var returnMe = null; var rowStart = null; var rowValue = null; // Query metric_instance for rows that have the same Document ID and // Definition. Only look for rows older than the current row that // don't have the same value (Assignment Group name). var assignments = new GlideRecord('metric_instance'); assignments.addQuery('definition',current.mi_definition); assignments.addQuery('id',current.mi_id); assignments.addQuery('value','!=',current.mi_value); assignments.addQuery('start','<',current.mi_start); assignments.query(); // Determine the most recent result. This is the previous assignment // group. while(assignments.next()) { if(rowStart == null \
3 Click Automated Breakdowns inside Breakdowns under Performance Analytics. Click New beside Breakdowns [Automated View]. Set Name to Previous Assignment Groupand Description to A breakdown, specifically for use with the Assignment Group metric, that uses a scripted mapping to determine which group was assigned to the Document ID (Incident) prior to the currently assigned group. On the Automated tab, set Breakdown Source to Groups (sys_id=76407c23d7030100b96d45a3ce61034, in case there's more than one with the same name). Click Submit.
4 After the Previous Assignment Group breakdown page reloads, click New on the Breakdown Mappings tab. Set the Facts Table to Incident Metric [incident_metric], Scripted to true, and Script to Previous Assignment Group in Incident Assignment Group Metric. Click Submit.
5 Click Indicator Sources inside Sources under Performance Analytics. Click New beside Indicator Sources. Set Name to Incident.Assignments.to.Service.Desk, Description to A source that returns the number of times Incidents were assigned to the Service Desk., Valid for frequency to Daily (or any other frequency you want), Facts Table to Incident Metric [incident_metric], Conditions to Definition is Assignment Group AND Value is Service Desk AND Start on Today. Click Submit. If you'd like to focus on a group other than "Service Desk", make sure to change the Value is Service Desk condition to the name of your desired group.
6 Click Automated Indicators inside Indicators under Performance Analytics. Click New beside Indicators [Automated View]. Set Name to # Incident Assignments to Service Desk, Description to The number of times Incidents were assigned to the Service Desk. , Frequency to Daily (or the frequency you chose in the previous step), Direction to None, Unit to #, and Precision to 0. On the Source tab, set Indicator Source to Incident.Assignments.to.Service.Desk, Collect records to true, Aggregate to Count, and Value when Nil to 0. On the Access Control tab, set Publish on Analytics Hub to true. On the Other tab, set Render Continuous Lines to true. Click Submit. After the page reloads, click Edit on the Breakdown tab, add Previous Assignment Group to the Breakdowns List, and click Save.
7 Click Elements Filters inside Breakdowns under Performance Analytics, then click New. Set Title to All Groups Except 'Unassigned', Breakdown Source to Groups, Facts Table to Group [sys_user_group],and Filter to Name is not Unassigned. Click Submit.
8 Under Performance Analytics > Jobs, schedule a regular job to collect data for the # Incident Assignments to Service Deskindicator going forward at the frequency you want. Execute an ad-hoc job to collect historical records.
9 To display the data, create a widget (Performance Analytics > Widgets) based on the # Incident Assignments to Service Desk indicator and then place that widget on a dashboard.

The end result, used in a workbench widget, will look like this...

image

The total number you see is at the top is a count of all Incident assignments to the Service Desk, including times when the Service Desk is the very first assignment (with no prior assignment group routing it to the Service Desk). Using the Previous Assignment Group breakdown, though, you can see the volume for each assignment group that routed Incidents to the Service Desk. You'll also see an 'Unassigned' category in that breakdown, and that's counting every instance of an Incident being first-assigned to the Service Desk (Incidents that weren't assigned to any other group prior to being assigned to the Service Desk). If you want to ignore the Unassigned category, choose All Groups Except 'Unassigned' from the Select a Filter drop-down.

But what if I only want to see reassignments?

If you don't want the 'unassigned' value to be included in the overall score or the breakdown, we can take this a step further with a formula indicator...

10 Click Formula Indicators inside Indicators under Performance Analytics. Click New beside Indicators [Formula View]. Set Name to # Incident Reassignments to Service Desk, Description to The number of times Incidents were reassigned to the Service Desk after being previously assigned to other groups., Direction to Minimize, Unit to #, and Precision to 0. In the Formula_field, add: // For the overall score, show the overall # of assignments // minus the number that weren't reassignments. var res = [[# Incident Assignments to Service Desk]]- [[# Incident Assignments to Service Desk > Previous Assignment Group = Unassigned]]; // For each Previous Assignment Group breakdown element, // however, show the the overall # of assignments. If you don't // do this, the 'Unassigned' element score will be subtracted // from each breakdown element score, resulting in negative scores. if(pa.getCurrentBreakdownID() == '6f31277f1bc470108b020e93cc4bcb7d' && pa.getCurrentElementID() != 'unmatched') { res = [[# Incident Assignments to Service Desk]]; } res; On the _Access Control tab, set Publish on Analytics Hub to true. On the Other tab, set Render Continuous Lines to true. Click Submit. After the page reloads, click Edit on the Breakdown tab, add Previous Assignment Group to the Breakdowns List, and click Save.

The end result, used in a workbench widget, will look like this...

image

How about the percentage of reassignments?

Now that we have Indicators counting both reassignments and overall assignments, we can define another formula indicator to divide one by the other...

11 Click Formula Indicators inside Indicators under Performance Analytics. Click New beside Indicators [Formula View]. Set Name to % Incident Reassignments to Service Desk, Description to The number of times Incidents were reassigned to the Service Desk (after being previously assigned to other groups) divided by the overall number of times Incidents were assigned to the Service Desk., Direction to Minimize, Unit to %, and Precision to 1. In the Formula_field, add: ( [[# Incident Reassignments to Service Desk]] / {{# Incident Assignments to Service Desk}} ) * 100 On the _Access Control tab, set Publish on Analytics Hub to true. On the Other tab, set Render Continuous Lines to true. Click Submit. After the page reloads, click Edit on the Breakdown tab, add Previous Assignment Group to the Breakdowns List, and click Save.

The end result, used in a workbench widget, will look like this...

image

Labels:

image

View original source

https://www.servicenow.com/community/platform-analytics-articles/measuring-incident-reassignments-to-the-service-desk-or-any/ta-p/2302954