diff --git a/Server-Side Components/Background Scripts/Incident Reassignment Tracker/Incident Reassignment Tracker.js b/Server-Side Components/Background Scripts/Incident Reassignment Tracker/Incident Reassignment Tracker.js new file mode 100644 index 0000000000..724b641157 --- /dev/null +++ b/Server-Side Components/Background Scripts/Incident Reassignment Tracker/Incident Reassignment Tracker.js @@ -0,0 +1,32 @@ +(function() { + var MAX_REASSIGNMENTS = 5; + var flaggedIncidents = []; + var flaggedCount = 0; + var totalChecked = 0; + var incGR = new GlideRecord('incident'); + incGR.addActiveQuery(); + incGR.query(); + while (incGR.next()) { + totalChecked++; + // Count how many times 'assigned_to' changed + var auditAgg = new GlideAggregate('sys_audit'); + auditAgg.addQuery('documentkey', incGR.getUniqueValue()); + auditAgg.addQuery('fieldname', 'assigned_to'); + auditAgg.addAggregate('COUNT'); + auditAgg.query(); + var reassignmentCount = 0; + if (auditAgg.next()) { + reassignmentCount = parseInt(auditAgg.getAggregate('COUNT'), 10); + } + // Flag incidents exceeding threshold + if (reassignmentCount > MAX_REASSIGNMENTS) { + flaggedIncidents.push(incGR.getValue('number')); + flaggedCount++; + } + } + gs.info(' Checked: ' + totalChecked + ' | Flagged: ' + flaggedCount + ' | Threshold: ' + MAX_REASSIGNMENTS); + if (flaggedIncidents.length > 0) + gs.info(' Flagged Incidents: ' + flaggedIncidents.join(', ')); + else + gs.info(' No incidents exceeded the reassignment threshold.'); +})(); diff --git a/Server-Side Components/Background Scripts/Incident Reassignment Tracker/README.md b/Server-Side Components/Background Scripts/Incident Reassignment Tracker/README.md new file mode 100644 index 0000000000..e6b25d3a63 --- /dev/null +++ b/Server-Side Components/Background Scripts/Incident Reassignment Tracker/README.md @@ -0,0 +1,9 @@ +Incident Reassignment Tracker +Use Case - +In IT service management, incidents are sometimes reassigned multiple times before reaching the right technician. +This script helps identify incidents that have been **reassigned more than 5 times**, so managers can review the assignment process and reduce ticket bouncing. + +How It Works - +1. Loops through all **active incidents**. +2. Counts how many times the **`assigned_to`** field changed using the `sys_audit` table. +3. Prints the incident numbers in the system logs if they exceed the threshold (5 reassignments by default).