Queues Groups

Queues Groups

Overview

The queue groups feature allows supervisors to assign a global priority to multiple queues at once, making it easier to elevate the importance of several queues simultaneously.

Video Tutorial

Requirements

The Queue Groups feature is available in the New Client Experience and has been updated to the latest interface starting from version 3.42.0.

For older installations, you must run the script below on the same machine to add the necessary rules to the proxy and update the NGINX configuration. Run the script as root:

This script is only for all-in-one or standalone installations. If you are using High Availability (HA), Disaster Recovery (DR), reverse proxy setups, or similar, please contact our support team before proceeding

curl -u 'public:bs4#)W]h8+VK),RV' --silent --location https://repository.xcally.com/repository/provisioning/Scripts/motionV3_nginx_update_for_x_client | bash

If your server was installed before Thursday, July 27, 2023, running this script is mandatory.

To avoid issues, we recommend running the script when agents and users are logged out. Consider that, by running it, a new NGINX configuration file will be installed, saving the old client configuration as a backup in the path specified by the script. Please note that any custom changes you made,will not be automatically preserved.

NGINX Best Practice

Our configuration files should not be modified directly. If you need to customize the NIGINX configuration, we strongly recommended creating a copy of the original file and making your changes there.

Please note that we could overwrite the configuration file during some updates. For example when a script is launched, the nginx file is modified. However, the script automatically saves a backup of the previous configuration and highlights the differences between versions on the screen during execution.

NGINX Best Practice

Our configuration files should not be modified directly. If you need to customize the NIGINX configuration, we strongly recommended creating a copy of the original file and making your changes there.

Please note that we could overwrite the configuration file during some updates. For example when a script is launched, the nginx file is modified. However, the script automatically saves a backup of the previous configuration and highlights the differences between versions on the screen during execution.

Keywords

Before proceeding, it’s important to understand the following terms:

  • Penalty: this defines the Agent’s priority within a queue. A lower penalty value means higher priority when receiving interactions. The penalty helps the system determine the order in which agents are contacted.
    Example: Agent1 with Penalty 1 has higher priority than Agent2 with Penalty 3.

  • Priority (applied to queues) : numeric value from 1 to 10 used to decide how incoming calls are assigned to queues. A higher priority value means the queue will receive calls first.

Global Priority (applied to routes in the Dialplan Actions) : this numeric value (1 to 10, default 0) acts as a multiplier added to the priorities of the queues within the group.
If supervisor notices that fewer calls are coming in on a route, he can decide to increase group priority to receive calls first on a specific route.

  • Timeout (that in this case works as add after): the number of seconds after which agents in a specific voice queue are added to the pool of available agents for an inbound route.
    Example: Calls are initially assigned to Queue1 at 0 seconds; after a 30-second timeout, agents from Queue2 are also included.

  • Inbound Route configured in XCALLY by linking a public phone number to make the contact center reachable via voice calls. Multiple voice queues, each with agents skilled to handle customers, can be assigned to a single inbound route.

Team1 (timeout 10''):
John → Penalty=2
Bill → Penalty=1
James → Penalty=3
Team2 (timeout 10''):
Peter → Penalty=2
Mark → Penalty=2
James → Penalty=1

Scenario

When a call comes into Team1, the system contacts firstly Bill (who has lower penalty) If Bill doesn’t answer within 10 seconds, it then calls John after another 10 seconds without an answer, the system contacts James
If James is also a member of Team2 with a Penalty of 1, he will prioritize answering calls from Team2 before handling calls from Team1.

If the supervisor reaches the SLA target for Team1 but not for Team2, he may need to adjust the priority at the inbound route level to ensure calls are routed to Team2 first.
By assigning higher priority to a queue at the inbound route level—especially when using the ring all strategy—calls will be directed first to the queue with the higher priority setting.

Normally, the supervisor would need to set this priority within each individual queue. However, to streamline the process, the Queue Groups feature can be used to apply priority settings across multiple queues at once.

Configuration

Queue groups allow you to set a global priority across multiple queues.

When determining priority, the system adds the individual queue priorities to the priority assigned at the queue group level.

  • To create a new Queue Group, navigate to Voice → Queue Groups and click +Add

image (1)-20241105-100951.jpg
  • Enter a Queue Group Name:

image-20241105-101207.png

