VA to live agent transfer using skill level

User504760
ServiceNow Employee
ServiceNow Employee

Hi,

 

I would like to do a virtual agent transfer to a live agent taking into consideration skill level.

 

If I just want to check if the agent has a skill then I can use 

vaVars.LiveAgent_mandatory_skills = 'e52b26e41ba2bd105cc4206a274bcbe1'; in my VA conversation where the sys_id is the sys_id fo the skill.
then when I use vaSystem.connectToAgent(); it adds this skill to the interaction and advanced work assignment is taking this into consideration when assigning the interaction to an agent.
 
But now I have a skill with different skill levels and I want to look for an agent that not only has the skill but also have it in a specific skill level.
I have no idea how to send the skill level across from VA to advanced work assignment.
 
any ideas will be most helpful
1 ACCEPTED SOLUTION

Hiya,

The way I have described is the out of the box way to do it, and works perfectly within my PDI on Vancouver. I'm unsure if there were changes to the platform at some point that introduced this:

 

Please verify your sysId's are correct.

As an example, using the demo data on a Vancouver PDI. This script to set the live agent variable:

Drothery_0-1700557908933.png

Correctly leads to the record being created in the interaction_m2m_skill table at the correct level:

 

Drothery_1-1700557991604.png

 

This is all controlled by a business rule on the interaction_context table 'Update m2m skills by interaction context'. If you take a look at this business rule, you will see that it calls the method processSkills on the script include ChatInteractionUtil(), and if you take a look at that script you should see: (unless your instance version doesn't have this capability yet)

Drothery_2-1700558219059.png

 

You could also create a topic block to set skills/levels, and simply creating a record(s) on the interaction_m2m_skill table manually through script.

 

All you need is:

  • Current interaction sysId
  • Skill sysId
  • Skill level sysId

View solution in original post

5 REPLIES 5

Drothery
Giga Guru

Hello,

 

You should be able to apply both the skill and skill level using a colon seperated value like so:

<skill sysID>:<skill level sysID>
e.g.: 76d51f26b3603300290ea943c6a8dcc1:e41a08d6b3332300290ea943c6a8dcdf

User504760
ServiceNow Employee
ServiceNow Employee

Hi Drothery,

Thanks for answering.

I have just tried this but it does not seem to have any impact.

My skill of course has a reference to a skill level, and that skill level record then has 3 child records that represent 3 levels of low, medium, high

 

I have tried 2 things:

1. <skill id>:<sys id of the specific level I wanted> - for example 

vaVars.LiveAgent_mandatory_skills = '6ba77ecc871e3110ec5b65b80cbb352d:06187200875e3110ec5b65b80cbb358a';
2. <skill id>: <sys id of the skill level>:<sys_id of the specific level i wanted>
vaVars.LiveAgent_mandatory_skills = '6ba77ecc871e3110ec5b65b80cbb352d:96b77ecc871e3110ec5b65b80cbb35fc:90c7facc871e3110ec5b65b80cbb35ce';
 
In both cases when I look at the interaction:
- in the context variables I can see the exact value I set was correctly showing in the related list
- In the skills related list I could see the skill but the skill level stayed empty.
 
If you have any further ideas on something I can try it would be great

Hiya,

The way I have described is the out of the box way to do it, and works perfectly within my PDI on Vancouver. I'm unsure if there were changes to the platform at some point that introduced this:

 

Please verify your sysId's are correct.

As an example, using the demo data on a Vancouver PDI. This script to set the live agent variable:

Drothery_0-1700557908933.png

Correctly leads to the record being created in the interaction_m2m_skill table at the correct level:

 

Drothery_1-1700557991604.png

 

This is all controlled by a business rule on the interaction_context table 'Update m2m skills by interaction context'. If you take a look at this business rule, you will see that it calls the method processSkills on the script include ChatInteractionUtil(), and if you take a look at that script you should see: (unless your instance version doesn't have this capability yet)

Drothery_2-1700558219059.png

 

You could also create a topic block to set skills/levels, and simply creating a record(s) on the interaction_m2m_skill table manually through script.

 

All you need is:

  • Current interaction sysId
  • Skill sysId
  • Skill level sysId

User504760
ServiceNow Employee
ServiceNow Employee

Hi,

I was testing this with a Utah instance.

Following your last reply I launched a new vancouver instance and now I can get this to work.

 

Not sure if this is really a version issue or if there is something else not configured correctly on my Utah instance.

But since my customer is upgrading not sure this is important

 

Thanks so much, I have been chasing this for 2 weeks and finally is works 🙂