- Newest
- Most votes
- Most comments
While the "Check Staffing" block in Amazon Connect is limited to checking queue status, it's possible to create a custom solution using AWS Lambda and Amazon Connect APIs to check if agents with specific proficiencies are staffed. However, based on the current available APIs, this task is more complex than it might initially seem.
You're correct that there are only four API calls related to proficiencies: ListUserProficiencies, UpdateUserProficiencies, DisassociateUserProficiencies, and AssociateUserProficiencies. These APIs allow you to manage user proficiencies, but they don't directly provide information about an agent's current status.
To create a Lambda function that checks if agents with a particular proficiency are staffed, you would need to combine multiple API calls. Here's a high-level approach:
- Use the ListUserProficiencies API to get all users with the specified proficiency.
- For each user with the proficiency, use the newly introduced SearchAgentStatuses API to check their current status.
- Determine if any of the agents with the required proficiency are in an "available" or "staffed" state.
The SearchAgentStatuses API allows you to search for agent statuses by various criteria, including agent ID. This could be used to check the current status of each agent with the required proficiency.
However, there are some limitations to this approach:
- The SearchAgentStatuses API is relatively new and may not be available in all regions.
- This method would require multiple API calls, which could become slow and inefficient if you have a large number of agents.
- The Lambda function would need to be triggered regularly to provide up-to-date information, as agent statuses can change frequently.
Your suggestion to submit a feature request for an addition to the "Check Staffing" block is a good idea. Having native support for checking staffing based on proficiencies would be more efficient and easier to implement than the current workaround.
In the meantime, while it's possible to create a Lambda function to check agent staffing by proficiency, it would be a complex solution that might not perform well in large-scale environments. It might be more practical to continue using routing profiles, even if it requires creating multiple combinations, until a more efficient solution becomes available.
Sources
Amazon Connect launches search API for agent status - AWS
Flow block: Check staffing - Amazon Connect
answered 2 years ago
I suggest you to work this out with a Connect SA, as there is a feature now to assign proficiencies to agent directly not using Routing Profile. This gives another level of routing strategy that you do not need to create unique Routing Profiles against Queues with different priority/delay settings.
https://docs.aws.amazon.com/connect/latest/adminguide/proficiency-routing.html
Once this is setup, if you route a call to SALES, and the need of the customer is product1 instead of productB. And you want to route this call to agent that is proficient in product1 with a proficiency level of 5.
But during the day, you want to know if you queue a call to SALES that requires product1 proficiency level of 3 or higher. How many agents do I have right now? You will need to use GetCurrentMetricData. https://docs.aws.amazon.com/connect/latest/APIReference/API_GetCurrentMetricData.html#API_GetCurrentMetricData_Examples
Look at the example: "Sample GetCurrentMetricData Request Using RoutingStepExpression" The example shows: "RoutingStepExpressions": [ "{"attributeCondition": "proficiencyLevel":1.0,"comparisonOperator":"NumberGreaterOrEqualTo","name":"Location","value":"Earth"}}" ]
With this filter, and if you return AGENTS_ONLINE, AGENTS_AVAILABLE, you will know if agents are staffed at a certain proficiency level right now. And can make other routing decision or change the Routing Steps differently before you put a call into queue. Like lowering the proficiency requirements, etc.
answered 2 years ago
Relevant content
asked a year ago
asked 2 years ago
asked 2 years ago
