cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
581
Views
5
Helpful
4
Replies

Can use some help with UCCE/ICM 11.6 dynamic IF node

Bill Mungaven
Level 1
Level 1

I'm using UCCE 11.6, 2 Roggers, 4 Finesse PGs, 2 CVP/VXML servers, 2 VVB

 

I'm trying something new where I'm trying to write a generic queue node to use with 10 different skill groups. I have a health department which has 5 different clinics each with an English and Spanish group of agents. Each clinic and language is a separate skill group. This is for a health care clinic (Department of Health Services, DHS, Primary Care Center, PCC). I have 10 separate skill groups: DHS.PCC.Adult.Medicine.English, DHS.PCC.Adult.Medicine.Spanish, DHS.PCC.Pediatric.Clinic.English, DHS.PCC.Pediatric.Clinic.Spanish, etc. Rather than writing 5 separate queue scripts, one for each clinic and using IF nodes to route to the proper language "Queue to skill group" node, I'd like to write 1 generic queue script and feed in the skill group and language to route the calls. I'm using PV1 for the clinic name, Adult.Medicine, Pediatric.Clinic, etc. and PV4 for the language, English or Spanish. The call first lands in a CVP script where the caller selects the language and clinic name and I'm passing that back to the ICM script. The ICM script has a series of IF statements based on the clinic name selected which routes the call through a call type then the call is sent to the generic queue script.

 

Within the queue script, I want to use an IF node to check if there are any agents logged on. If agents are logged on, send the call to an agent. If no agents are logged on, do something else.

 

In the IF node formula, I'm using this formula to check if any agents are logged on: concatenate("SkillGroup.DHS.PCC.",Call.PeriperalVariable1,".",Call.PeripheralVariable4,".LoggedOn)==0.

 

When I hit this node, even if there are agents logged on, it takes the true path indicating no agents are logged on. If I change the IF node to SkillGroup.DHS.PCC.Adult.Medicine.English.LoggedOn==0, it works every time, calls are sent to an agent. Something in my logic/formula isn't evaluating correctly or my formula is invalid.

 

I also tried this formula which didn't work either: (concatenate("SkillGroup.DHS.PCC.",Call.PeriperalVariable1,".",Call.PeripheralVariable4,".LoggedOn))==0

I also tried assigning the skill group name to PV7 (concatenate("DHS.PCC.",Call.PeripheralVariable1,".",Call.PeripheralVariable4) and passing that in using concatenate("SkillGroup.",Call.PeripheralVariable7,".LoggedOn)==0 but that didn't work either.

 

I was trying to find a log somewhere in UCCE which showed me if the concatenation formed properly or where the logic is breaking down but I don't know where to look.

 

Is what I'm trying to do even valid? I've tried a number of variations of the formula to see if I could find the right combination of things to get it to evaluate properly. 

 

I used similar concatenate statements to dynamically set call types and that works fine. If I bypass the IF node to check if agents are logged on or hardcode the skill group in the IF node, the "Queue to Skill Group" nodes work fine for dynamically routing the calls to the appropriate skill group based on the PV1 and PV4 values. It's just trying to determine if agents are logged in using the IF node that isn't working.

 

I appreciate any and all help.

1 Accepted Solution

Accepted Solutions

Should have provided an answer, so here's how you can do it:

 

If PV=X and PV=Y, then go to your specific If node that has the specific check you want to make. The scripting is going to be a bit messier, but still better than building one script per clinic.

 

david

View solution in original post

4 Replies 4

You can't do dynamic IF statements.

 

david

Should have provided an answer, so here's how you can do it:

 

If PV=X and PV=Y, then go to your specific If node that has the specific check you want to make. The scripting is going to be a bit messier, but still better than building one script per clinic.

 

david

Bill Mungaven
Level 1
Level 1

I found an old forum post from 2017 (https://community.cisco.com/t5/contact-center/dynamic-variable-syntax-in-icm-script/td-p/3196368) which suggested concatenating the values to make up the skill group name then plugging that into the IF node with the syntax SkillGroup.{Call.user.temp}.LoggedOn but that gives me an error of undefined symbol: SkillGroup.. 

David, thanks for the suggestion. I appreciate your time.

Thanks for the reminder I actually mispoke. There is a PQ.{PV}.LoggedOn dynamic statement, but there is no such thing for skill groups. I recommend you move to PQs are they add greater granularity, but it's totally up to your business.

 

david