how to randomly assign tickets to analysts of one support group?
They have the policy that, all unassigned ticket of that pool need to be assigned before lunch and before leaving in the evening.
Unofrutnately nobody feels responsible for assigning these tickets.
Would it be possible to randomly assign these tickets within this specific support group?
How do you handle resistant ticket assignment?
Best Answer
-
Adam_Dzyacky Product Owner Contributor Monkey ✭✭✭✭✭It isn't that weird.
So yes - totally doable with PowerShell runbooking. I just punched this up and isn't done by any means, but I think it's at least the basis for starting this since there are a lot of different ways you could get the users rather punching each of them in assuming its a large support tier (i.e. Get-ADGroupMember)#declare constants $mgmtServer = "localhost" $today = get-date $irClass = get-scsmclass -name "system.workitem.incident$" -ComputerName $mgmtServer $userClass = get-scsmclass -name "System.domain.user$" -ComputerName $mgmtServer $activeEnum = Get-SCSMEnumeration -name "IncidentStatusEnum.Active$" -ComputerName $mgmtServer $assignedToUserRelClass = Get-SCSMRelationshipClass -name "System.WorkItemAssignedToUser$" -ComputerName $mgmtServer #need to get the User objects that you'll eventually randomly assign these Incidents $user1 = get-scsmobject -class $userClass -Filter "username -eq 'USERNAMEHERE'" -ComputerName $mgmtServer $user2 = get-scsmobject -class $userClass -Filter "username -eq 'USERNAMEHERE'" -ComputerName $mgmtServer $user3 = get-scsmobject -class $userClass -Filter "username -eq 'USERNAMEHERE'" -ComputerName $mgmtServer $usersToAssign = @($user1, $user2, $user3) #get all the Incidents created today $incidents = get-scsmobject -class $irClass -Filter "CreatedDate -gt $($today.ToShortDateString())" -ComputerName $mgmtServer #loop through the Incidents and see which are unassigned foreach ($incident in $incidents) { $assignedToUser = Get-SCSMRelatedObject -SMObject $incident -Relationship $assignedUserRelClass -ComputerName $mgmtServer #Randomly pick one of the users and assign them to the unassigned Incident if ($assignedToUser.Displayname -eq $null) { $userToAssign = $usersToAssign | get-random New-SCSMRelationshipObject -Source $incident -Relationship $assignedToUserRelClass -Target $userToAssign -ComputerName $mgmtServer } }
3
Answers
So yes - totally doable with PowerShell runbooking. I just punched this up and isn't done by any means, but I think it's at least the basis for starting this since there are a lot of different ways you could get the users rather punching each of them in assuming its a large support tier (i.e. Get-ADGroupMember)
In our old system we had a tool custom built that would round robin incoming emails based on analyst availability.
We are building a similar engine for SCSM.
Parts
-SQL Database for tracking analyst availability, schedule, last assignment
-Code checks their logon via Skype Presence to make sure they are logged into the network in relation to their availability
-Code that checks for a specific support group and unassigned. Once it finds one it checks the availability and Skype and then assigns to that analyst
-Webpage for the support desk lead to manage the analyst availability.
Currently we are little stuck on Skype but getting there.
While @Adam_Dzyacky provides awesome code to meet the tech needs. We have found that you can get into a bind of Analysts being off for Vac/Sick getting work and not one taking ownership.
And Round robin on incoming emails...something about that sounds so familiar.
Im gonna check that out soon.
It's interesting to see, that we are not alone with this problem.
@Brian_Wiest I'm always impressed about your SQL skills, I guess there is nothing you can't do with SQL
- Odd/Even Method - Determines if ticket ID is odd/even and assigns to the appropriate technician; static
- Traditional Round Robin - Determines Random then begins assigning tickets round-robin to appropriate technicians; static
- Logging Routine
Our helpdesk is rather small so I was able to get away with static's for the users, but could be tweaked to make more dynamic for larger teams.