Genesys Cloud - Main

 View Only

Sign Up

Expand all | Collapse all

How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

  Thread closed by the administrator, not accepting new replies.
  • 1.  How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-19-2023 04:00
    No replies, thread closed.

    How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Like,

    The First call goes to "Queue A"

    The second call goes to "Queue B"

    The third Call goes to "Queue A" and so on.


    #ArchitectureandDesign

    ------------------------------
    Khurshid Ali
    ------------------------------


  • 2.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-19-2023 10:12
    No replies, thread closed.

    If you want a roughly 50/50 split, use the RandomInt function to split them up.  Since this uses a random number generator, you won't get always get ABABABA..., it could look like AABABBABA...  If you want an exact split, you get to write code somewhere that keeps track of where the previous call went and returns where the next call should go to, then use a data action to invoke from the flow.



    ------------------------------
    Melissa Bailey
    Genesys - Employees
    ------------------------------



  • 3.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-19-2023 10:23
    No replies, thread closed.

    Thanks for your prompt response, Melissa. Appreciate it!

    Can I ask you for additional information that how to configure the later part to have an exact split?

    I am new to Genesys Cloud coming from a Cisco Contact Center background. This will be of great help.



    ------------------------------
    Khurshid Ali
    NCR Corporation
    ------------------------------



  • 4.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-19-2023 10:52
    No replies, thread closed.

    One thing about the RandomInt function is that for a better spread you wanna use larger numbers when generating a random, for example randomint(100).
    What I noticed is that if you have a small span, for example randomint(1) it will create a lot of of the same results in a row if called many times.

    If you wanna have an exact split you would use a data table to read and store how many you transferred to each queue.



    ------------------------------
    Jan Heinonen
    Contact Center Specialist
    GlobalConnect AB
    ------------------------------



  • 5.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-20-2023 02:46
    No replies, thread closed.

    Hi Khurshid,
    I would suggest to use a datatable: Use /api/v2/flows/datatables/{datatableId}/rows/{rowId} (buld a Action for that) to write a Value and a Data Table Lookup in Flow for read out that value.

    Uses a Data Table Lookup in Flow to Check if the value in the datatable is A or B. Route vise versa and write the opposit value to the data table.
    Best regards
    Christophh



    ------------------------------
    Christoph Domaschke
    CRONBANK AG
    ------------------------------



  • 6.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-20-2023 05:33
    No replies, thread closed.

    Thanks, Chris,

    Just wondering if we can do that through expressions, something like, if the call count is Odd, go to Q1, and if it is Even then go to Q2?

    I need some help with expressing it. 

    Maybe the call count based on DNIS or answered on Q, etc.



    ------------------------------
    Khurshid Ali
    NCR Corporation
    ------------------------------



  • 7.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-20-2023 10:01
    Edited by Dean Thames 07-20-2023 10:04
    No replies, thread closed.

    What kind of velocity / calls per second are you dealing with here Khurshid? 

    Also, how are calls coming in? Through a GC voice number or a BYOC Trunk? 

    ------------------------------
    Dean Thames
    Sr. Principal Consultant Cloud CX
    ------------------------------



  • 8.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-21-2023 04:51
    No replies, thread closed.

    Hi Dean, Thanks for your response.

    Both the Queues combined get ~1,000 calls/day.  Somewhere around 7-8 CPS during peak hours.

    We are using BYOC, ATT-TAO.

    Regards.



    ------------------------------
    Khurshid Ali
    NCR Corporation
    ------------------------------



  • 9.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-21-2023 12:31
    No replies, thread closed.

    Hi,

    I don't think it will be possible to set it up to be and exact 50-50 split at all times of the day. (i.e. have Queue A has AT MOST 1 call more than Queue B).

    This is mostly down to the various race conditions mentioned elsewhere on this thread. You should be able to get pretty close, either using a random number (like if the time is odd or even) to route, or looking at the queue with the fewest calls to route. Over the course of a day, this should result in a pretty close 50:50 split, but if someone opens the queues in the middle of the day, they may not see something like 507 for A and 506 for B.

    Genesys Cloud doesn't natively have a method to store a "Global" variable (which you could use to store a flag for the next queue) so you end up have to create a solution (be that a Data Table, or an external store) for that information - unfortunately all of these methods could result in race conditions due to the fact that the interactions don't line up neatly behind each other and wait their turn.

    I believe the approaches mentioned here will get you close, but only over an extended period.

    HTH



    ------------------------------
    Paul Simpson
    Eventus Solutions Group
    ------------------------------



  • 10.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-21-2023 14:00
    No replies, thread closed.

    Ok, yeah, I think Paul is correct, there are several options here with +'s and -'s. If you develop an app to be highly specific and use a data table that's updating a routing value on each call, just be aware of your volume vs. the api limits. At the volume you noted here, I don't think that's an issue. 



    ------------------------------
    Dean Thames
    Sr. Principal Consultant Cloud CX
    ------------------------------



  • 11.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 07-20-2023 16:57
    No replies, thread closed.

    %2 (mod 2) will give you the remainder of divide by 2, so if Task.CountOfCalls % 2 == 0 then it is even, otherwise it is odd.

    As others have mentioned you could just do randomint and to get that 50/50 split, but statistically you will get runs where 10 or more calls go to one queue in a row, but over time it will be get evened out.

    You could use a data action to write to a data table, the problem with this is 2 calls arriving at the same time or just taking in to account the very small time to run that data action, so if you do have high calls per second you could still end up with an uneven split.

    The other option is to do an analytics api call with a DataAction to get the call volume of each queue, compare which one is bigger and send the call to the smallest, this will still have some race conditions but will ensure over the course of the day an even split. 



    ------------------------------
    Anton Vroon
    ------------------------------



  • 12.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 08-10-2023 10:42
    No replies, thread closed.

    Hi Khurshid,

    We featured your question on the latest episode of the Q&A Show. We are actually going to turn our discussion in two parts. The video we published today includes Part 1. So if you (or anyone else) has questions that you would like discussed in Part 2, please reply to this thread! 

    If you have an unrelated question for the Above Average Joes that you would like to hear them discuss in our next recording, please reply here.

    Hope you enjoy!

    Matt



    ------------------------------
    Matt Lawson
    Genesys - Employees
    Online Community Manager
    ------------------------------



  • 13.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 08-10-2023 11:22
    No replies, thread closed.

    Hey Matt,

     

    Thanks a lot for your email.

    I will take some time to grasp what Dean explained. We are new to Genesys, and definetely this kind of information/learning is of great help. Thanks for posting such useful information.

     

    Thanks & Regards,

     

    Khurshid Ali

     






  • 14.  RE: How can we split calls between 2 queues without any option on the single inbound number? like 50% calls on "Queue A" and 50% on "Queue B"?

    Posted 08-10-2023 11:52
    No replies, thread closed.

    Hi Khurshid, 

    Using an event trigger would likely be a little complex if you're new to GC.

    But being able to read data from and write data to a data table is pretty standard. So if you spend a little time on learning that part for this use case it'll help you in the long term. Here is some additional information on how to do that. 



    ------------------------------
    Dean Thames
    Sr. Principal Consultant Cloud CX
    ------------------------------