'How to self throttle large volume of calls hitting a queue using contact flow for AWS connect

If you are using AWS connect as a contact center solution one problem that happens often is when TOLL free number would receive a high amount of call volume that your currently staffed agents would not be able to handle it.

There are ways to handle it by setting Queue limits which can overflow to other queues or branch the call flow in other directions.



Solution 1:[1]

The solution I propose is to slow the calls into the queue using the tools available in connect and not depending on external services or Lambda.

The aim of this solution is to control the call flow into the agent queue based on two metrics Agent staffed and Agents available

The below is the contact flow structure and I am going to explain how each of them work

enter image description here

The first block Set working queue sets the Queue where the calls should be going to.

The second block Get queue metrics retrieves the real-time queue metrics

Retrieve metrics from a queue so you can make routing decisions. You can route contacts based on queue status, such as number of contacts in queue or agents available. Queue metrics are aggregated across all channels by default and are returned as attributes. The current queue is used by default. Learn more

The third block Check contact attributes is where I am checking the number of Agents Staffed

This is how the block looks on the inside

enter image description here

I am retrieving the Queue metrics to get the number of Agents Staffed

Now lets assume there are more than 100 agents staffed, which means there are more than 100 agents logged in and could be any status on their client.

The Check contact attributes would follow the first branch and go the second Check contact attributes block

This is how the second Check contact attributes looks on the inside.

enter image description here

Here also I am retrieving the Queue metrics to get the number of Agents available.

In this section I am checking how many agents are in Available status to answer the call.

If the number of Available agents are less than or equal to 20 the call flows back to the Get queue metrics block to follow the logic again.

Here it is important to use a Play prompt to play a audio for 5 seconds before looping it back. If I do not insert this delay / prompt the calls will move too fast for the contact flow to handle and it stops working for any call hitting the flow.

Now if the number of Available agents are greater than 20 the call flows into the Transfer to queue block after the Check staffing block.

This same logic applies to the other blocks based the number of agents staffed are in different sections as seen the picture above.

With this solution I do not have to worry about how many agents are actually working at any time in the day. The contact flow will branch the calls based on Agents staffed and only send in the calls if there are X amount agents Available to answer the call.

Hope this solution helps for any one looking for a simple solution

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Abilash Amarasekaran