Our implementation partner added 3 custom data actions that check to see if agents are logged in and in certain Presence states. This ensures that incoming voice calls are only queued when agents are logged in. If no agent is logged in and in any of these states, the incoming calls can be re-routed to an "out of service message". This works really well however it fails when an agent de-activates a queue and remain logged in. (Calls will sit in queue)
Get Count of On Queue Agents (Logged in)
/api/v2/routing/queues/${input.QueueId}/users?presence=ON%20QUEUE
Get Count of Available Agents (logged in /Off queue/Available)
/api/v2/routing/queues/${input.QueueId}/users?presence=AVAILABLE
Get Count of Busy Agents (logged in/Off queue/Busy)
/api/v2/routing/queues/${input.QueueId}/users?presence=BUSY
If at least one agent is in any of these states, then our calls will wait in queue otherwise we have calls go to an "out of service message". However, the issue we are having is that if an agent is logged in and in any one of these states but they have changed their own queue assignment from Active to Available. (They have de-activated their queue assignment). The scenario is, the agent is still logged in and they are the only one with this queue that is now de-activated, instead of these calls going to the out of service message, the calls will sit in queue but there is no one to answer it.
Question: Is there any way to set up a Custom Data Action that would check to see if an agent has the Queue in their Active list vs their De-Activated list (or Available list)? If the system can validate that the Queue is in their de-activated list (and no other agent has the queue in their Active list), then the calls can go to the "out of service" message.
We are not experts on this system, so any help would be appreciated.
#Routing(ACD/IVR)------------------------------
Kimberly Schlese
WestJet
------------------------------