Configure assignment rules

Service Manager uses assignment rules to automatically distribute records, such as tasks, to the most appropriate groups or individuals for processing. You can configure the assignment rules with different conditions. For example, you can set a rule so that a record is automatically assigned to a group that handles the associated service, or you can set a rule so that a record is automatically assigned to an individual who has the lightest workload.

The following sections provide detailed information about the best practices of configuring assignment rules:

Configure assignment rules for groups

You can configure group assignment rules so that a record can be automatically assigned to a specific group or a group that handles the associated service, or based on location, department, language, or company. The assignment rules can be configured either by using the Assignment form or by using JavaScript.

Assign to a predefined or fixed group

You can use the Predefined or Fixed assignment rule to enable Service Manager to automatically assign a record to a group.

If you use a predefined assignment rule, you can specify whether the assignment is based on service, location, department, language, or company. You can also add additional query to filter the assignment groups.

For example, in the out-of-box configuration, an assignment rule is configured in the "sd.init.assignment.set" rule set of the Service Desk workflow. Based on the predefined assignment rule, the system assigns the records based service and location, as shown in the following screenshot.

Assign to a group that handles the associated service

In Service Manager, a record is usually associated with a service, so you can usually assign the record to the Config Admin group or the Support Groups of the service.

Service Manager follows the following logic to decide the assignment group:

  • If the service has only the Config Admin group, and no Support Groups are set, the Config Admin group of the service is used.
  • If the service has both the Config Admin group and the Support Groups, then the assignment depends on the assignment type you specify for the rule:
    • If the assignment type is Automatic - take first, the Config Admin group of the service is used.
    • If the assignment type is Manual - let the user choose, a list that combines the Config Admin group and the Support Groups of the service is shown to the operator for selection.
Note: If this rule is triggered by the system, the assignment type Automatic - take first is used even when you have selected Manual - let the user choose as the assignment type. This means that the Config Admin group of the system is used.

Use JavaScript to configure assignment rules for groups

In addition to using the configuration forms to configure assignment rules for groups, you have the flexibility to use JavaScript to implement your assignment rules. In JavaScript, you can use the groupValue variable to specify an assignment group or a combination of groups.

In addition, when you assignment rules for groups, you use the Consider Workschedule of Groups check box to specify whether the work schedule is considered or not for the assignment.

Configure assignment rules for individuals

You can configure assignment rules for individuals so that a record can be automatically assigned to a specific individual for processing. The assignment rules can be configured either by using the Assignment form or by using JavaScript.

You can configure the assignment rules so that a record can be automatically assigned to the following individuals:

  • None: Do not assign to any individual
  • A member of the assigned group: The member can be decided in a round robin manner or based on the workload of the group members
  • Coordinator of the assigned group
  • A specific assignee

Assign in a round robin manner

In the round robin manner, the system checks the latest assignment time of the members in a group, and then assigns the record to the member who has the earliest assignment time.

If you have a huge number of records to be assigned in Service Manager, follow these guidelines to avoid possible performance issues:

  • Only take recent assignments into account. By default, the value of 60 days is set while you add assignment rules in the round robin manner. You can adjust the value based on your needs. If this value is set to 60 days, it means that only assignments within the most recent 60 days are considered; assignments before 60 days are ignored. If the value is set to 0, it means there is no assignment time restriction; all the assignments of the members are considered.



  • Create index on the assignment time field and the assignee field of the corresponding table. This can avoid full table scans and thus can increase the query speed. At run time, the calculation SQL is as follows:
    select [assignee field], max([assign time field]) time from [ticket file] where [assign time field] >= [assigned time restriction] and [assignee field] isin [members in group] group by [assignee field] order by time

Assign based on workload

You can use the "Number of Assigned Records" member type to configure the assignment rules so that a record can be assigned based on people's workload. The system checks the number of working records of all the members in a group and then assigns the record to the member who has least working records.

To avoid possible performance issues for this assignment type, follow these guidelines:

  • Only take open records into account. Usually you need to append the query that filters out records other than the open records. You can use the Query Editor to edit the query string. In the example below, the query string Status != "Closed" is appended.





    In addition, you can further narrow down the filter result. For example, if you plan to take only the open and critical records into account, you can append to the query string as shown below:



  • Create index on the assignee field and the fields of the appended query. This can avoid full table scans and can thus increase the query speed. At run time, the calculation SQL is as follows:
    select [assignee field], count(*) ncnt from [ticket file] where [assignee field] isin [members in group] and [the appended query string] group by [assignee field] order by ncnt

Use Javascript to configure assignment rules for individuals

In addition to using the configuration forms to configure assignment rules for individuals, you have the flexibility to use JavaScript to implement your assignment rules. In JavaScript, you can use the assigneeValue variable to specify an assignee.