The Now Platform® Washington DC release is live. Watch now!

Help
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Round-Robin (Auto Assignment of new incidents and tasks)

magoo
Kilo Expert

HI All,

 

I was asked to create a round-robin type approach (Auto Assignment) for any incidents/tasks that come into our two level1 groups. What we are looking for is that if its sent to team A's group it will auto assign to the next team member in line, and same with Team B.   I have searched the forums and found a post back from 2008 but it had been deleted by ServiceNow in 2010.   Our company is new to ServiceNow (a couple months now), and I am guessing this is more of a script that would need to run, but currently do not have much experience in scripting.   Has anyone had any luck with doing something like this?   Any suggestions would be greatly appreciated!

 

Thanks!

1 ACCEPTED SOLUTION

justin_drysdale
Mega Guru

We have this in our instance.   Here's the breakdown:



On sys_user, create a date/time field to track last ticket assigned. Also create a checkbox that will be used to determine if the user can receive a ticket.   This can be your vacation exclusion logic.



1. Make an array (associative, key-value) to contain your users that will receive tickets and their corresponding last ticket assigned timestamp.


2. Find your assignment group, and query it's users.


3. Push those users and timestamp into the user array from 1.   You can conditionalize here with the checkbox to make sure you are only pushing 'active' users into the array.


4. Sort the array by timestamp, return the user that has the oldest timestamp.


4.5. Update the user's timestamp.


5. assigned_to = returned user.



Please let me know if you have any questions.


View solution in original post

101 REPLIES 101

paulporter
Kilo Explorer

I can't speak to a solution for this, but am equally... no... VERY interested in some help in round robin assignment based on last assigned, daily individual schedules and vacation exclusion.   I find it interesting ServiceNow doesn't seem to address this.  



-Paul


justin_drysdale
Mega Guru

We have this in our instance.   Here's the breakdown:



On sys_user, create a date/time field to track last ticket assigned. Also create a checkbox that will be used to determine if the user can receive a ticket.   This can be your vacation exclusion logic.



1. Make an array (associative, key-value) to contain your users that will receive tickets and their corresponding last ticket assigned timestamp.


2. Find your assignment group, and query it's users.


3. Push those users and timestamp into the user array from 1.   You can conditionalize here with the checkbox to make sure you are only pushing 'active' users into the array.


4. Sort the array by timestamp, return the user that has the oldest timestamp.


4.5. Update the user's timestamp.


5. assigned_to = returned user.



Please let me know if you have any questions.


Justin,


Thank you so much for the response.   It looks like you are probably running a business rule for this, would you be able to share the details of the script that its running?



Thanks!


Steve


Thanks Justin,


I hadnt had a chance to try this till today.   I seem to be having issues and wondering if I missed something. I am receiving the following, Any thoughts, I received the same error when trying it on one of the demo sites as well?;



org.mozilla.javascript.EcmaError: "userList" is not defined.
Caused by error in Business Rule: 'GK - Round Robin - Level 1 PC' at line 23

20: //sort on last assigned, return user with
21: tech_arr.sort(function(a, b) {
22: return a.last_assigned<b.last_assigned?-1:a.last_assigned>b.last_assigned?1:0;});
==> 23: updateDateTime(userList[0].sys_id); //updating ticket last assigned date
24: return userList[0].sys_id;//assigned_to technician.
25: }
26: