Over the years I’ve designed a lot of flows inside of Pega software, and a lot of assignment shapes, even a lot of assignment routing configurations. One part of that that generally gets a lot less use relative to other options is Skills Based Routing.
Even when they get discussed, Skills are often discussed to be used to handle “special” or “exception” scenarios, or very specific assignments that require a certain skill in some instances. In my experience, this has meant Skills Based Routing got used very little, if at all, just due to the business not having a need to do so.
Recently, I’ve been getting a lot more use of Skills in a design / implementation, and I have some thoughts as to how to significantly improve the use of skills.
What might you use skills for?
- When a special certification or training is required to complete this part of this process.
- When the customer is a VIP, so you only want VIP trained associates to handle the assignment.
- When a certain level of approval is needed
- There are many more…
But have you thought of these scenarios?
- When your teammates are not trained in a standard way, therefore not all teammates are created equal.
- When legacy systems across many business units have long ramp up times to become proficient.
- When business context about the work becomes complex, and you get closer and closer to “Segments of One”
- When N permutations of skills might be required in combination due to that same complex context.
Out off the box, when configuring Skills Based Routing, you have to do a series of things…
- Add a new Assignment shape to the flow
- Use a custom router
- Select the desired skill(s) from a dropdown list
But this presents us with a few limitations.
- Every different skill & assignee combination a different assignment shape to add in the flow, create flow decisioning to get to, and then configure your Skills.
- Any intelligent or dynamic use of skills has to happen in the flow decisioning logic to “go to” the properly configured assignment shape.
- The flow has to be modified anytime this logic changes
This means if I have 4 skills that can be used in any combination of 1-2 then I have 16 different combinations to configure. If I have 3 different teams / workbaskets it can also be routed to we now have 48 unique routing combinations in this scenario. I don’t want to have to add 48 assignment shapes.
Now imagine having even just 10 legacy systems used across your different business units, and within them 5 completely different ways to perfom the same task due to customer or business context. That’s a lot of ways you’ll need to train employees to use these systems, and therefore, in the real world, sometimes training is done in piecemeal, one “scenario” at a time. This is especially difficult in high-turnover positions that many back office operations teams face. It’s not ideal, but it’s how teams operate until they can get management support to do some disruptive transformation.
Now imagine you have 40 different assignments, multiple of which have the same complex requirements as to which teammates have the correct training to perform the task.
So how do we solve this (besides radical operations / IT transformation)?
We create a custom routing activity of course!
The goal of this activity is to dynamically determine 2 things..
- Where to route this work to based on context.
- What skill(s) to add to the assignment based on context.
This allows us to take the scenario above down to only 1-2 assignment shapes to configure, and no flow changes even if skills requirements change.
A few notes about what this activity has to do:
- Do some normal assignment creation stuff, setting all the normal properties, calling NewDefaults, etc…
- Determine the name of the assignment page that is being created (it differs based on HOW the assignment is created)
- Call decisioning rules to determine what skills are required, maintain that list. This may require looping through a series of decisioning logic depending on how complex your routing / skills rules are due to the context and systems landscape.
- Loop through your list of require skills and add them to the assignment page
- Also potentially dynamically determine where to route this assignment as well, to further reduce the number of assignment shapes required to be configured.
Skills might be one of those things you NEVER even use, or if you do, it’s only for very simple scenarios. I think though, there are more uses for skills that what the average organization uses. Skills can be used to complement your training regimen and give your operations teams additional flexibility on how to get extremenly specific as to the best teammate to complete a piece of work. This has many benefits including productivity of team members, and to customer satisfaction.
In closing, perhaps one day we will see a bit more dynamic / intelligent assignment shape configuration out of the box when it comes to using skills – but at least we can always build our own!

