Distribution Policies

Nimbus requires a distribution policy to define escalation over time for ringing calls. A distribution policy can consist of multiple distribution levels. Each distribution level defines skill criteria, acting like a filter to pool and select (available) users for call distribution. 


Contact Center - Please note that distribution policies are a Contact Center feature. Both services and users need the Contact Center license to enable the corresponding configuration tabs. 

To use this feature you need to make sure the following criteria are met: 

  1. Skills and Responsibilities need to be created first in order to be visible in your policy.
    💡 As for all data entities, their visibility follows Organization Unit constraints.
  2. At least one service needs a Contact Center license applied in the Service Administration and configured for skill-based distribution.
  3. Users need to be Contact Center licensed to enable their Skills and Responsibilities tab and according Responsibility Profiles. 💡 Regular users cannot be selected as preferred.
  4. Finally, users need to be added as Agents or Owners of the service. This is done in the Permissions tab, located in Service Administration.

The Distribution Order Algorithm

To achieve skill-based distribution and policies, we need to cover the following steps:

  1. Create Skill Categories. Your users need to be defined for targeted call distribution. As you define Skills and Responsibilities, you freely define these criteria of selection first, e.g. a specific language or product proficiency.
  2. Assign Skills and Responsibility to users. This must be done for each of your Contact Center users individually.
  3. Create Distribution Policies. Multiple levels of distribution can be part of a policy. Think of a filter that escalates the levels during an incoming call, based on your skill and responsibility criteria.
  4. Apply the Policy to your Services. Lastly, in order to take effect on call routing, a policy needs to be assigned to a Contact Center licensed Service type

The distribution order algorithm allows flexibility, but also some learning. For that reason, we've prepared a concept page that explains the Distribution Order algorithm behind Nimbus in more detail and with a specific example.

Click to learn more about how the Distribution Order algorithm works in detail...

💡 Note that this is an excerpt of the Distribution Order algorithm. We recommend reading the page in full if you are new to the concept of task distribution.

INC Distribution order accordions


✅ The first step before using skill and responsibility based-routing should always be a look at your organizational structure. Ask the question: what kind of expertise is important when handling incoming calls? How should our users (agents) be categorized accordingly? Then go ahead and do the following:

  1. Define skill categories ,such as "Language Skills" or "Product Expertise". You may also define soft skills or adjectives without levels such as "First-Responder".
  2. Optionally define skill levels according to your chosen category. This allows for escalation levels so that you can require certain skills or widen the user pool by gradually lowering skill requirements of long-waiting calls. 
  3. Optionally define responsibilities to apply to any category of skills. Responsibility levels can be used to distinguish skill importance, e.g. based on on time of day, workload, out-of-office status, or for high-demand situations where users with certain skills are more responsible than others.
  4. Optionally define responsibility profiles for your users to select from. A profile automatically groups skills and responsibility levels together and lets you define corresponding levels for each profile and user.

➕ In our example, we defined two skill categories with levels. Responsibility is enabled for the "Expertise" skill which will be explained further below.

🔍 Information on this configuration can be found in Skills and Responsibilities.

💡 We recommend you to coordinate this with your (future) service team owners and their respective Organization Units in order to avoid unnecessary duplicates of skills, categories, and profiles within your Nimbus tenant.


User Definition

✅ After setting all your skills and responsibilities, you want to define your individual Contact Center users (agents). 

  1. Optionally assign the additional responsibility profiles for each user where needed. By default, each user has two system profiles: Duty (which considers all skills) and Off Duty. Users will be able to select further responsibility profiles you defined from the Nimbus frontend (based on their respective Organization Units).
  2. Define skill and responsibility levels for each user. With further profiles, you can define these levels individually for each user.

➕ In our example, we defined two users with varying levels of skill and expertise. A highly skilled user (e.g. a programming expert) may be busy with other tasks during the day, but shall answer questions while being "On Call" at weekends.

💡 Usually you do not change skills on users very often, as they remain consistent. Skill-based responsibility, however, may be different for each user depending on their selected profile. Make sure that the naming and meaning of your profiles is clear and understandable for your users (examples could be: “Night Shift”, "Weekend Duty", "High Load").


Service Configuration

✅ After defining your agents, it's time to apply policies to your services. These policies define how agents are pooled and selected during an incoming call. 

Rules for the selection order algorithm

