How to exclude a user from an assignment group if he is on vacation

Hello All,

I am running SM 9.62 and I have a request to exclude a user from the assignment group of an incident if he is on vacation and have back in the assignment group when he is back.

I am relying on service auto assignment by configuring both the admin group and config admin group for the business service.

How can I mention that a user is not available for assignment for a specific period and time

Greatly Appreciated

  • I don't know if it's a good idea on your case to exclude people on vacation from the assignment group.. you might have side effects having an invalid asignee on yours on going tickets.. but if you decided to go for that, you can set an flag on the contact/operator cust.userOnVacation and when the contact/operator is saved you can just rename the myGroups to userid_Vacation or same it in another field.. something like that.. When is disable you return it to the old name or recreate it.. It's one way.

    If you want to to keep the user in the group but not having him on the automatic routing, you still need to create a flag on it and create your custom routing script. It's not that complicate since you can just copy the default AssignmentExecutor and do a small change on it. I did a quick look on the method getAssigneeForRoundRobin (assuming you are using roundrobin) and for seems a good point to check this flag when the system is setting the queryMembers field.. you would just need to make a search on contacts/operator to check by this flag.. if the user is on the vacation, you don't add to the queryMembers field, if it's not you add it..
    Hope it help you, if not, let us know.

  • Hi

    you can use the functionality "on-call schedule" to manage availability of operators.

    See Helpserver

    Tailoring - Notifications - Daily On Call records

    If an operator has vacation, just set him to "false" in the weekday columns.

  • Hi  

    I have created the attached on call schedule as per the instructions in the help document you referred to but the tickets are still getting assigned to the users NT_U1 and NT_U2 as per the assignment rule in the service.


  • Hi Breno,

    So there is no built in feature that allows us to do so without coding.  I thought something in on-call would help do this.  You are right with regards to your assumption that we are using Round Robin.  All what I wanted was for the Round Robin algorithm to exclude a user from the group if he is set to be on vacation or not in shift.  Does this mean that the system will always keep assigning to members even though they are not on shift or on vacation.

  • Hi All,

    Just to further explain my case.  I have 3 users in an assignment group and tickets are being auto assigned based on Business Service Round Robin but if one of the users in the assignment group is on vacation he still gets assigned to tickets even though his colleagues are on shift.  I want to set the employee to be on vacation so he gets excluded from the Round Robin algorithm for assignment until he is back.


  • Verified Answer

    As i told you before, you will need to customize it. The OOB does not cover your scenario.
  • Hi,

    This can be done using customization, create a filed 'say "holiday"' in operator table to set employee on vacation. now in the probsummary link for assignee you can use something like this

    if (not (null(assignment in $File))) then ($query=" and assignment.groups=\"" assignment in $File "\" and (holiday=\"No\" or holiday=NULL)") else ($query="")

    This will only select operators for whom the value is not set as Yes for "holiday" filed.

    Also same logic you can put on validation on workflow, so if some one tries to manually write the engineer/assignee name, he will see validation message.


    Hi, I am trying to edit the AssignmentExecutor as per your recommendation but it does not seem to update.  The script Package is marked proprietary, is there a way I can edit it.


  • No, what I suggested was to copy the function, creating your own. Just save the script with another name and call it from the rule.
  • No, what I suggested was to copy the function, creating your own. Just save the script with another name and call it from the rule.