PureConnect

 View Only
Discussion Thread View
  • 1.  How to perform queue operations through handlers

    Posted 09-30-2019 16:12
    Hi All, 

    I need to perform certain queue operations through handlers. I am not sure in which custom handler or customization point i should make the changes. 

    Use Case:

    1. The call should stay in queue if no agent is available to receive the interaction. 
    2. Need to perform below operation while call is in queue
            a. Play Audio for 30 Seconds 
            b. Call a subroutine that will validate certain conditions and based on the conditions i need to either re-skill or disconnect or simply return back 
            c.  If came out of step 2 by not applying any changes( that's one condition in which i donot perform any task and simply return) goto: step a
    its like a loop if the interaction is not answered. Any point during the queue operation is the agent is available the call should be routed to him. 

    I am not able to perform this via Handlers, reson being i need to come out of queue operations to call the subroutine and then transfer back the call to workgroup ( which in my opinion is not a good practice) 

    If i can get any leads how to achieve this functionality it will be a great help. 

    Thank you all in advance!!

     - Raghav
    #Handlers

    ------------------------------
    Raghav Gupta
    Accenture USA
    ------------------------------


  • 2.  RE: How to perform queue operations through handlers

    Posted 10-01-2019 05:12
    Hi Raghav,

    Unless I have understood your requested incorrectly, all your requirements are standard PureConnect functionality. You can use attendant to do everything you have listed and you can call handlers from there to do any additional business level processing.

    Regards

    ------------------------------
    Vineet Kakroo
    FIL Investment Management Ltd
    ------------------------------



  • 3.  RE: How to perform queue operations through handlers

    Posted 10-01-2019 07:02
    This is a good question and highlights a limitation of Interaction Attendant. Other than the Queue Menu node, Attendant does not support any branching queue logic. Sure, it can add/remove skills, but does not allow you to take a different path based on a condition. This can only be done outside of queue processing. It also doesn't allow you to perform a subroutine call within a queue.

    Fortunately, there is a customization point for this: CustomIntAttInQueueOperation

    It has a bit of a learning curve because of how the parent handler iterates through Attendant queue nodes, but it will allow you to not only perform custom logic while a call is in queue, but also skip the base handler logic for the current node or allow it to proceed.

    ------------------------------
    David Currier
    cpi.solutions
    ------------------------------



  • 4.  RE: How to perform queue operations through handlers

    Posted 10-01-2019 17:49
    Be careful with using Attendant in-queue operations to change skills. This actually removes the interaction from the queue and then returns it, meaning your in-queue times get reset....


  • 5.  RE: How to perform queue operations through handlers

    Posted 10-01-2019 20:52
    Actually, it doesn't need to. It took me a while digging through the base handlers to understand how Attendant in-queue operations work. But once I figured out how to use the customization point, I was able to do quite a bit without affecting ACD processing. I essentially added branching logic to what Attendant was already doing to modify which node would be selected next and whether each node would be used or skipped. I was also able to dynamically modify attribute values to affect how other queue nodes (such adding/removing skills) would function.

    ------------------------------
    David Currier
    cpi.solutions
    ------------------------------



  • 6.  RE: How to perform queue operations through handlers

    Posted 10-02-2019 14:04
    David,

    Perhaps I should clarify. I was referring to the "out the box" functionality - i.e. no Handler modifications. Many people see the in-queue operations to modify skills as a way to do some really neat things without resorting to Handlers and get stung ;-)


  • 7.  RE: How to perform queue operations through handlers

    Posted 10-02-2019 09:57
    Edited by Mark Tatera 10-02-2019 09:59
    Raghav,

    I've done this for quite a few customers over the years. I put the logic you are referring to into CustomACDCallHolding. You may want to look at SystemACDCallHolding to get an idea of how to do the different on hold functions as you are going to have to basically recreate whatever functions you want from SystemACDCallHolding in the customization point.

    I should also add that interacting with the call here will not take the call out of queue. You will want to test this customization point a bunch to make sure it does what you expect and you do not change the order interactions are getting delivered to agents.

    Thanks,

    ------------------------------
    Mark Tatera
    ConvergeOne

    Opinions are my own and not the views of my employer. Any suggestions or programming changes I suggest come with no warranty and should be tried at your own risk. If my comment helped you or solved your problem please consider marking my comment as best answer.
    ------------------------------



  • 8.  RE: How to perform queue operations through handlers

    Posted 10-23-2019 11:30
    You can also consider going the custom ACD route, initiate processing with a timeout at 30 seconds, when the timeout occurs do a stop acd processing and do all your logic in the CustomAcdQueueItemTimeout handler and then re-initiate processing.

    Keep in mind though that this would reset the time in queue which is used by the acd engine to do the calculations, that can be fixed by adding to the priority when re-initiating.

    ------------------------------
    Eliezer Stekel
    ------------------------------



  • 9.  RE: How to perform queue operations through handlers

    Posted 10-25-2019 13:02
    Alternatively, if you are going the Custom route, you can have it use "Time in System" instead of (or as well as) "Time in Queue"


Need Help finding something?

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