Almost every decent ITSM tool offers the admins to configure a set of rules to assign or route tickets to proper support groups or specialists. BMC Remedy ITSM Suite is no different, as expected, and has its own assignment engine. But I the result is a bit confusing and maybe not as useful as it could be. The result is a overloaded system, difficult to maintain, or worse, not using the assignment engine.
In this post I will review the BMC Remedy ITSM Suite’s assignment engine.
Understanding how the automatic assignment works
Remedy has two different tools to automatically determine which support group must be assigned for some specific task or role, and to determine which specialist within this group is assigned. The second is based on the assignment engine, a core tool that can assign records to individuals in a very intelligent way, using different algorithms. For instance, it can assign technicians one after another in a round-robin basis, or check the remaining work for each individual to assign the ticket to the less occupied, etc.
The first, the support group assignment, is based on the CFG:Assignment form. Using this form you can define a set of rules, that when matched will determine which group must be assigned to each ticket.
The assignment engine
As I said, the assignment engine is a core part of Action Request System. But with BMC Remedy ITSM Suite, it’s use becomes simpler, since you can configure it form rules. For instance, the HPD:CFG-Rules form, defines the behavior for incident management.
Using this form, you can set the Incident Management rules for each company (or for all, using the -Global- company). One of this rules is the use of Assignment Engine Integration, defining also the Assignment Process.
My opinion about this assignment engine, is that is very easy to configure but it is not enough for the majority of cases. For instance, you can’t consider the availability of the user. Imagine a support group with a 24×7 operational service. People inside this group are rotating. The assignment engine doesn’t care about who is working right now. There is no way to implement it using this engine as it comes. My experience tells me that this assignment engine integration will be set off for the most of cases.
CFG:Assignment
This form is the key of ITSM’s automatic assignment. This form covers all the different roles for each process where a support group can be assigned (like the assigned group and owner group of an incident, or the assigned group, coordinator group and manager group of a change). Thus you can create different routing rules for the different roles. For instance, for a laptop incident in a company, you may want your Help Desk support group to be the owner, and you laptop-PC support group to be assigned. In this case you will create different rules for the owner and for the assigned.
For each assignment you can define a set of constraints (Routing order), including the organization, the location, the operational categorization and the product categorization, that if matched, the defined support group will be chosen. If more than one rule applies, then the one with highest priority (sort order) is selected.
So, the use seems very easy and flexible, just select the constraints, the support group and go live!. But when starting to design the rules, things start to change…
Limitations of the assignment engine
The great limitation is the set of constraints. Yes, at first sight seems that the main options are covered by the proposed constraints, but believe me, it will not pass so many time until you discover that you need another field at the constraints set. Some examples of fields needed that I found in the past:
- Service CI: Sometimes if far more easier to route by service, than by product category.
- Time of the day: If you have some night-guard group, maybe you want to route all tickets to it.
- Workday or weekend: Same as before.
- Priority: Maybe you can bypass some layer depending on priority.
The conclusion is that it doesn’t matter how many fields you put on the constraints, it will be always some missing field. The only solution is to have an extra field where you can write an arbitrary qualification. Thus you will have all the needed flexibility. But I think I know why BMC has chosen to not to put it. It is because, the current approach makes an intensive use of indexes, so no matter how many requests do you have on the CFG:Assignment form, it will be fast. If you must evaluate this extra qualification, the performance can degrade. My opinion is that the next version of this form must include this arbitrary qualification. The engine will ignore it, and only will check it on the chosen rule. If not qualified, then look at the second rule. So only a reduced set of rules will be evaluated at every auto assignment.
The maintenance of the rules
Depending on your organization, you can survive with a reduced number of rules (I mean less than100), or you may need a very high number of them (more than 10.000). It depends on the number of support groups and your procedures. The main problem is that the constraint model only allows you to select one item, with the risk of the need of creating a lot of rules for one simple concept.
Imagine the next case, your organization is composed of regions, divisions and departments. You want that all management employees have a VIP Help Desk for the routing. If you have 4 regions, and for each region, 5 divisions, that means 20 management departments. So you need 20 rules.
But things can become worse when you combine this effect at two dimensions, that its, you want that all corporate services for management departments will be routed to VIP Help Desk. There are 50 product categorizations related to corporate services. You must create a rule for each combination of product categorization and department, so 1000 rules are required.
The templates as an incident catalog
As your company mature the auto assignment rules, also the template catalog is completed. It arrives at one point where you start having a set of templates covering almost every case on your organization. You can choose the support groups at the template, so it can arrive one point when you will evaluate if does it worth the effort of maintaining the assignment rules, when the 90% of the cases a template is used.


















Excellent post! I just want to add that operational and product categorization are the key point for assignment rules. Actually, the recommendation of having a limited and “generic” operational catalog is a bit contradictory when you then need to configure 100% automatic assignment rules.
Thanks!
Thanks Santiago.
I agree with you. If you want to rely your assignment on your categorization catalog, then you can’t have a limited and generic one.
The US Army (NETCOM) instance has a few routing rules, given that it supports more than 25 IT support providers (and continues to grow). The problems that we have seen is the lack of Service CI routing. Although I think that Asset/CI-based routing would be very hard to maintain (although customers say they want it), the problem of following relational links in order to determine which rule to fire is problematic. Not so with Service CIs. As you point out, they added them to the modules (as direct-access fields) and they represent larger, abstract services to be supported, so it should be a factor. In fact, if they had added Service CIs as a routing factor, we could probably reduce our routing rule count by 50% or so.
We don’t have a problem with time of day or day of week routing as we creates function-based work groups, so all support people that support a certain function go in the same work group, regardless of shift.
Given the numerous VIPs in the US Army (Generals, SESs, Directors, etc.) we have had call for VIP-based routing – where the VIP is supported by a “Gold Team” – so that is a factor that would have been nice to have.
In comparing with ServiceNow, I like the compact nature of the Remedy implementation – you know where to find the routing rules as it is in only a few locations – but ServiceNow allows you to route on any factor. You just have to write the code for all of it!
That’s exactly the point Dale. Thanks for the example.
hey, i was going through the this, i want know is it possible auto assignments for Vendor group?
No. Vendor Groups are outside the auto-assignment process. Normally the assignment to a vendor group is done by the support staff (in fact by the assigned support group).
If you have an external support group that is a vendor, but it is completely integrated in your system, you must consider to assign the tickets directly to them, not as a vendor group.
for remedy – VIP-based routing –
you could add remedy id and workflow to the existing auto assignment section 1 – aka add code –
for routing to vendors if you treated them like a customer company set up a spg group you could then route to them – you can then set up a generic id that has a vendor DL to alert them of tickets sent to them , if they do not wish to log into your system OR even just add a vendor support group under your operating company and route to it ..if you want to keep it cleaner