Genesys Cloud - Main

 View Only
Discussion Thread View
  • 1.  ARCHITECT - CURRENT WAIT TIME/DURATION

    Posted 03-30-2017 13:32

    Hi everybody,

     

    is there any way to get current wait duration in Architect to manage for instance an OverFlow?

     

    Use Case :

     

    - Customer waits in queue for 30 sec

    - After 30 seconds waiting, the call is routed to one more queue

     

    To do that , I need to know which is the current wait time.

     

    Any ideas?

    Thanks

    Stefano



  • 2.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    Posted 03-30-2017 16:36

    I'm going to explain 2 ways to do this.

     

    Method 1:

    In your in-queue flow, use the hold music action to play for a duration of 30 seconds, then add a transfer to ACD action.  If an agent becomes available during those 30 seconds, the caller will get answered and the in-queue flow will not get to the transfer action.  If no agents become available, the caller reaches the transfer action and goes to the next queue.

     

    Method 2:

    This method is more complicated, but it will allow you to determine if the caller's estimated wait time is > 30 seconds, and perform the transfer without waiting the initial 30 seconds.

     

    In-queue flows have a built-in variable named Call.EstimatedWaitTime.  You can check the value of this and make a decision on whether to transfer to another queue.

     

    But first you need to use the Play Estimated Wait Time action so its value is fetched.  If you don't want the caller to hear that time, just replace Call.EstimatedWaitTime in the expression box with NOT_SET.

     

    For the decision action, here are some example calculations:

    IsNotSetOrEmpty(Call.EstimatedWaitTime) or Call.EstimatedWaitTime > MakeDuration(0, 0, 0, 30)

    This will take the true path if the call's EWT couldn't be fetched for any reason, or it is greater than 30 seconds.

     

    IsSet(Call.EstimatedWaitTime) and Call.EstimatedWaitTime > MakeDuration(0, 0, 0, 30)

    This will take the true path only if the call's EWT is known & greater than 30 seconds.

     

    Documentation resources:

    https://help.mypurecloud.com/articles/hold-music-action/

    https://help.mypurecloud.com/articles/play-estimated-wait-time-action/



  • 3.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    Posted 07-06-2018 12:27
    Hi there,

    (Apologies and THANKS in advance. I'm very new to PureCloud)

    I'd like to request for a quick clarification on this, @Melissa Bailey​. I'm understanding the logic but could you please provide some more detail about the expressions/build? I'm very interested in the 2nd option you've proposed (where the position in queue is fetched, but not heard by the caller); however, I'm confused on how the exact build would look.

    Ultimately, I'd like a call to continue in this Inqueue callflow if there are 2 calls or fewer waiting AND if the hold time is less than 30 seconds; otherwise, send to an Overflow Inqueue call flow.

    After I insert a "Play Position In Queue" object into the Inqueue call flow, am I changing the POSITION IN QUEUE expression to "NOT_SET" or leaving that as "Call.PositionInQueue" (example pic1 below)...


    or will it literally be (example pic2 below):


    Directly after this I am inserting a Decision object that refers back to this, right? In the Decision Expression, I suspect, is where I'll add the following:   Call.PositionInQueue<=2 and Call.EstimatedWaitTime < MakeDuration(0,0,0,30)

    I'm wondering if I change it to the "Call.PositionInQueue" to NOT_SET would the above expression still recognize the reference? Any help you can provide is much appreciated.

    ------------------------------
    Angel R.
    ------------------------------



  • 4.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    GENESYS
    Posted 07-09-2018 12:04
    Hi Angel,

    The call's position in queue and estimated wait time variables are now automatically fetched (& continuously refreshed during the in-queue flow, subject to certain caching behavior), so you don't need to use an empty Play Position In Queue or Play Estimated Wait Time action anymore.  All you need is the Decision action.

    I tweaked your expression a little to guard against the case where the variables could be empty if the fetch failed (this is very rare but better safe than sorry).

    (IsSet(Call.PositionInQueue) and Call.PositionInQueue <= 2) and (IsSet(Call.EstimatedWaitTime) and Call.EstimatedWaitTime < MakeDuration(0, 0, 0, 30))


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



  • 5.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    Posted 07-09-2018 12:29
    Awesome! Thanks for the quick reply, @Melissa Bailey. :)

    Oh ok. I was worried that without the reference expressions wouldn't know what to ​point to. I'm glad that they system is smart enough to know. So we can just do away with inserting that object into the call flow.

    On a similar note is there any way to know whether or not a rep is available as opposed to wait time and/or position in queue (e.g., If no agents are available than ___)? I'm guessing it would be something simple like: Call.PositionInQueue > 1.

    To take that a step further - and this might be a bit of a stretch, is there a way to call on data from another queue? For example, when a call is in the Overflow queue, if a rep suddenly becomes available in the Dedicated queue than forward the call over right away? If not, i think it would be extraordinarily dynamic if this was possible in the future.

    ------------------------------
    Angel R.
    ------------------------------



  • 6.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    GENESYS
    Posted 07-09-2018 13:35

    Unfortunately the in-queue flow doesn't have access to any other statistics about the queue (yet--we do plan to add it in the future).  Until then, you can write your own data action that will look up that information and use the Call Data Action in the in-queue flow to access it.  The in-queue flow has a Call.CurrentQueue variable that you can use to pass the queue's id as an input into the data action.

    Your 2nd question can also be accomplished with a data action.  For this one you would need to know the previous queue's id for your data action; you can either hardcode it if there is only 1, or use the Set Participant Data Action & Get Participant Data Action to pass that information from the 1st in-queue flow to the overflow queue's in-queue flow.

    One important note: the caller's position in queue (or estimated wait time) doesn't tell you anything about how many agents are on queue or when they will become available.  Suppose a business is open 8am-5pm.   The caller calls in at 9 pm.  His position in queue is 1.  Another caller calls in; his position in queue is 2.  Both callers will have to wait until 8am until they are actually answered.  Both callers are very unhappy that they had to listen to hold music for 11 hours.

    https://help.mypurecloud.com/articles/call-data-action/

    https://help.mypurecloud.com/articles/call-data-action-2/

    https://help.mypurecloud.com/articles/set-participant-data-action/
    https://help.mypurecloud.com/articles/get-participant-data-action/



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



  • 7.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    GENESYS
    Posted 07-09-2018 13:40
    Another possibility for the Overflow queue option would be to use Bullseye routing instead, where you open the call up to a larger and larger group of agents as time goes on, but the system will still choose someone from an inner ring if they become available even after the pool has opened up to a wider ring.

    ------------------------------
    George Ganahl
    Principal Program Manager
    Genesys
    ------------------------------



  • 8.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    Posted 07-09-2018 15:48
    Thanks, both of you.

    I will have to check to see what all the options are in regards to assigning Queue IDs. This is still a realm we haven't delved into. Regarding the bullseye / targeting, we thought about that. We also considered implementing skills to certain reps; however, reporting on these create more challenges. There are some caveats that I need to consider that seem to rule out those options: mainly that we bill for dedicated vs. overflow differently. We NEED to be able to report on how many calls were handled by each, so it appears that creating completely separate queues is the direction we might need to go in. I was advised during our implementation that we cannot report on skills.

    Unless there's something else we haven't considered, or perhaps we aren't 100% well-versed with the APIs, expressions, and reporting yet. As mentioned previously, we are very new to PureCloud :s

    ------------------------------
    Angel R.
    ------------------------------



  • 9.  RE: ARCHITECT - CURRENT WAIT TIME/DURATION

    GENESYS
    Posted 07-09-2018 16:12
    I'm not sure, but the PureInsights app in the AppFoundry might get you data on Skills.

    If you are adventurous, you can use the API to query analytics data, such as conversation details 

    https://developer.mypurecloud.com/api/rest/v2/analytics/index.html#postAnalyticsConversationsDetailsQuery

    A couple of the values you can query on are requestedLanguageId and requestedRoutingSkillId.

    You can post questions on the developer.mypurecloud.com forum if you decide to pursue that route.


    ------------------------------
    George Ganahl
    Principal Program Manager
    Genesys
    ------------------------------



Need Help finding something?

Check out the Genesys Knowledge Network - your all-in-one access point for Genesys resources