From Bright Pattern Documentation
Jump to: navigation, search
• 日本語
• 5.19 • 5.3 • 5.8

Omni-Channel Routing

Bright Pattern Contact Center enables contact center agents to handle multiple interactions of different media types simultaneously. The agent’s availability to handle an interaction is determined via a capacity model that takes into account how much of the agent’s capacity is occupied by interactions of various media types that the agent is already handling, how much spare capacity the agent must have to be able to handle an interaction of a specific media type, and relative priorities of various media types.

To configure agent capacity, select the Omni-Channel Routing option from the Call Center Configuration menu.


Call Center Configuration > Omni-Channel Routing


Screen Properties

The Omni-Channel Routing screen properties are described as follows.

Capacity share taken by each interaction

This setting specifies the percentage of total agent capacity occupied by a single interaction of the given media type.

In the default settings shown, the capacity share is:

  • Voice: 100%
  • Preview: 100%
  • Chat: 25%
  • Email: 25%
  • Task: 25%


Using those capacity share settings as an example, an agent handling a single call will have 0% spare capacity, while an agent handling a single chat session will have 75% spare capacity (i.e., 100% – 25% = 75%).

For multimedia interactions such as rich contact, the total capacity share is the sum of capacity shares of all media types involved.

Required spare capacity to receive interaction

This property specifies the percentage of spare capacity that agents must have in order to receive an interaction of the given media type.

In the default settings shown, the required spare capacity is:

  • Voice: 50%
  • Preview: 50%
  • Chat: 25%
  • Email: 100%


Using those required spare capacity settings as an example, an agent handling three service chats will have a spare capacity of 25% (100% total capacity - 25% for the first chat - 25% second chat - 25% third chat = 25%) and can still receive another chat (which requires only 25% spare capacity). Therefore, the agent would not be routed an email until all chats are completed, as email requires 100% spare capacity.

Precedence

Precedence is the order in which interactions of the given media type will be distributed to agents relative to interactions of the other media types (i.e., when competing for the same available agent).

In the default settings shown, the precedence is:

  • Voice: 1
  • Preview: 4
  • Chat: 2
  • Email: 3


For example, with the above precedence settings, if an agent becomes available for both a chat and email waiting in the queue, the chat will be delivered first, regardless of queue wait times.

This parameter can be set to the same value only for voice and chat; if so, their delivery order is determined solely by queue position. Generally, it is recommended that each media type has a different precedence value.

Max Per Agent

Max Per Agent sets the maximum number of concurrent interactions that an agent can handle of the given media type. This limit applies even if the agent's calculated spare capacity (based on Capacity share taken and Required spare capacity) would otherwise allow for more interactions of that media.

This setting can be used to prevent agents from being overloaded with one type of interaction or to explicitly reserve agent capacity for other media types. For example, suppose Chat interactions are configured with a Capacity share taken of 25%, meaning an agent could theoretically handle four chats (4 x 25% = 100%). If Max Per Agent for Chat is set to 3, the system will stop routing chats to an agent once they are handling three concurrent chat sessions, even though their calculated capacity isn't fully utilized according to the capacity share percentage. This will leave some capacity for interactions of other media types

Max Per Agent accepts a positive integer value. Leaving this field empty or setting it to zero indicates there is no specific limit imposed by this setting for that media type; the agent's capacity (calculated using Capacity share taken and Required spare capacity) will be the only limiting factor.

Info.40x40.png For the Chat media type specifically, the individual agent's maximum concurrent chats is also considered. The lower of the two limits will be used to determine the number of concurrent chats a given agent can handle.


Routing Strategy

If this feature is enabled for your contact center, you can choose the main factor (i.e., after matching agent skills) by which interactions are routed to agents; there are two options: Total Idle Time and Ready Time.

The default option is Total Idle Time: the system selects the correctly skilled agent with the longest idle time (sum of Ready + Not Ready states since the last interaction they handled) and sufficient available capacity.

If Ready Time is selected, the system prioritizes routing to skilled agents who have been in the Ready state longest. If no skilled agents are in the Ready state, it falls back to Total Idle Time routing.

If the Routing Strategy feature is not available for your contact center, the default system behavior is Total Idle Time. For more information, contact your service provider.

Custom Routing Profiles

Custom Routing Profiles define alternative routing rules that you can apply based on the source of an interaction. These profiles override the defaults when applied to particular:


The precise control offered by custom profiles allows you to implement routing logic of almost any complexity.

Defining a custom routing profile

Custom Routing Profile Properties

You can define any number of custom routing profiles for each media type. The Name you assign will identify the profile when applying it to a service, scenario entry, or within a Find Agent block. The Precedence value for each custom profile is inherited from its media type. The remaining properties are the same as those of the global routing properties:

  • Capacity share taken by each interaction
  • Required spare capacity to receive interaction
  • Max Per Agent

Custom Routing Profile Behavior

Custom profiles override the global routing settings for a media type. They can be applied at different configuration points, and the system selects the profile when routing an interaction as follows:

  1. Global Omni-Channel Settings: By default, an interaction uses the routing settings defined globally for its media type.
  2. Service (Overrides global profile): If a Custom Routing Profile is assigned to the service handling the interaction, its settings override the global settings for that interaction.
  3. Scenario Entry (Overrides service profile): If a profile is assigned to the scenario entry that initiated the interaction, it takes precedence over both the service-level profile and the global settings.
  4. Scenario Block (Overrides scenario entry profile): Finally, if a profile is set within a Find Agent scenario block, it takes priority over any profiles selected for the scenario entry, service, and the global settings.


The Max Per Agent limit defined in a custom profile is enforced independently from the limit defined in the global routing settings or other custom profiles of the same media type. For example, if the global chat limit is 3 and a "VIP Chat" profile applied to a certain scenario entry has a limit of 1, an agent could potentially handle 3 default chats and 1 VIP chat simultaneously.

