Routing using agent proficiencies - Amazon Connect

Routing using agent proficiencies

Routing using proficiencies is achieved by using the standard queue based routing construct. For more information on routing, see How routing works.

Routing using agent proficiencies is set up in 4 steps
  • Predefined attributes

    • In this step you can define the routing relevant predefined attributes that you want to use to make a routing decision. The predefined attributes created here can be used individually or combined using the AND or OR operators to form a routing step.

  • Assign proficiencies to agents

    • You can select predefined attributes and associate them with an agent. All available agents that meet a routing step requirement of a contact within the same queue will be considered for a match.

  • Set routing criteria

    • Using a flow block, you can set a routing criteria manually or dynamically.

  • Transfer to queue

Proficiency routing 4 step chart.

Example of how to use agent proficiencies for routing

Consider a scenario where a contact enters a queue General Inbound Queue and two agents, Agent1 and Agent2, are available. A customer who speaks French is seeking assistance regarding AWS DynamoDB. This is their second time calling regarding the same issue and you would prefer to match them with an expert in AWS DynamoDB. In order to preserve the customer experience, you wish to follow the following routing requirements:

  • First look for an agent who is highly proficient in French (>=4) and an expert in AWS DynamoDB (>=5) for the first 30 seconds.

  • If an agent is not found at this time, look for an agent who is highly proficient in French (>=3) and highly proficient in AWS DynamoDB (>=5) for the next 30 seconds. The requirement for French is relaxed to further expand the pool of eligible agents to meet the requirement.

  • If no join is made at this point, look for an agent who is proficient in French (>=3) and highly proficient in AWS DynamoDB (>=4) and keep looking until an agent is found. Here the AWS DynamoDB requirement is relaxed to expand the pool of eligible agents who meet the requirement.

    Note

    For regulatory or compliance use cases you can use the Never Expire option for the expiration timer to ensure any agent who is joined on the contact meets a minimum requirement.

To route the contact to the above requirements, use the following steps:
  1. Create Predefined Attributes: For example, add Technology as a predefined attribute in User Management, Predefined Attributes with AWS DynamoDB as one of the values.

    Name Value

    Technology

    AWS Kinesis

    Technology

    AWS DynamoDB

    Technology

    AWS EC2

    Technology

    AWS Neptune

    Note

    Connect:French is already available as a value in system attribute Connect:Language as a predefined attribute. You can use this in your routing criteria. You can also add up to 128 customer languages as values to Connect:Language.

  2. Associate proficiencies to users: We have 2 agents, Agent1 and Agent 2, who speak French and are proficient in AWS DynamoDB as shown below. In User Management, Show Advanced Settings associate the following proficiencies to the Agent1 and Agent2.

    Agent Name Predefined Attribute Value Proficiency Level

    Agent1

    Technology

    AWS Kinesis

    2

    Agent1

    Technology

    AWS Dynamo DB

    5

    Agent1

    Technology

    AWS EC2

    4

    Agent1

    Language

    French

    3

    Agent1

    Language

    English

    4

    Agent2

    Technology

    AWS Dynamo DB

    3

    Agent2

    Technology

    AWS EC2

    5

    Agent2

    Technology

    AWS Nepture

    5

    Agent2

    Language

    French

    4

    Agent2

    Language

    English

    3

  3. Set routing criteria: In the Set routing criteria Flow block, you can create the following routing criteria manually or dynamically using JSON that is created by invoking a Lambda function as shown in a potential Inbound flow. Create the following routing criteria:

    1. Step 1: connect:Language(connect:French) >=4 AND Technology (AWS DynamoDB) >=5 [30 seconds]

    2. Step 2: connect:Language(connect:French) >=4 AND Technology (AWS DynamoDB) >=4 [30 seconds]

    3. Step 3: connect:Language(connect:French) >=3 AND Technology (AWS DynamoDB) >=4 [Never expire]

    The following is an example of an inbound flow where this can be configured

    The following is an example of an inbound flow where this can be configured.
  4. Transfer to queue: Once the contact is transferred to the “General Inbound Queue”, Connect will immediately start executing the routing criteria. The following steps will occur before the contact is joined to Agent1.

    1. Routing Step 1: For the first 30 seconds (no match) as neither agent has an AWS DynamoDB proficiency >= 5, Connect will not match with any agent.

    2. Routing Step 2: In the next 30 seconds (no match) as neither agent is both highly proficient (>=4) in both French and AWS DynamoDB

    3. Routing Step 3: As soon as the previous step expires, Connect will find the available agent, Agent1 (French 3, AWS DynamoDB 4) is proficient in French and highly proficient in AWS DynamoDB. Therefore, the contact will be matched with Agent1.

