Routing model for digital channel from version 3.60.0

Routing model for digital channel from version 3.60.0

FROM VERSION 3.60.0

 

Overview

The new routing model replaces and improves the current interaction distribution logic for digital channels from XCALLY Version 3.60.0.

Main Key Points:

Based on FIFO (First-In, First-Out) logic

Introduction of priority weight (0-10) for digital channel queues → this allows prioritization of specific queues across all digital channels

Configuration of distribution priority for messages belonging to existing (open) interactions versus new interactions.

Introduction of Least Recent strategy for digital channels interactions

Improved log routing-combined and routing-error with more useful information

Requirements

  • The routing model uses the required BullMQ container for interaction queue management → discover how to check Redis installation (on Advanced wiki).
    This implementation improves efficiency and overall performance. Consider that the system performs Redis emptying every 90 days

  • The microservices have to be installed before upgrading to version 3.60.0

  • New Client Experience required. The new inserted configurations are available only on the new interface (except for email channel, available on old client)

Differences between routing logics

Routing Logic before Version 3.60.0

Routing Logic after Version 3.60.0

Routing Logic before Version 3.60.0

Routing Logic after Version 3.60.0

  • When a response message (belonging to an already assigned interaction) arrives, it is sent directly to the assigned agent via the agent application, bypassing the Action Plan.

  • The message remains on hold for the assigned agent for a defined timeout period

  • After timeout expiration, the message is reinserted into its original queue, with a new timeout.

  • Once the second timeout expires, the message re-enters the full Action Plan.

  • Based on the response priority option enable:

    • if ON response messages have priority over new messages

    • if OFF response messages are enqueued and distributed to the assigned agent based on FIFO logic and the configured priority.

  • A wait for the assigned agent timeout can be configured:

    • if disabled, messages remain in the Agent’s Unread Messages list for max 90 days

    • if enabled and it expires, the message can either:

      • exit the routing and be requeued in its original queue based on FIFO logic, or

      • exit the routing and moved in the Agent’s Unread Messages list

    • if original queue timeout expires, the message moves in the Unread Messages list

  • Response messages never re-enter the full Action Plan.

  • Wait for assigned queue option is deprecated

 

 

image-20251113-155820.png
image-20251113-160010.png

Video Tutorial

Routing Queue Settings

In this routing model, admin can define these settings for queues:

image-20251118-154750.png
  • Queue name

  • Strategy:

    • Beep-all

    • Round Robin Memory

    • Least Recent (since the last accepted notification) ON NEW EXPERIENCE

  • Weight to define queue priority. It is configurable with a range value from 0 (default) to 10.
    So when an agent is idle to manage an interaction (no busy, no max capacity reached on the channel, no in pause status) the message belonging to the queue with the highest priority takes precedence (max 1 popup per channel per agent)

Cross channel weight: each queue is assigned a weight that represents its priority level. A higher weight means higher priority.

The system compares the weights of all queues across all digital channels:

  • The queue with the highest weight takes precedence.

  • This comparison happens across all channels, not only within the same type of channel

Use case for queue weight

image-20251112-100511.png

Agent1 is assigned to 3 queues with different priority:
QueueA Mail = priority 2
QueueB WhatsApp = priority 1
QueueC Chat = priority 3

  • At 09.25am Agent1 goes in pause status

  • 3 new interactions arrive:

    • New mail at 09.30am

    • New Chat at 09.33am

    • New WhatsApp message at 09.31am

  • At 09.35am Agent1 is idle to manage a new interaction

  • Agent1 receives:

    • first interaction from QueueC Chat with higher priority

    • then from QueueA Mail

    • finally from QueueB WhatsApp

Use case for queue weight

image-20251112-100511.png

Agent1 is assigned to 3 queues with different priority:
QueueA Mail = priority 2
QueueB WhatsApp = priority 1
QueueC Chat = priority 3

  • At 09.25am Agent1 goes in pause status

  • 3 new interactions arrive:

    • New mail at 09.30am

    • New Chat at 09.33am

    • New WhatsApp message at 09.31am

  • At 09.35am Agent1 is idle to manage a new interaction

  • Agent1 receives:

    • first interaction from QueueC Chat with higher priority

    • then from QueueA Mail

    • finally from QueueB WhatsApp

  • Agent timeout: maximum time to wait before moving on to the next agent (in seconds)

  • send Queue Position Message (only for OpenChannel and WhatsApp queues) ON NEW EXPERIENCE : if enabled, the system sends a configurable message to the customer indicating their position in queue.
    The message is sent once, when entering the queue.

  • optional description

 

Routing Account Settings

On Account/Website level, under Settings/Routing section, admin can define these settings:

image-20251204-165429.png

 

  • FROM VERSION 3.60.0 ON NEW EXPERIENCE Prioritize replies: enable response priority for new messages belonging to already open interactions:

    • If ON: response messages are distributed to agents before new interaction messages.

    • If OFF: responses are distributed with FIFO logic, with the same priority as new messages.

  • FROM VERSION 3.60.0 ON NEW EXPERIENCE Define a wait for assigned agents timeout. It defines the maximum time a response message can remain assigned to an agent who previously managed the interaction but is currently busy, logged out or paused:

    • If OFF: the timeout is disabled. The message stays in the agent’s queue indefinitely

Remember that the system performs Redis emptying every 90 days, so the Redis job remains maximum for 90 days assigned to agent and exits routing

  • If ON: the timeout is configurable using hour/minute/second selectors, up to 7 days. You can therefore enter this setting using the unit of measurement that best suits your needs.

  • FROM VERSION 3.60.0 ON NEW EXPERIENCE Timeout action configured to define what happens when a response message timeout is reached:

    • Send back to last assigned queue (FIFO): the message returns to its last assigned queue and is redistributed via FIFO. This action is only possible if the interaction has already been routed to a queue at some point before the last reply is received.
      In case of transfer, the queue considered is the last one that has managed the conversation

    • End routing: the message exits routing and is moved to the Unread Messages list

  • FROM VERSION 3.49.0 the Interaction inactivity timeout field allows you to indicate time (in minutes) after the last Agent’s message, interaction has to close automatically. The status of the interaction should automatically update to Closed

An interaction is considered inactive when the last message is from the agent. When an interaction is closed for inactivity (because more than the configured minutes have passed), the system disposition ‘Closed for inactivity’ is used

 

 

 

Default settings after release update

When you update your server to version 3.60.0, you will view these default settings:

Queue level

  • Weight: 0 by default

  • Strategy: configuration inserted before the update

  • Queue position option: disabled by default

Account level

  • Wait for the assigned agent: configuration inserted before the update.

    • If enabled, timeout value with the unit of the measure for the best customer experience (es. 600 seconds will be inserted as 10 minutes)
      If a value greater than 7 days was previously entered, the system automatically sets a maximum of 7 days. The first time you access the section, an alert will be displayed with the setting error.

  • Timeout action: redistribute in the original queue (FIFO) by default