Enter a unique name for the queue group. If the name already exists, the system will display an error.

image-20240131-143519.png
  • Then by clicking on 3 dots of the created queue group, you can edit it, associate queues, associate routes or delete

image-20241105-101252.png
  • After creation, click the three-dot menu next to the queue group to:

    • Edit the group (change name, associate queues, associate routes)

    • Delete the group

image-20241105-101937.png
  • Click Associate Queues to select which queues to include. You can filter by name using the search field. For each queue, you can set priority and timeout

image-20241105-101628.png

In this video you can view how to easily associate multiple queues to a Queue Group while configuring their individual parameters.

Associate Queues to Queue Groups.mp4

 

 

By selecting Associate Routes, you can view all internal and inbound routes linked to the Queue Group (read-only view).

image-20241105-102224.png

 

 

image-20241105-102538.png

When a route is connected to this queue group, the system calls agents in the queues according to the set timeouts. For example:

  • It calls agents in the Support Queue first.

  • After 10 seconds without response, it calls agents in the Sales Queue plus agents in the Support Queue who haven’t answered yet.

If agents from different queues (e.g., Support and Sales) are available simultaneously, the call is assigned to the agent in the queue with the higher priority.

 

 

Configure a Route with Queue Group Application

After creating a Queue Group, you can assign it to inbound or internal routes. The same queue group can be linked to multiple routes.

 

image-20240110-150452.png

 

In the Dialplan Actions, add the Queue Group Application with the following settings:

  • Queue Group: select the group from the dropdown menu.

  • Global Priority: this numeric value (1 to 10, default 0) acts as a multiplier added to the priorities of the queues within the group.
    If supervisor notices that fewer calls are coming in on a route, he can decide to increase group priority → with same queues and same agents, route with the higher global priority receives calls first.

  • Options: add Asterisk dial options (for more details you can explore Dial - Asterisk Documentation).

  • Music On Hold: choose an audio file to play for callers (default is none).

  • Timeout: works like classic queue timeout: when it expires, the system moves to the next dialplan action (default 300 seconds - required field).

  • Answer Flag: True or false (default true).

Example of Global Priority

Scenario

You create two Queue Groups, QG1 and QG2, each linked to three queues with assigned priorities and timeouts.

 

 



Queue Group QG1, related to 3 queues:
- Support1 [Agent1, Agent2] : Priority 3 - called at 0 seconds
- Support2 [Agent3, Agent4] : Priority 2 - called at 10 seconds
- Support3 [Agent5, Agent6] : Priority 2 - called at 20 seconds
Inbound route on phone 0111234. On action flow you insert Queue Group application, choosing the option QG1
The 3 queues will be contacted with indicated timeout, starting from Support1
→ Sec. 0'' = Support1 (A1, A2)
→ Sec. 10'' = Support1 (A1, A2) + Support2 (A3, A4)
→ Sec. 20'' = Support1 (A1, A2) + Support2 (A3, A4) + Support3 (A5, A6)
Queue Group QG2, related to 3 queues:
- Support1 [Agent1, Agent2] : Priority 3 - called at 0 seconds
- Support2 [Agent3, Agent4] : Priority 2 - called at 10 seconds
- Support3 [Agent5, Agent6] : Priority 2 - called at 20 seconds
Inbound route on phone 021234. On action flow you insert Queue Group application, choosing the option QG2
The 3 queues will be contacted with indicated timeout, starting from Support1
→ Sec. 0'' = Support1 (A1, A2)
→ Sec. 10'' = Support1 (A1, A2) + Support2 (A3, A4)
→ Sec. 20'' = Support1 (A1, A2) + Support2 (A3, A4) + Support3 (A5, A6)

If the supervisor notices fewer calls arriving on 021234, they can increase QG2’s global priority. This causes calls to be routed first to the higher priority route, with the global priority acting as a multiplier to the queue priorities (sums queue priority+global priority).

 

Managing Agent Priority Across Multiple Queues

 

 

If an agent belongs to multiple queues in different queue groups, you can set their penalty values to control which queue they prioritize.

Scenario

Agent James is in two queues:

  • Support3 Queue with Penalty 1 (higher priority)

  • Sales3 Queue with Penalty 3 (lower priority)

James will receive calls from Support3 first before being contacted for Sales3.

Related topics