lcreely | 2024-02-14 16:54:54 UTC | #1
Is there a way to check if a user is in a group or has a specific skill assigned to them? I would like to run a data action from a script and have it return true or false. This would then allow my script to decide what should be shown to the agent
Jason_Mathison | 2024-02-14 21:46:51 UTC | #2
I would suggest starting with the API explorer to figure out if any routes exist that can get you what you need
https://developer.genesys.cloud/devapps/api-explorer
For example, this route might be helpful: GET /api/v2/routing/skillgroups/{skillGroupId}/members. Get skill group members
However, I would caution that you typically don't want to hit a 'configuration' endpoint as part of your production work, as they may not be fast enough to provide a good experience.
--Jason
lcreely | 2024-02-15 13:51:10 UTC | #3
I'm having a look at routing skills: /api/v2/users/{agent id}/routingskills which returns the following
{
"entities.skillUri": [
"/api/v2/routing/skills/ea77822d-c245-48c2-83df-4f79970ae6f8",
"/api/v2/routing/skills/9ada3bfe-3000-4f9c-b84b-00b3404a8931"
],
"entities.selfUri": [
"/api/v2/users/bfad8bbc-e9ef-435e-ba8a-9b6479933413/routingskills/ea77822d-c245-48c2-83df-4f79970ae6f8",
"/api/v2/users/bfad8bbc-e9ef-435e-ba8a-9b6479933413/routingskills/9ada3bfe-3000-4f9c-b84b-00b3404a8931"
],
"entities.id": [
"ea77822d-c245-48c2-83df-4f79970ae6f8",
"9ada3bfe-3000-4f9c-b84b-00b3404a8931"
],
"pageCount": 1,
"pageNumber": 1,
"firstUri": "/api/v2/users/bfad8bbc-e9ef-435e-ba8a-9b6479933413/routingskills?pageSize=25&pageNumber=1",
"lastUri": "/api/v2/users/bfad8bbc-e9ef-435e-ba8a-9b6479933413/routingskills?pageSize=25&pageNumber=1",
"selfUri": "/api/v2/users/bfad8bbc-e9ef-435e-ba8a-9b6479933413/routingskills?pageSize=25&pageNumber=1",
"pageSize": 25,
"entities.name": [
"Vulnerable",
"Vulnerable Customer"
],
"total": 2,
"entities.proficiency": [
0,
0
],
"entities.state": [
"active",
"active"
]
}
Is there a way to pull out entities.name and then use Apache Velocity to loop through and check for a certain name?
My current response is:
{
"translationMap": {
"skillNames": "$.entities.name"
},
"translationMapDefaults": {},
"successTemplate": "${skillNames}"
}
but it gives me the following error: "message": "Failed while processing the translation map. Could not resolve value for the key: 'skillNames' and no default value was configured. Additional details: Expected to find an object with property ['name'] in path $['entities'] but found 'java.util.ArrayList'. This is not a json object according to the JsonProvider: 'com.jayway.jsonpath.spi.json.JsonSmartJsonProvider'.",
Apologies I'm new to Data Actions but eager to learn, I haven't been able to find any documentation or examples that handles an array of strings
Jason_Mathison | 2024-02-15 14:57:52 UTC | #4
You can have your translationMap look for an entry with the specific name that you are looking for.
So on this page: https://www.javainuse.com/jsonpath f, for example filtering like this: $.topping[?(@.id=="5001")].id
As to the error that you are getting, since entities is an array, you probably needed something like $.entities[*].name
--Jason
lcreely | 2024-02-16 12:04:58 UTC | #5
Yeah that worked:
{
"translationMap": {
"skillNames": "$.entities[?(@.name == 'SingleClientView')].name"
},
"translationMapDefaults": {
"skillNames": "DefaultSkillName"
},
"successTemplate": "{\"Skill\": ${skillNames}}"
}
system | 2024-03-18 12:05:52 UTC | #6
This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.
This post was migrated from the old Developer Forum.
ref: 24648