There is a one-click drill-down in the real-time metrics for queues table which shows you a list of the routing steps in use for active contacts on the queue. You can find the definitions for the routing step specific metrics under Real-time metrics definitions.

Contact Record, Contact Event Stream, and Agent Event Stream updates for agent proficiencies

Models have been added for proficiency routing in the following sections:

Frequently asked questions

  • Are queues still relevant?

    • Yes, queues are still necessary. The routing criteria is only activated when a contact is enqueued. Agent proficiencies provide additional control to target specific agents within a queue.

  • When should we model something as a proficiency instead of modeling it as a queue?

    • This is a business decision. You should consider the impact on the number of queues you can eliminate and consolidate while using agent proficiencies.

  • Does agent proficiencies work across all channels?

    • Yes, routing using agent proficiencies will work for all channels.

  • How do I remove a routing criteria?

    • You can interrupt a routing criteria using a customer queue flow.

    • You can also update the routing criteria this way.

  • How many times can I change a routing criteria?

    • You can change the routing criteria a maximum of 2 times, for example, a contact can have a total of 3 routing criteria. If you still need to change the routing criteria after that, you will need to change the queue (or transfer back to the same queue) which will form a new contact.

  • With agent proficiencies, will queue priority and delay operate as usual?

    • Yes, queue priority and delay will operate as they do in a non-agent-proficiencies environment.

  • Which operators are supported for creating a routing criteria?

    • The following Boolean operators are supported.

      • AND

      • OR (only 1 and this is restricted to routing criteria using the dynamic creation option only.)

    • The following comparison operators are supported.

      • >=

  • Which characters can be used for predefined attributes?

    • The pattern for predefined attribute name and value is ^(?!(aws:|connect:))[\p{L}\p{Z}\p{N}_.:/=+-@']+$. For example, it can contain any letter, numeric value, whitespace, or _.:/=+-@' special characters, but can't start with aws: or connect:.

  • Can I add the same attribute multiple times in a routing criteria?

    • Yes, you can the same attribute multiple times in a routing criteria.

  • When triggering a transfer (quick connect), is it possible to set the routing criteria?

    • You can use the Set routing criteria block in the transfer flow to set the routing criteria on the transferred contact segment. It is not possible to carry forward the routing criteria of previous contact to the new contact segment created after an agent has been joined.

  • What happens to the routing criteria if a contact is being transferred queue to queue, before it was routed?

    • The routing criteria will start from the first step in the new queue in case a contact was transferred before being joined to an agent. For this, we carry-forward the routing criteria of previous contact to the new contact segment created due to queue transfer.

  • Does the Contact Record have a snapshot of the proficiencies of the matched agent?

    • No, the Contact Record will not carry the proficiencies of an agent.

    • The Agent Event Stream will have a snapshot of the agent’s proficiencies at the time of joining.

  • Will we be able to Search for an agent by proficiency using APIs?

    • No, this is not supported.

  • What will happen if we delete an attribute if it is on an active contact?

    • You can delete an attribute that is used on active contacts. However, any routing step with that attribute will not find a matching agent and the contact will stay in the queue till the routing criteria expires.

    • All new contacts with that attribute will start taking the error branch on the Set Routing Criteria block in the contact flow.

  • What happens to the routing criteria steps / expiration when an agent rejects a call?

    • Routing considers a join to be complete when an agent accepts the contact and a join is completed. If an agent rejects a call / contact the routing engine will continue to run through the routing criteria with the timer continually running.

  • Will the agent who rejected the step be part of the pool when routing runs again?

    • Yes, the agent will continue to be a part of the pool when routing runs again.

  • How will security work for Agent Proficiencies?

    • Refer to the permissions sections on the agent proficiencies page to understand the security permissions required to set up and use the feature.

  • Are historical metrics available?

    • No, historical metrics are not available in analytics.

    • The Contact Record, Agent Event Stream, and Contact Event Stream contain all the required information.

  • Where can I find a sample Lambda function for setting routing criteria?

    • You can find a sample Lambda Function for setting routing criteria on the Set Routing Criteria flow block section. For more information, see Flow block: Set routing criteria.

  • What happens to the routing criteria set on a contact if the contact is being transferred to an agent queue?

    • The routing criteria has no effect on contacts present in an agent queue. If a contact with routing criteria is transferred from an agent queue to a standard queue, then the routing criteria will be forwarded to the new contact segment created due to queue transfer.