IPCC Express Skills Based Routing "Select Skill" feature request.

Let me start by saying that I hope I'm just doing something wrong and that what I'm trying to accomplish is already possible within the existing feature set of IPCC Express. (I'm running 4.5.2) If not, I'd like to start a campaign to get it added as a feature in the next release.
Short version:
A call comes in, and in order to assign skills to the call you must assign the call to a csq that contains the skills required to complete that call. -- Problem arises when number of skills gets large, so must the number of CSQ's. Maintaining all of the agent to CSQ mapping gets very cumbersome.
I'm proposing a new "select skill" step in the CRS developer, which will allow you to assign a skill required to handle a call, rather then have skills required be based on what CSQ the call was put into.
(Long version in an e-mail from me to cisco)
Basically what I'm seeing with the Skills Based Routing feature in IPCC Express is that it still relies heavily on CSQ's to determine the group of agents selected to take a certain call. I can't assign a skill to a calling contact during the call flow in the script editor, instead I have to assign a contact to a CSQ which has certain skills assigned to it.
Let me give you an example as it pertains to my company.
We have 15 Healthcare locations with an average of 7 doctors per location. Each doctor has his or her own specialist that takes appointments and other calls not destined to be terminated by the doctor. Each Specialist is also a Primary backup for 2 other doctors and a secondary backup for the rest.
Currently, if I want to use skills based routing to route a call to one of the Doctors, I have to create a CSQ for each doctor, and add that doctors skill to that CSQ, and then add all of those CSQs to the locations "team".
Furthermore, if I want to add a "bilingual" skill so that each caller has the option to speak to a bilingual rep, it changes the order for the rep selection. Now I have to double the amount of CSQs in the system to have 1 queue for one language and another queue for another language for each doctor.
At 15 locations and averaging 7 docs per location with 2 languages, this requires 210 different CSQs that I have to update on a regular basis because turnover for these specialists is fairly high. Not to mention the fact that Cisco has imposed a "soft limit" of 75 CSQs per server on the 7835.
What I would propose to alleviate this mess would be to add a new step in the CRS editor under "IPCC Express" and call it "Select Skill", where I could assign a skill required to handle a call. This would allow me to create 1 CSQ and have agent selection done based on skill, or a combination of skills. It would also allow me to look across the enterprise for an agent with a particular skill without having to create 105 CSQs with 105 agents per CSQ.
To do this for now I have created a work around, but it's not a very good one because it requires a lot of overhead. I've created a database with all of my agents in it and all of the skills they are qualified for. Then where I would use the 'Select Skill' step I talked about earlier I now use a database dip and select a resource with the skills I require, then do a 'Get Reporting Statistic' to determine if that resource is logged in and available. Then using CRS 4.5.2 I route on resource instead of CSQ. Now the problem with this method, is if the resource is available, but away, or doesn?t answer the phone (because they also have to deal with walk up customers) it sets them not ready and then just sits there waiting for then to go available again. It wont requeue to the next skilled agent unless I dequeue then from the current app and start the process all over again, which in that cause they would loose their place in line.
So that's it in a nutshell, I'm sure it's not the easiest thing to follow.
Let me know if you have any questions.
Jeremy
(end e-mail)

I just want to join you in this request.
Steven Ferland, Bell Canada
P.S.: Please add your name if you agree with Jeremy.

Similar Messages

  • Skills Based Routing Questions

    Hello,
    I have a question regarding skills based routing.  I am trying to use the algorithm of "Least skilled by order".  I am expecting the following:
    NY-CSQ
    (skills in order)
    - Shopping (skill)
    - Driving
    - Walking
    Boston-CSQ
    (skills in order)
    - Driving (skill)
    - Shopping
    - Walking
    LA-CSQ
    (skills in order)
    - Walking (skill)
    - Shopping
    - Driving
    Agents
    AgentA
    - Walking - 1
    - Shopping - 2
    - Driving - 2
    AgentB
    - Driving - 1
    - Walking - 2
    - Shopping - 3
    AgentC
    - Shopping - 1
    - Driving - 2
    - Walking - 3
    AgentD
    - Shopping - 1
    - Driving - 2
    - Walking - 3
    Assuming a call comes in for NY-CSQ and all agents are ready.  I'm expecting the call to go to longest available between AgentC and AgentD.  Instead, the call goes to AgentA who has the least overall skill.
    I cannot find in documentation the difference between "Least skilled", and "Least skilled by order".  In this case, assuming that AgentC and/or AgentD are available, I always want the call for NY-CSQ to go to them first based on the order of the skills in the CSQ.
    Any thoughts?
    Thanks,
    Jeff

    Refer to CUCCX 7.0(1) Administration guide, pages 7-21 & 7-22.
    •Longest Available—Selects the agent who has been in the Available state for the longest amount of time.
    •Most Handled Contacts—Selects the agent who has answered the most handled calls.
    •Shortest Average Handle Time—Selects the agent who generally spends the least amount of time talking to customers.
    •Most Skilled—Used for expert agent call distribution. Selects the agent with the highest total competency level. The total competency level is determined by adding the agent’s competency levels for each of their assigned skills that are also assigned to the CSQ.
    –Example 1: If Agent1 is assigned Skill1(5), Skill2(6), and Skill3(7) and CSQ1 specifies Skill1(min=1) and Skill3(min=1), the total competency level for Agent1 for CSQ1 is 12.
    –Example 2: If Agent1 is assigned Skill1(5) and Skill2(6) and Skill3(7) and CSQ1 specifies Skill1(min=1), only, the total competency level for Agent1 for CSQ1 is 5.
    •Least Skilled—Used for expert agent call distribution. Selects the agent with the lowest total competency level. The total competency level is determined by adding the agent’s competency level in each assigned skill.
    •Least Skilled by Weight—Used for expert agent call distribution. Selects the agent with the lowest total competency level multiplied by the skill’s associated weight.
    •Most Skilled by Weight— Used for expert agent call distribution. Selects the agent with the highest total competency level multiplied by the skill’s associated weight.
    •Most Skilled by Order— Used for expert agent call distribution. Selects the agent with the highest total competency level in the ordered list.
    •Least Skilled by Order— Used for expert agent call distribution. Selects the agent with the lowest total competency level in the ordered list.
    Note: If two or more agents have equal competency level, then the selection automatically defaults to Longest Available selection criteria.

  • 1 CSQ and Skills based routing

    Hello,
    I have a quick question regarding 1 csq and skills based routing.  We have a customer that wants 10 different numbers pointing to 10 different scripts but would like to have only 1 CSQ since they only have 10 agents to do all of the work. 
    This may not even be an issue but wanted t make sure before I started scripting.
    The first  number gets called (lets say HP)  and routed to correct script. Call goes thru the script and to the CSQ...the agent has a skill 10 for HP and skill 5 for Cisco and will receive the call .  Second number  gets called (lets say Cisco) and routed to correct script and dumpted to the same CSQ...another agent has a skill 10 for Cisco and skill 5 for Microsoft...so that agent will recieve the call (?) Can you have multiple skills within 1 CSQ without having any issue?   Will these affect the call routing to the agents?Does the script have any bearing on how the resource is selected or does it only send the caller to the CSQ and the skills are what  determines which agent is choosen?
    I am trying to determine whether I should have ony 1 CSQ (for all 10 scripts) or have different CSQ's for each script.   Again they will have about 10 agents fielding all of these calls.
    Any suggestions would be appreciated !!
    Thank you.

    Not really. If a contact at the same priority has been waiting longer in another queue, that other contact will be offered to the agent first. Remember that skill competency levels only apply when there are more resources (agents) available than there are contacts (callers). The RmCm subsystem uses the competency level assignments to determine which of the multiple available resources to choose.
    You - I think - are asking the inverse: When I have multiple contacts waiting and a single agent becomes available. In that scenario, the contact waiting the longest across all CSQs that resource is skilled in will be offered first. The RmCm subsystem does not consider competency levels in that scenario, only whether the resource is skilled at all in that CSQ.
    If I were the consulting engineer, I would ask questions such as this to stear the conversation.
    You have two or more customers waiting. Are both the same priority to the company?
    Yes: Why do you want to penalize one customer who has been waiting longer because the person who is capable of helping them isn't the ideal person?
    If the employee is not capable of helping them, then they should not be skilled in the CSQ.
    If they are capable of helping them, then help whomever has been waiting the longest. Likewise with the second call when another resource eventually becomes available. It may not be the other person's primary skill either; but, if they are in the CSQ, they should be able to help.
    In the rare scenario that both calls were really that difficult that both "secondary" people couldn't handle it, let the agents swap the calls manually or call the customer back. If the group is only three or four people, this should be pretty easy by standing up and talking over the cubical wall; or, using IM.
    Relax a little and let the ACD subsystem figure out how to find a live body. If you're busy, it isn't as important which live body it is, is it?
    No: How can we identify this during IVR? (E.G. "If this is a network down emergency, press one.)
    If we can identify a delta in priority of contacts - regardless of CSQ - during IVR, we can then increase their priority to ensure they are answered in a timely fashion.

  • Overview Skills IPCC express v. 8.5

    Hi,
    we are using Cisco IPCC express in version 8.5.
    Is there any possibility to generate a report / have a list of all the users with their different configured skills?
    The only possibility which we found was "Subsystems -> RmCm -> Skills" -> but in this list for the different Skill we only found the user configured for a skill but not with the exact configured skill like 1-10.
    Such a report of all the users with their actual configured skills would be extremly helpful.
    BR
    Michael

    Hi Brian,
    thank you for your answer.
    I just tried this SQL at UCCX server at getting a good output:
    run uccx sql db_cra select s.skillname, rsm.competencelevel, r.resourceLoginID, r.extension, r.resourceFirstName, r.ResourceLastName,t.teamname from skill s inner join resourceskillmapping rsm on s.skillid = rsm.skillid inner join resource r on rsm.resourceskillmapid = r.resourceskillmapid join team t on r.assignedteamid = t.teamid where s.active = 't' and r.active = 't' order by s.skillname, competencelevel, resourceloginid
    I just tried to use this SQL with a perl script which is perfectly working with CUCM to transfer the output into a CSV-file.
    But this perl withc UCCX is not correclty working:
    #!/Program Files/Cisco/perl
    use strict;
    use warnings;
    use SOAP::Lite +trace => 'debug';
    use Data::Dumper;
    use MIME::Base64;
    #define variables
    my $uccxip;
    my $axl_port = "8443";
    my $user;
    my $password;
    my $desc;
    my $error_text;
    my $sql = "db_cra select s.skillname, rsm.competencelevel, r.resourceLoginID, r.extension, r.resourceFirstName, r.resourceFirstName,t.teamname from skill s inner join resourceskillmapping rsm on s.skillid = rsm.skillid inner join resource r on rsm.resourceskillmapid = r.resourceskillmapid join team t on r.assignedteamid = t.teamid where s.active = 't' and r.active = 't' order by s.skillname, competencelevel, resourceloginid";
    #get CUCM IP, username and password
    print "Communications Manager IP: ";
    $uccxip = <>;
    print "AXL Username: ";
    $user = <>;
    chomp($user);
    print "AXL User Password: ";
    $password = <>;
    chomp($password);
    #set up soap
    my $cm = new SOAP::Lite
    encodingStyle => '',
    uri => 'http://www.cisco.com/AXL/API/1.0',
    proxy => "https://$uccxip:$axl_port/axl/" ;
    #disable certificate check
    BEGIN { $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0 }
    #authenticate to CUCM
    $cm = Login($cm,"$user","$password");
    #axl request
    my $axldata = SOAP::Data->name( "sql" => $sql );
    my $res = $cm->executeSQLQuery( $axldata );
    #show the returned value
    my $file = "UCCX_skills.csv";
    open(FH, "> $file") or die "\nCan`t open the file $file\n";
    unless ($res->fault) {
    my( $reply ) = $res->paramsall();
    $desc = $reply->{row};
    foreach(@$desc) {
    print FH "$_->{skillname}\;";
    print FH "$_->{competencelevel}\;";
    print FH "$_->{resourceLoginID}\;";
    print FH "$_->{extension}\;";
    print FH "$_->{resourceFirstName}\;";
    print FH "$_->{resourceFirstName}\;";
    print FH "$_->{teamname}\;";
    close(FH);
    else
    $error_text = $res->faultcode.' '.$res->faultstring."\n";
    print $error_text
    sub Login
    $cm->transport->http_request->header (
    'Authorization' => 'Basic ' . encode_base64("$user:$password", ''));
    return $cm;
    Do you know such perl and why it`s not working correcly with UCCX?
    Or is there any other possibilty to get the SQL into a CSV-file?
    BR
    Michael

  • IPCC Express IllegalAccessException when re-skilling agents

    I have recently adopted an IPCC Express version 4.0(5) system as part of changing jobs. I am finding that supervisors on the system are receiving the following error when trying to re-skill and agent through Subsystems -> RmCm -> Resources:
    Error:IllegalAccessException
    This doesn't always happen. It is intermittent. I went to see the behavior as demonstrated by one of our call center supervisors. I saw her re-skill two agents with no issue and then receive the error several times when trying to re-skill the third. We went to my computer where I tried. The re-skill was successful. We went back to her machine and re-skilled the same agent, and it worked. The IPCC Express (CRS) server is here in the same building that we are in, so it shouldn't be any kind of time-out due to latency.
    I queried the error on the support forums and the Cisco support site and found nothing related to this particular issue. Any thoughts?
    Thanks

    Hi
    This issue might require indepth trace analysis.
    I will request you to open a case with TAC in this regard
    Thank you
    Anuj

  • Help setting validation based on route selected

    If the LC form only has one submit button, how do you set a validation on submit based on the route selected when running forms in workspace?
    For example, if users have the option to Approve or Reject a form, can you determine which route they have selected and validate fields accordingly? So that if "reject" is selected we can validate that the reject comment field was completed, and if "approve" is selected we can validate that the form was signed?  Is there some property of the submit button or process field that makes this distiction?
    Thanks for your help!

    You can use a JavaScript if-else statement on the preSubmit event of the button. Do a check to see which of the fields are populated, then perform the required action.
    You could even hide the buttons, then if the user fills in a comment in the reject field, you simply show the reject button and keep the approve button hidden. You could have a pop-up when the form opens informing the user of the document's steps / process.

  • Templates for a skills-based assessment following a simulation

    Does anyone have a template they can share for a skills-based assessment? I have already done my simulation but would like to gather some templates for a performance-based or skills-based assessment... Would really appreciate it. THanks!

    If the candidate had all the correct attributes then it could indeed be an option.
    Regards
    Peter

  • Content Based Routing in ESB

    Hi All ,
    I needed some help on the content based routing feature in ESB .
    I have an ESB Process in which Data is extracted from a Database(using Select operation) and I have a column X based on whose content I want to invoke the next set of target services . I had assumed having 3 different routing rules with the Filter expression based on the content of X will do the work .This works only when I have one record for a batch of records it doesnot work .
    Wanted to know how does it evaluate for a scenario where we have multiple records in a payload with the value of the column on which we are doing content based routing varrying across the payload ?
    Thanks in advance.

    Hi,
    As James stated esb is processing the incomming recordset as one message so it applies your xpath expression to that message as a whole. Anyway, in your case, if you want to process records from a database table one record at the time i would go for the db polling mechanism and change my database model to include a logical delete column (eg a column processed which contains a Y or a N). You can not split a multiple record message in esb itself into separate messages for each record.
    Kind Regards,
    Andre

  • IPCC Express to Enterprise

    Our company has recently purchased IPCC Express and there seems to be a lot of limitation to reporting and functionality. We were told that we are able to upgrade to Enterprise. Is there a document out there that outlines the features of each. A pros vs cons of upgrading. If we upgrade to Enterprise can we re-use the current scripting, CSQ, skills, etc from IPCC Express and us it in Enterprise.
    Jeff R

    This link may help with your feature outline question.
    http://www.cisco.com/en/US/partner/products/sw/custcosw/ps1846/prod_bulletin0900aecd80564e23.html

  • ASA 5505 interface based routing?

    Hi,
    I got an ASA 5505 in my lab and got it working fine with one IP and various NAT and other scenarios (I'm currently refreshing my skills after a longer break on the job).
    Now, from my ISP I can get up to 5 public IPs. However, those IPs are assigned via DHCP and they are pretty random and not all in the same subnet. For testing, I created an interface outside2 on e0/1 and connected that to one of the ports of the cable gateway. The interface does get an IP and INCOMING packets go to the right place via static PAT, BUT the replies don't arrive at the client. I strongly suspect that the ASA is sending the reply packets through the other public IP on outside (e0/0) which would make sense because that's where the default route points.
    Is it possible to configure some kind of interface base routing, i.e. if a packet comes in via outside2, the corresponsing reply goes through outside2 and through the gateway outside2 receives via DHCP?
    -Stefan

    Hi Stefan,
    As I understand the traffic is coming in from outside2 going to a host-A behind the ASA.
    Host-A will reply back, but this traffic will exit out through the outside 0/0 interface since there is where you have configured the default gateway.
    In order to send the replies to client over outside2, you need to setup specific routes on the ASA through outside2 interface.
    Also remember that ASA doesn´t support Policy Based Routing(PRB), because ASA routes the traffic based on destination:
    http://www.cisco.com/c/en/us/td/docs/security/asa/asa82/configuration/guide/config/route_static.html#wp1121567
    Harvey.
    Please rate if this is the correct answer.

  • Any solutions for URL based routing

    Hi,
    I have an ASA 5505 that has 2 route (1 route connecting to MPLS VPN to HK branch office and 1 route connecting to Internet service provider). As you know, ISP in China blocking many web sites (such as facebook, youtube or etc.). So , I would like to route the traffic when the user in China office would like to browse facebook.com or youtube.com to HK ASA and egress to the internet by NAT. However, all other traffic remain to route to ISP in China, so that the Internet traffic in HK office will not be overload and the user in China can browse facebook.com or youtube.com.
    I have researched a topic of regular expression with Modular Policy Framework (MPF). I expected that if the ASA can match the traffic, I can set next hop to HK office's ASA. However, this feature does not support https so that my expectation failed. Because the login page and sometime these web site using https for encryption. I hope URL based routing work on both http and https can work.
    Do anyone have any solutions to resolve this situation? Please kindly provide it to me. I would appreiciate it if you could also provide configuration example with commands. I look forward to hearing from anyone soon. Thank you.
    Regards,
    Lapson Wong

    What you are trying to do is policy-based routing which is not supported on the ASA.  MPF is used only for inspection and QoS type serverices.
    If using a proxy is not an option, you would need to put in a router that would send the desired traffic over the WAN network.  another option, though I would not recommend it, is to find all the IPs of facebook, youtube, etc. and add static routes on the ASA pointing out the WAN interface.

  • Content based routing in PI 7.1?

    Hi Guys,
    For the normal content based routing in PI 7.1 in the receiver determination step once i select the conditin and in the condition editor to choose the filed, i dont see any interface under the xpath.
    I dont have any search help option in the xpath column
    any help or suggestions would be appreciated
    Thanks,
    Raj

    Hi Raj,
    Try the steps which I am giving below, although it's a workaround and don't know the exact reason why it is failing.
    1. Open your Outbound Message Interface (which you are using in your Receiver Determination) in IR, edit it and change the Interface pattern (which is there just below the category "Outbound") to "Stateless (XI30 - Compatible)" , save it activate it.
    2. Follow the same step for your Inbound Message Interface. Change the Interface Pattern from "Sateless" to "Stateless (XI30 - Compatible)" .
    3. Go to ID. Remove your Outbound and Inbound Message Interface from their respective Business Service/Comp and add it again.
    4. Create your your receiver determination again using the Outbound and Inbound MI you have changed.
    5. Open condition editor of your receiver determination.You should be able to see your Message Interface and can choose the XPath.
    Follow the above steps carefully. It took me an hour to find this workaround. Let me know if it works.
    Thanks
    Amit

  • Content based routing in receiver determination.

    hi,
            how to do content based routing in receiver determination based on value of  of a variable of target structure?
    Miten.

    ths is what you are looking for
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers

  • IPCC Express - CRS 5.0.2 - IVR is not working

    Dear All ,
    we have IPCC Express 5.0.3 integrated with CUCM 5.1.3 , IVR  was working fine and suddenly stopped .
    when i am dialing Piolet Number it ringing but not hitting to the IVR.
    can any one advice please .

    Hi Behrang,
    Go to your Safari menu bar click Safari / Preferences then select the Security tab. Click: Show Cookies
    Delete all Google / Gmail related cookies.
    Quit Safari.
    Open a Finder window. Select your Home folder in the Sidebar on the left. It has a small house icon. Now on the right open the Library folder, then the Caches folder, then com.apple.Safari folder.
    Move the cache.db file from the com.apple.Safari folder to the Trash.
    Relaunch Safari and see if that makes a difference.
    If not, from your Safari menu bar click Safari / Reset Safari. Select the top 5 buttons. Click Reset. Relaunch Safari and try Gmail again.
    Carolyn

  • Chart based on Select list with submit Lov problem

    Hi,
    I have one page with interactive report showing username with links, date and
    database actions.
    Another page contains one region having flash chart based on select list with submit Lov.
    The lov is created by dynamic query.
    Every time when i click the 1st page report link, the 2nd page lov is populating the value automatically. But the problem is chart displays NO DATA FOUND message though the LOV has many values.
    I don't want to display any null values so set to NO for LOV
    I tried to write Before header computation (PL/SQL Function Body) to set the lov value, but the query is displayed as such.
    I don't want to assign any static default value also as the values are dynamic for every link.
    The following is my Before header computation of Select list with submit (Item name is p11_schema). (PLSQL Function Body)
    begin
    if :p11_schema is null then
    return 'select distinct owner schema1, owner schema2 from auditing
    where access_date=' || :p11_access_date
    || ' and username=' || :p11_username
    || ' order by owner';
    end if;
    end;
    This is my chart query.
    select null link, obj_name label, sum(sel_count) "Select", sum(ins_count) "Insert", sum(upd_count) "Update", sum(del_count) "Delete" from auditing
    where username=:p11_username
    and access_date=:p11_access_date
    and owner=NVL(:p11_schema, OWNER)
    group by owner, obj_name
    Example: If there more than one records in the lov, the graph should display the 1st record. When i select another record, the chart accordingly display the selected values. But inially it should not display "NO DATA FOUND" message.
    I tried using all the combinations of computation type for the lov, SQL query ( I could not use if conditon then), PLSQL expression, PLSQL function body. But it does not work out.
    Can anyone please help me out.
    Thanks.

    Hi Scott,
    Thanks for your reply.
    I found out the solution for this problem as below.
    But i did it in different way to tackle the dynamic query wich returns more than one record using rownum always the 1st record when it is empty instead of assigning constant (static) value like '1'. And i am returning LOV itself for both null or not null condition as below.
    Declare
    q varchar2(4000);
    begin
    if :p11_schema is null then
    q:='select distinct owner schema from auditing';
    q:=q || ' where username=:p11_username ';
    q:=q || ' and access_date=:p11_access_date ';
    q:=q || ' and rownum<2 order by owner';
    Execute immediate q into :p11_schema USING :p11_username, :p11_access_date;
    end if;
    return :P11_SCHEMA;
    end;
    Thanks.

Maybe you are looking for