In order to be selected, defined Nimbus Contact Center users must fullfill all the required criteria. These are as follows:

  1. Users must have all required skills.
  2. (Of the required skills) one skill level must match for the user to be selectable.
  3. (When responsibility is enabled for a skill), one of the required responsibility levels must match as well.
  4. The user must be available (e.g. not in RONA state, or Busy in another call)
  5. If multiple available users match the requirements above, the order algorithm defines the priority as follows:
    1. Best Qualified: Prefers highest skill qualification (even if higher respond time)
    2. Longest Idle: Prefers longest idle team over both responsibility and skill level.
  1. Define a distribution policy with a clear name (e.g. Regular day service policy) and an order algorithm (see info above).
    1. Define the distribution levels with one or more profiles of escalation.
    2. Each profile determines the required skills AND their required responsibility range.
  2. Assign the policy within your Service Settings so that it takes effect immediately on the next call.

➕ In our example, we defined a policy with two levels, both excluding the "Junior" expertise level, but lowering the responsibility and language requirements on the 2nd level at the 30 second mark.


Call Evaluation

✅ Once assigned to your Contact Center service, the call will be distributed according to the order algorithm.

  1. All skill-defined users are pooled. Users must be available (not in other calls, not busy in meetings, etc.)
  2. The rules of selection are applied (MUST have all skills, MUST be in any allowed responsibility level)
  3. On equal match, the users are selected based on the order algorithm setting (Longest Idle, Best Qualified)

➕ In our example, we explain the algorithm via the two levels defined in our distribution profile earlier:

Level Selection Criteria
  • The Expert is not selected because language skills and responsibility level do not match. Even while "On Call", the language proficiency "Native" prevents distribution.
  • The Support has the required skills. They get the call in either profile.
  • The Expert can now be selected because language skills and responsivity criteria are softened. Either profile will suffice for the call to be distributed.
  • The Support has the required skills as well. They get the call in either profile. However, depending on the order algorithm (Longest Idle, Best Qualified) the Expert might get the call first.



🤔 Sounds complex. Is there an example?

Yes. Expand the tab below to see an example with three distribution levels.

Example Distribution Policy

Each distribution attempt will iterate through the various levels. Think of the distribution level as a set of skills which becomes larger with each level. 

The following example shows you a distribution policy with three levels. In the first level, there are highly skilled and highly responsible agents. In the second level, the distribution will also look for medium skilled people, and in the third level, it will extend the search by low level responsibility in customer service and also by English speaking agents.

An example distribution policy with three levels.

🔍 You can also read the Use Case - Setting up a Contact Center which guides you through all these steps in a basic end-to-end scenario.

Creating Distribution Policies

Requirement: Before you can create and configure a distribution policy, make sure you have defined Skills and Responsibilities in order to continue with the next steps.

General Policy Details

  1. Within the Configuration (Admin), go to "Distribution“ > ”Distribution Policy".
  2. Create a new policy and pick a name that either reflects the intent (e.g. for general-purpose response teams) or a special division (e.g. Sales Team).
  3. Assign an Organization Unit that also will determine where this policy is visible/applicable.
  4. Define the Distribution Order that should apply for the distribution algorithm when multiple agents meet the same criteria:
Order  Description Notes 
Longest Idle (default) Will prefer the Agent which are longest available, even with more qualified agents present.

If a selected Agent is currently unavailable due to any reason (call decline, RONA, IM presence) the Agent is selected.

This is done regardless of skills or qualifications meeting the policy criteria.

Best Qualified

Will prefer the Agent which is most suitable for the task.

  • User skills and their levels are compared against each other.
  • If more than one skill is available, they are treated with same priority.
  • On equal match, longest idle will be used as fallback.
  • Higher responsibility will be ignored.

Preferred and Last User Routing

💡 OPTIONALLY: You can also enable "Preferred User Routing" within your policy. Think of this as a list of users that will always be the first line of defense in your service, regardless of the distribution levels that follow.

To configure this:

Optionally Enable "Preferred User Routing" → further options become available

Option Description
Preferred User Routing

✅ This feature requires your preferred users to be defined via Power Automate Flow, using the Nimbus Connector "UpdateTask" flow action. Note that preferred users need a Contact Center license applied in order to be selectable.

🔍 Preferred User Routing works as follows:

  1. Attempts to connect preferred users within the defined → Waiting Time
  2. Applies the order algorithm among all defined preferred users:
    1. First: Priority – there can be users with the same priority, as defined via "UpdateTask" flow action
    2. Then: Longest Idle
  3. Preferred users will stay on top of the distribution list in all following levels. The "Order" setting of the policy (e.g. "Best Qualified") does not apply as preferred users can be from outside the team and not necessarily require defined skills. → Instead, their own order (priority, longest idle) applies.

Per default, Agents of a service only get tasks distributed when they are considered "selectable", as defined per User States rules. Selectability can also be influenced via Distribution Service Settings


Distribution Settings are ignored on “preferred” non-service users

☝ Preferred users that are NOT part of the service team, the corresponding "Conversation Distribution" Settings are being ignored.