When an agent becomes available, and multiple interactions of the same media type (and thus same precedence) are waiting, the system prioritizes the interaction that has been waiting the longest, regardless of whether they use the global settings or a custom profile.

Example Usage of Custom Routing Profiles

Custom Routing Profiles provide the flexibility to fulfill complex routing requirements. The following examples are intended to illustrate key concepts and provide you with a starting point for designing your own routing rules.

Case 1

Apply distinct capacity and concurrency settings for interactions belonging to different BPO clients being served by a single call center.

  • Profiles:
    • Custom Chat Profile: "Client A Chat Routing" (e.g., Capacity Taken: 25%, Required Spare: 25%, Max: 3)
    • Custom Chat Profile: "Client B Chat Routing" (e.g., Capacity Taken: 33%, Required Spare: 33%, No Maximum)
  • Profiles applied to services:
    • Assign "Client A Chat Routing" profile to the "Chat - Client A" Service properties.
    • Assign "Client B Chat Routing" profile to the "Chat - Client B" Service properties.
  • Result: Interactions routed via the "Chat - Client A" service use the capacity defined in "Client A Chat Routing", while interactions via "Chat - Client B" use the different rules defined in "Client B Chat Routing".

Case 2

Some tasks fully occupy an agent's attention and must not be interrupted by calls, while other tasks can be interrupted and the agents working on them should be available for calls:

  • Profiles:
    • Custom Task Profile: "Non-Interrupt Task" (Capacity Taken: 100%, Required Spare: 25%, Max: 1)
    • Global Task settings: (Capacity Taken: 25%, Required Spare: 25%, Max: 2)
    • Global Voice settings: (Required Spare: 50%)
  • Profile applied to the scenario entry:
    • Assign "Non-Interrupt Task" profile to the Scenario Entry handling tasks that must not be interrupted.
    • Tasks arriving through other scenario entries will be routed according to the global settings
  • Result: Agents routed a "Non-Interrupt Task" become 100% busy and will not have spare capacity to be routed voice interactions. Agents with "Interruptible Tasks" remain mostly available (up to 50% busy if working on the maximum 2 tasks) and can receive calls or be routed a "Non-Interrupt Task" task.


Case 3

Agents making outbound calls from a preview campaign should be able to take certain inbound voice calls selected via scenario logic:

  • Profiles:
    • Custom Preview Profile: "Preview Allows Inbound" (Capacity taken: 70%, Required spare: 100%)
    • Custom Voice Profile: "VIP Inbound" (Required Spare: 25%, Capacity taken 100%)
    • Global Voice settings: (Required spare: 50%)
  • Profile applied to Service and with the Find Agent scenario block:
    • Apply the "Preview Allows Inbound" routing profile to the Outbound Voice Service used by the preview campaign.
    • Scenario logic determines VIP calls, and sets the "VIP Inbound" routing profile in the Find Agent scenario block when connecting these calls.
  • Result: Agents handling a preview call using this profile are 70% busy, leaving enough spare capacity (30%) to meet the requirement for receiving VIP inbound voice calls (which require 25% spare capacity), but will not be interrupted by regular incoming calls.


How the System Routes Interactions

1. If the Routing Strategy is Ready Time

When a new interaction arrives and its skill requirements are identified, the system will look for agents with matching skills who have been in the Ready state the longest. If no skilled agents are Ready, the system will use the Total Idle Time routing.

2. If the Routing Strategy is Total Idle Time or there is no Routing Strategy

When a new interaction arrives, the system determines which set of routing capacity settings to use for capacity calculations. It checks for a Custom Routing Profile assignment in this order:

  1. The Find Agent scenario block routing the interaction
  2. The Scenario Entry that initially processed the interaction
  3. The Service associated with the interaction


The settings (Capacity share taken, Required spare capacity, and Max Per Agent) from the first profile found are used for the subsequent routing steps. If no custom profile is assigned, the system uses the global routing settings defined for that interaction's media type.

Once the routing settings and skill requirements are identified for an interaction, the system will look for agents with matching skills and sufficient spare capacity (i.e., occupied at less than 100 – Required spare capacity to receive interaction of the given routing profile).

If multiple agents satisfying these conditions are found, the system will select one of these agents using the following criteria in the specified order:

  1. The agent with the highest skill level(s); the highest level is determined by the following formula:

    Service Skill Level x 100 + (sum of Auxiliary Skill Levels) / 100 + no. of auxiliary skills.

  2. The least busy agent at the moment; based on Capacity share taken by each interaction currently processed by this agent

  3. The longest idle agent; based on the sum of times of continuous Ready and Not Ready states since the last handled interaction

  4. The least occupied agent; based on agent occupancy since login; occupancy is defined as:

    Busy time / login timeNot Ready time

    In that instance, Busy time is the sum of handling times of all interactions processed by the agent multiplied by Capacity share taken by each interaction, depending on the media type.


When an agent’s load decreases (an agent completes processing of an interaction), the system will look for interactions with matching skill requirements that the agent may have sufficient capacity to handle. The interactions will be considered in the order of Precedence. If multiple interactions within the same precedence are found, the system will select one of these interactions using the following criteria:

  • For voice and chat, the interaction with the highest value of (priority x wait time); for more information, see the description of the Set Priority block in the Scenario Builder Reference Guide
  • For emails, interaction with the highest priority; in case of multiple interactions of the same priority, the closest one to the SLA breach.
  • For preview records, the record is determined by the order in which records are selected within a campaign.

For more information about how routing happens within scenarios, see the Scenario Builder Reference Guide, section Find Agent.

< Previous | Next >