First off, I'm very new to this. The person that handled all our scripting is no longer with the company and this just got dumped in my lap. I have very little experience and I'm learning as I go.
I've got a call center that handles telesales for all of my company's franchise stores. Each store has it's own toll-free number that is routed into a single script. The person that was doing this before me set it up so that each number came into it's own CSQ and only had one skill assigned to the CSQ. They would then have the main person designated to get the calls set to level 10 on the skill and the person that it's supposed to "roll" to set at level 8.
Well, they've decided they want to do it better and have a single CSQ setup, with each franchise set as a skill, and naturally that falls to me. They've requested that I make it so that the customers can choose to wait for the specific agent assigned to that store, go to the next available agent, or leave a voicemail for the agent. I've got a pretty good idea how to do all this, but one thing I'm stuck on at the moment is how, in the script, does one specify what skill is assigned to a call, so that it gets routed to the right people with that skill?
For example: Call comes in from 888-555-1234 for store #0001. Three agents in my Franchise queue are assigned the skill for 0001 at levels 10, 8, and 8, respectively. Where and how do I connect that call to the 0001 skill, in the event that it needs to be queued and another call comes in? Hopefully that made sense.
I'm sure it's just some dumb thing I'm missing, but I'm getting more confused the more I look at it.
define a string variable i.e. CSQ
in the script perform a check to see what number was dialed via Switch step and set the CSQ variable accordingly, then under the select resource step rather than hard coding the CSQ name simply use the variable.
HTH, please rate all useful posts!
But they're wanting to have only one single CSQ setup. If I used this method, wouldn't I have to setup every single store as a CSQ? There are 191 inbound toll-free numbers I'm dealing with here.
OK, I did not read your post close enough, it that situation simply have 2 CSQ variables, first hard coded to be the All-CSQ and second will be dynamic as described in my previous post. Then in the script perform:
select resource CSQ1
wait X seconds
select resource CSQ2
Remember you do not queue to skills, but CSQs which are made up of 1 or more skills.
So your current setup is something like this:
Store 1 = Queue1 & Skill1
Store 2 = Queue 2 & Skill2
Store 3 = Queue 3 & Skill3
Is that correct?
And what your company is looking to do is like this:
Store 1 = Main Queue & Skill1
Store 2 = Main Queue & Skill2
Store 3 = Main Queue & Skill3
Is that also correct?
That's correct. Basically, each agent is setup as a queue with just themselves in it.
So, 888-555-1234 comes in and gets routed to CSQ-3013, which contains a skill named CSQ-3013 and is assigned to the person sitting at extension 3013 as level 10 skill. Then their backup at extension 3062 is assigned the skill named CSQ-3013 at level 8. It rings both four times, then goes to the VM for extension 3013.
What I've been asked to do looks like this:
888-555-1234 comes in and gets routed to CSQ_Franchise, which contains 190 or so skills named 0001_StoreName, 0002_StoreName, etc... The account manager for store 0001 has skille 0001_StoreName assigned to him/her at level 10, and 3-5 other agents have 0001_StoreName assigned to them at level 8. The call gets queued, rather than ringing each phone four times and dumping to voicemail, making it more likely that they get a real person on the phone and not voicemail.
All of the other toll free numbers would also be pointed at this script. So I've got 190 phone numbers coming into this script, with 190 associated skills. One for each store.
When you say "It rings both four times, then goes to the VM for extension 3013", how is it ringing both extensions four times?
Is the call ringing to extension 3013 four times, then ringing on extension 3062 four times? Or is it ringing both phones at the same time for 4 rings total?
Ok. I think I have it. Sounds like you need to combine what the company wants to get to with what you have now. If I understand it correctly.
Having one queue with 190 skills is not going to work the way they want it to. So you should keep the setup you have now. But make a change.
In your script, there is a "Select Resource" step for each queue. If you select that and go to Properties, you will see a screen like this. Would you be so kind as to send over a screen shot of one of yours? I just want to confirm. Thanks.
Ok it looks like your Select Resource step is correct. But it also seems like you are sending the call to agents individually, instead of sending the call to a queue. If you send the call to a queue (i.e. Store1 queue, Store 2 queue, etc), you can associate multiple users to the associated skill for that queue (i.e. Store1 skill, Store 2 skill, etc). You can then assign a skill priority to each user (10, 8, etc). and set the queue to "Most Skilled" in the RmCM.
Here's a shot of the script itself.
The Set Enterprise Info stuff isn't even being used anywhere. I experimented a few months ago and removed it from one of the other scripts. We're just using the default layout for CAD and the agents in that script didn't see any changes in what it displays.
The CSQ that is referenced in the expanded part of the Switch.
And the skill.
I would be careful with this change. Many times the call center will request changes not realizing how it's going to affect reporting. With your current setup you can pull CSQ reports to get stats per store. If you change to a single CSQ all stores will be lumped in to one CSQ and you will not be able to easily pull stats on each store.
With that said, I don't believe what you are trying to do is even possible. You can route to individual resources, but not to a specific skill, unless that skill is tied to it's own CSQ which is what you already have setup.
I stepped away from it for a bit yesterday after getting these replies and I'm going to take your suggestions and make a queue for each store. Right now, each agent is a queue, since the queues are labeled for each extension. They move several of the stores around roughly every two weeks to different agents. On top of that, whoever originally made my scripts, (there are 14 of them) hard coded all the variables, like queue name, VM extensions, prompts, etc... in the script. So I'm editing the script itself every 2-4 weeks. Usually two weeks, but sometimes they don't have any changes to make. So I will be making a lot of those into parameters, so when they make changes, I can simply change the VM extension in the application and then reassigne the skill in CCX. And when they want to record new greetings, sales pitches, and stuff for on hold, I can just point it at the new file through the application as well. I'll also be able to setup a proper queue with it rather than the half-assed method we use now of sending the call to the first agent, then letting it roll to the less-skilled agent, then voicemail.
The "Set Enterprise Call Info" step will set the variable display on the Agent Desktop. If nothing is displaying on the Agent Desktop currently, you can configure that from the Cisco Desktop Administrator. For instance, we have it show the caller ID of the customer, the name of the queue, the name of the skill and if a repair status call, the ticket number and ticket owner. If you don't have any need for that, I would remove it from the script to keep it clean.
Looking at this script, it doesn't look like it will ring each user in the queue 4 times before going to VM. Unless all 3 users are in a ready state and don't answer the call. If that is the case, there is not much you can do about that. The call will ring a total of 12 times (4 on each user). Good news is that the caller will only hear the queue music play and not 12 rings before they go to VM. Bad news is you had 3 users fail to answer the call. The system will put them all into not ready and the next call that comes in will go right to VM, until a user goes ready again.
I think this script is, for the most part, what your company is already looking for.
They have a mentality in that department that "This is the way we've always done it, why change?". My call center does a lot more outbound calls than inbound calls, but the directors want inbound calls to be answered by a real person, not voicemail. The scenario you described is exactly what happens now, and they're not happy with it. Sorry, I don't think my explanation on what they want versus what they already have was very clear.
You've seen what they've got right now, which has been used for the last five years.
What they asked me for was this:
A menu that gives the customer the option to leave a voicemail, wait for their specific account manager, or go to the first available skilled agent in the queue. Then if they choose one of the two queueing options, periodically (30sec?) give them the option to continue waiting or leave a VM.
They also want it to go directly to VM during non-business hours, as we're closed on the weekend. It should do that the way it's setup now, but our agents have fallen into the practice of not logging out of CAD, and will usually just leave it in ready status when they're not here. There is no policy regarding their use of CAD, so they don't get in trouble for it or anything. This is a training issue that will need to be addressed with them. I've also been trying for the last three years to get the managers to use Supervisor Desktop as well. I think if I can change the CSQ layout to one per store, I can actually give them some useful information in CSD, and possibly get them to use it.
See, when the phone system went in five years ago, it was configured to mimic the Nortel switch it replaced. We haven't been using it for hardly anything that it can do, or we use third party stuff for things we can do in CM or CCX. And they've been paying for the Premium version for the last five years.
All of this should be doable. I'll see if I can get some time later and make a small sample script for you to get you started with one or two queues.
I've already got one I made for my helpdesk that has a lot of those components already in it. I can expand on it and should be good to go.
There's still a few things I want to add to it and maybe change around, but it's in use right now and hasn't broken. Yet...
I built a script with only 1 queue the way you are looking for it. Pretty straight forward. Determines first if open or not. Then goes through the greetings and to the menu for each queue. If closed, goes right to VM (no menu). If open, plays the menu. VM options goes right to VM. Account Manager option queues to the manager (you'll need to manually set in the script "account3025" variable) and offers up options after 30 seconds (VM, keep waiting, or any available agent). First available queues to the first available and offers up options after 30 seconds (keep waiting or VM).
Hope this helps.
Well, here's what I came up with. Keep in mind this is only the second script I've ever written. It does everything I was asked to make it do, and I've got it setup to take care of every scenario I could think of off the top of my head.
Let me know if you see anything that'll come back to bite me in the ass later on. I'm sure there's plenty of noob mistakes in there.
I can't attach a file for some reason, so here's a picture of the whole thing. That second switch string is where all of the stores are going to eventually go.
It looks good. Make sure you validate your script in script editor to make sure that there are no empty steps or missing logic. If you have a test application and trigger, I would upload this to it and test the crap out of it. Run a reactive debug on the script and go through each step of the script. Reactive debug will let you manually move from step to step in the script (F10 on keyboard moves to next step). This will help you find any areas of the script that might not work the way you want.
You should be able to attach things to replies. When you hit reply, in the top right corner of the reply box is a "Use advanced editor" link. Click on that and it will allow you to attach items to replies.
Yeah. It acts like it let me attach it, but it never uploads. And I spent about a few hours reactive debugging it yesterday. It's already on the server and I've got two test triggers pointed at it. I threw everything at it I could think of and there were a few things I needed to change. I just need to get with the directors and figure out exactly how they want the prompts to be worded and then have someone with a more pleasant voice than my own record them for me. Then test it for awhile with a store or two.
One thing you might want to consider is what to do during holidays. Do you want to treat them like any other business day, or do you want them to be treated like a weekend day?
I've been trying to come up with a way to handle holidays and emergency closures due to inclement weather. I'm open to suggestions.
The current practice they've been using is to just hope all their agents remember to change their voicemail greetings, so just about anything would be an improvement.
I built into our scripts logic that determines the current day, then compares it to an XML document that has the company's recognized holidays in it. This way I only need to update the XML doc once a year. I also have the "holidayClosed" boolean variable as a parameter, so if I need to ever shut down the script in an emergency (weather, power, zombie apocalypse), I just need to change the value in the Application Manager.