Skills and Groups and Groups and Skills…
It's nice to have options like this; not “or” but “and”. We do, not everyone else does. Since these concepts come up and are so similar in some ways, it seemed ripe for a bit of a blogging.
Let’s define these terms first of all: to be fair they can both mean similar things but routing is very different. As ECC Agents can be in up to 64 Groups (64, yes) it is very easy to provide Groups that reflect pretty much anything you wish to categorize. That could be a client, a geographical region, a time part, a language capability, tech skill or just about anything you wish. The key is that you will get our extensive Group Reporting around that collected/collective activity which feeds Agent Group data as well.
A “Skill” can be applied to an Agent (not a Group) and while “Spanish Sales” can be a group or a skill the decision point really comes down to the most important thing any Contact Center can provide and that’s reporting. If I have one Spanish speaking employee and I apply them “across the board” it is better to have that as a Group or a Skill? My sense is that more reporting is better and with 64 Group memberships available this might be the best (default) way to go generally. If I have one Spanish speaker do I really need a Group? Maybe not. This all comes down to reporting and the business requirements. We do not supply “Skill” reports. If you wish for extensive data then build a Group.
However, fear not for lack of reporting data Skill users! Blog readers here know that one of my fave tricks is IVR Applications and I use them for just about everything. If the goal is a simple “count” of skill users (Spanish in my example) then we can place IVR App markers directly after the “Give Menu” choice involving language and drop that into an IVR App appropriately named. Simple count is all you need? IVR Applications work perfectly. Start with Skills/IVR Apps and graduate to Group? That happens too. In ECC this is very easy to do. You would know from IVR Application reports that usage of the skill has peaks and valleys. With a hard count of Skill calls you’ll have the data to decide if you need to “evolve” the skill into a Group. Reporting, reporting and reporting.
So the next step on Skill Routing would involve the “No Skilled Agents Available” situation. Historically ECC would find any human being anywhere in the event that no “Spanish” speaker was available. Starting in ECC 8 we made a change that would allow a caller to wait until that appropriately skilled person was available and allow the business to create the right treatment as fits their needs. The key to remember is that if you upgrade from an earlier build the ability to wait for the right “Skill” is not automatically enabled. The TAC will need to turn this feature on for you. Once enabled we can take full advantage of options that would typically include a timer then a chance to push that call to your second choice whatever that might be. No Spanish speaker available? Wait xx seconds and move the call. The best and most easily managed approach with Skill routing is to route skill requests to a “Skill Named Service” then utilize Interflow and the Interflow timer to get to the right Agent or their backup. Once the script is written and assigned to an IRN/DNIS it’s all taken care of in ECC Director. Why “Interflow” and not “Overflow”? The answer is ECC will still be looking for the “Skill” so by using “Interflow” instead we have the option to go to any option in ECC including a “non-skilled” ECC or non-ECC destination, a mailbox or even a new Service. Flexibility rules the day again.
It's easy enough to start this way, collect some data and determine when you might “graduate” to a “Skill Group”. IVR Apps Real Time Reporting on Skills could look like this:
As usual you need to determine what window of time you want to look at. In this case I like a longer term view of something that might be a smaller but growing part of my environment. I set my “Interval Time” to 480 minutes so cover my “work day”. At the end of the day if I see the daily totals this way. Of course all of this will be in IVR Application Reporting (Interval and By Date) as well. In this case Interval reporting might be the most important for trend analysis: which day of the week or part of the day/week/month/year this was used most heavily/not at all?
Watch your Minimum Handling Time too. I'm a big fan of continual prompting and while that number can be “0” to just count events, this becomes an opportunity to acknowledge a caller’s choice with a simple wav file and then see if people bail before then end of the message. So a 3 second wav file might have a 1 second MHT. Deeper data is better. Just because they opened the door it doesn’t mean they walked through. This allows us to determine effective usage. If 99% of the users make it through, congrats! You have successfully scripted your app to your callers’ needs. If you find that 75% bail, it’s a reason to look at scripting and maybe move this choice up in the call treatment? Many callers abandon simply because they’re not quite sure what is occurring so maybe a message or a different message is what’s needed? Your callers will let you know how you're doing. Of course you could always add a Survey, right?
In essence we use Scripting to allow Callers to pick a “Language” which requires that Agent to have the minimum Skill level (40 on a 1-100 scale) within the Destination Service and Group. We determine that through “1 for Spanish, 2 for French” at the “Give Menu” option with Call Profiles assigned appropriately. The Spanish leg of the script is shown:
IVR Application is captured next, and then we play a wav file and send the call to our Service which routes to our Group:
Successful Spanish call goes to the “Spanish” Service, then the “Voice” Group with an Agent who has that skill (set in Agent’s profile in ECC Director). For a French call the call would go to a French Service and then the “Voice” group. For starters keep all the “preference” and “ability” numbers at 100%. Over time you can rank your skilled agents this way (see ECC docs for detail) but you may also as we discussed “graduate” to a full “Skill-Named Group” like “Spanish Group” and then rank your agents in Group order as you do today with any of your ECC Groups.
Here’s our “Spanish” skilled agent (no French skills for this person) who will need better than a “40” level “Spanish” skill to handle the call. He has a 100 level, so we have talent to match or exceed the need:
Here’s our ECC Service settings (The Destination, not shown, is our “Voice Group” for both languages if there is someone there with the right language ability). Note we have a “Best Skill Fit” chosen and with no Overflow we Interflow after 5 seconds to a Single Agent Queue:
Here’s what the call looks like to our Spanish Agent:
If the minimums are not met, Interflow will occur. In this case we Interflow after 5 seconds to a Single Agent Queue. In this case a failed “French” request Interflowed as per settings in Director at the Service layer (Destination=Group “Voice”; no overflow, Interflow set to 5 seconds to route to alternate destination Single Agent Queue). Here’s the Interflow call:
Here’s the “Configure Call Status” detail to caption our “Lang_Pref” Call profile name into something friendlier in Communicator. This way the Agent sees exactly what’s been offered in the Script:
And of course the ability to look historically at Skills Routing will tell you everything you need to know to adjust the routing or maybe it provides the proof that what you're doing is exactly right. The magic is in the numbers and what you do with them:
Interval data is particularly useful for day part activity over time. In our case here, requests are pretty even. Over the 6 weeks we measured here we average French and Spanish requests total fewer than 2 per hour. No change to Groups until that volume gets past say 10 or 12 per hour in my environment.
In the event you do not use any scripts and route with Auto Attendants (in the PBX or within ECC) and do no IVR treatment you can still apply skills at the IRN level: Be careful to not have them defined here and in the script. The IRN settings will “win” the conflict.
Happy skill-based call routing!