Learn more about this...


  1. For the service's distribution policy "preferred user" are enabled. Users are configured as follows:
    1. User A is preferred in the service
    2. User B is the usual skilled user in the service
  2. Distribution Service Settings are set to "Busy = NOT Distributed to the user"
  3. Scenario: As a call gets distributed, both users are Busy in their MS Teams client:
    1. Preferred User A will get an invitation being in Busy presence.
    2. Skilled User B (while being selectable) will not get an invitation being in Busy presence.


Waiting Time


✅ Applies when "Waiting Time" toggle is enabled. 

Defines the time at which preferred users are considered first before distribution levels come into effect. 

  • Default: 00:00:10
  • Min: 00:00:05
  • Max: 23:59:59

💡 During this time, users are considered as "Level 0", also reflected as such in the Nimbus frontend UI where applicable.

💡 After the time has expired, preferred users will be pooled with other users from Distribution Level 1...x users, and still preferred in the selection.

💡 When waiting time is disabled, the 1st distribution level criteria are applied immediately, but preferred users are also taken into consideration.

Optionally Enable "Last User Routing" 

Option Description
Last User Routing

✅ This feature requires "Preferred User Routing" to be enabled.

💡 You can use this option standalone without Power Automate involvement last users get automatically added to the list of preferred users.

🔎 Last User Routing works as follows:

  • The last user will be automatically added to the list of preferred users with priority "-1" (top priority above even preferred users).
  • Attempts to connect last users within the defined → Waiting TimeA "Last User" is any user with a successful user session(1) being established between same caller and same service. This includes:
  • Anonymous callers are not tracked and thus not associated with "Last Users".

(1)See Nimbus Reporting Model > Static Dimensions > User Session Outcomes.

Last User Routing Threshold


Time until a user is not considered as "Last User" anymore. After the threshold is passed the top-priority is cleared.

  • Default: 07:00:00
  • Min: 00:00:05
  • Max: 30:00:00
  • If Waiting Time toggle is set to false, skip waiting, proceed directly with 1st Distribution, but take preferred users into consideration.


  • The "Distribution Order" setting in your General Policy details (Longest Idle / Best Qualified) applies only for "non" preferred users. Once you define a user as "preferred" they are taken out of the regular distribution pool and treated according to their own order algorithm.
  • User States and system flags such as RONA or Off-Duty States can prevent Preferred- or Last User Routing, meaning regular distribution levels will come into effect if none of the preferred / last users are currently available.
  • If users get their Skills and Responsibilities removed they can still be be considered for "Preferred / Last User" routing, as Priority / Longest Idle state apply.
  • Note that preferred users do not need to be assigned agents of services, but need to have the Contact Center license applied and an "On Duty State" in order to be selectable. If users get their license removed, they remain on the preferred list for any ongoing session. However they can not be selected as "preferred" for future sessions.

Distribution Level definition

1. Within the "Levels" tab of a policy you can add additional levels (e.g. to escalate your Agent selection) or remove them down to one.

2. You can specify details for each level:

Name Name of the level, mainly required for reporting reasons.
Activation Time     
Call waiting time until this policy level should activate.      
The Distribution Order algorithm will always start at the 1st level (00:00:00) for any incoming call.
Skills / Responsibility Levels
  • Adds one or several Skills and Responsibilities as requriement to the according level entry.
  • You can then adjust the sliders to allow for a smaller or wider range on that particular skill.

💡 We recommend to start with the experts (higher levels) first and gradually expand the user pool by widening the filter criteria.

3. Add further levels (columns) and skills (rows) as needed and adjust the skills/responsibility sliders for each level.


☝ Your users must meet ALL skills (AND-concatenated) to be selectable. If your users lack any of the required skills in their User Administration > Skills tab, they will not be selected.


4. Save your policy with a descriptive name (e.g. based on the skillsets required).

  • Only one level and its search criteria applies at a time. Previous levels are disregarded once the next "Activation time" is reached.
  • If a task was not accepted by an agent, the check will be performed again according to the currently active distribution level, until the next "Activation Time" is met.
  • When the last level is reached within a policy, it remains active until the task is canceled - either by caller abort, task cancelled in workflow, queue timeouts, etc.
  • When multiple agents are selectable and available, the distribution Order is applied (→ configured in General tab)

Assign the policy to a service

✅ Precondition: Your previously or newly defined policy will not apply until assigned to a service. To do so:

  1. Head to the Service Administration > Locate any Contact Center licensed service 
  2. Ensure the User Assignment Type is "Skill-based". 💡 Services using other User assignment types cannot use this feature.
  3. Click on the service to reach its Extension Service Settings > Distribution Tab
  4. Assign the Distribution Policy you created in the previous step.     

🤔 Is your Distribution Policy not visible within Service SettingsMake sure to check the Organization Units on both the policy and service. The policy must be on equal or higher OU level as the service to be found in the dropdown.

Table of Contents