AppBazaar
...
Connect Applet
Distribute Calls Equally
6 min
you might have noticed this feature in the connect applet the ideal goal of this feature is to route an equal number of calls to all the agents in a group in other words, enabling this option routes the calls in a “ round robin ” manner among all the agents in a group obviously, it also considers the availability of the agents at the moment the call arrives let us say, there are four people in a group ajay, bhaskar, chaitanya, and dev with their numbers being 011xx, 022xx, 033xx, and 044xx respectively when the first call lands on the vn which is supposed to be equally distributed between the agents in this group, the system will first stack the agent numbers which are free (in this case all four) in ascending order of agent numbers and route the call to the agent with the first number in the stack, in this example it is ajay it will also mark ajay’s position in the stack as the lastmarkedagent ie, the last called agent for future reference if the same group is present in different flows then there will be different lastmarkedagent for each flow status of agents prior to the 1st call ajay 011xx free bhaskar 022xx free chaitanya 033xx free dev 044xx free stack for the 1st call ajay 011xx the first call routed to ajay and ajay is the lastmarkedagent now bhaskar 022xx free chaitanya 033xx free dev 044xx free now when the second call comes in, the stack will rearrange itself with all numbers above the last marked agent moving to the end of the stack please note in case the lastmarkedagent number itself is busy, all free agent numbers which come above it when ascendingly arranged in the original stack will move to the end of the stack in the example here, ajay will be pushed below dev and bhaskar is the agent to whom the call will be routed, and bhaskar is marked as the last marked agent please note, that it is now up to bhaskar whether he answers the call or not which is handled as a standard flow of the connect applet which moves on to the next free agent if bhaskar does not pick up the call in a while status of agents prior to the 2nd call ajay 011xx free lastmarkedagent bhaskar 022xx free chaitanya 033xx free dev 044xx free stack for the 2nd call bhaskar 022xx the second call routed to bhaskar and bhaskar is the lastmarkedagent now chaitanya 033xx dev 044xx ajay 011xx now let's say after n calls came into the system, the status looks like the below status of agents prior to (n+1)th call ajay 011xx busy bhaskar 022xx free chaitanya 033xx free dev 044xx free lastmarkedagent when the (n+1)th call lands, ajay should be marked as the lastmarkedagent but here since ajay is busy, the stack will not consider him as per the stack, the call will now route to bhaskar it's important to remember that the stack only consists of agent numbers that are at that point in time free to receive calls stack for (n+1)th call bhaskar 022xx (n+1)th call is routed to bhaskar and bhaskar marked as lastmarkedagent chaitanya 033xx dev 044xx when the (n+2)th call lands, first both ajay and bhaskar will be pushed to the end of the stack (since the lastmarkedagent is bhaskar), then chaitanya is marked as the lastmarkedagent and the call is routed to him status of agents prior to (n+2)th call ajay 011xx free bhaskar 022xx free lastmarkedagent chaitanya 033xx free dev 044xx free stack for (n+2)th call chaitanya 033xx lastmarkedagent (n+2)th call routed to chaitanya dev 044xx ajay 011xx bhaskar 022xx this way the equal distribution logic ensures that the calls are routed in a perfect ‘round robin’ manner, and the sorted list keeps moving in a round path there are a couple of scenarios that need to be highlighted here scenario 1 the agent is in an “off” state and switches to “on” exotel provides the option to individual agents to mark themselves as not available to receive calls by marking themselves as “off” agents who have marked themselves as “off” will not be considered in the stack itself so there can be a scenario where an agent was initially in an “off” state and now marks themselves as on, then the entry point for the person in the next calculated stack will be the place where they would fit if all the agent numbers were arranged in ascending order let us have a look at how this works let us consider the scenario as shown below here chaitanya is off naturally, the running stack would not have included him so the current stack at the end of the nth call looks like below, while chaitanya is in off state dev 044xx free lastmarkedagent | chaitanya 033xx is in “off” state currently ajay 011xx free bhaskar 022xx free let's say now chaitanya marks themselves as “on” he enters the stack on top of the number which is immediately succeeding them in ascending order so the stack will now look like this chaitanya 033xx free dev 044xx free lastmarkedagent ajay 011xx free bhaskar 022xx free so when the (n+1)th call comes in all the numbers from the top till the lastmarkedagent are moved to the end of the stack en block the stack will now look like this ajay 011xx free (n+1) the call was routed to ajay and marked as lastmarkedagent bhaskar 022xx free chaitanya 033xx free dev 044xx free here, both chaitanya and dev move to the end of the stack ajay is marked as the lastmarkedagent and the call is routed to him scenario 2 “sticky agent” option is enabled exotel allows generating call flows which when enabled, every time the end user calls in the vn will connect them to the agent he has earlier spoken to in this case, let us go back to the stack that we had at the end of the nth call dev 044xx free lastmarkedagent ajay 011xx free bhaskar 022xx free chaitanya 033xx free now, the (n+1)th call comes in from a customer whose sticky agent is chaitanya in this case, chaitanya will be promoted to the top when the stack is calculated and the call will be routed to him however, dev will still continue to be the lastmarkedagent chaitanya 033xx free (n+1)th call routed to chaitanya dev 044xx free lastmarkedagent ajay 011xx free bhaskar 022xx free just like in scenario 1, when the (n+2)th call would come in, then both chaitanya and dev would move to the end of the stack
🤔
Have a question?
Our knowledgeable support team and an awesome community will get you an answer in a flash.
To ask a question or participate in discussions, you'll need to authenticate first.