Task Priority

Configurable Property Description Behavior What it looks like
Task Priority
  • Strict*
  • Highest
  • Very High
  • High
  • Normal (Default for Services)
  • Low
  • Very Low
  • Lowest
  • Nothing Else*

*¬†see ūü§Ē

When a new task enters the to the queue, it gets a priority according to the service setting:

  • Tasks are distributed according to your currently applied¬†Distribution Policy¬†(e.g. "Longest Idle" or "Most qualified"¬†users first).
  • The order of Tasks is¬†handled by priority, meaning:¬†
    • A new task of higher priority over existing tasks will take precedence and be handled as soon as possible.
    • A new task of equal priority will be sorted in below already existing tasks of the same priority, as it entered the queue at a later point of time.
    • A new task of lower priority will be sorted "in-between" higher priority task rounds, using a weighted round robin method. ‚Üí See chapter below.

ūü§Ē When should I select "Strict" or "Nothing Else" as my priority?

  • "Strict Tasks" will always be put on top of your queue.¬†Use this for Emergency services and important VIP hotlines that always should get precedence over anything else in your queue.
  • "Nothing Else" Tasks will only get distributed when your service queue is empty.

‚ėĚ Note that selecting either "Strict" and "Nothing Else" will ignore round-robin distribution. Tasks get lost due to potentially long queue times.

In views with a task list (e.g. My Overview or Personal Dashboards with "Task" widgets) a "Priority" column indicates how high this task is ranked in the queue. With this setting, tasks may now "displace" existing tasks to a new rank.

 

Weighted Round Robin Task Distribution

Due to the rules above, task may "starve" for very long in a queue. An example would be a "Lowest" priority task getting outranked by higher priority tasks. To avoid this, a weighted round robin method is in place to mix in lower-priority tasks, equally distributed amongst available users:

Learn more...

Q: Calls in Queue | H: Handled | R: Remaining

Priority Q H R H R H R H R H R H R H R H R H R H R H R H R H R H R H R
1 (high) 12 2 10     2 8         2 6     2 4         2 2     2 0        
2 (med) 6     1 5     1 4         1 3     1 2         1 1     1 0    
3 (low) 3                 1 2                 1 1                 1 0
Round Counter Round 1 Round 2 Round 3 Round 4 Round 5 Round 6
Time (t) t1
tn

WEIGHTED ROUND ROBIN

The Round Robin procedure distributes the calls in such a way that the ratio between the individual priority levels is always 2:1. Each time another "Round" is started, that round counter is applied to the "weight" of the remaining tasks.

The example above assumes a configuration with 3 priority levels. There are 21 calls in the queue, with the following priority:

  • 12 calls with priority 1
  • ¬†¬†6 calls with priority 2
  • ¬†¬†3 calls with priority 3

Following the 2:1 rule, the calls are queue over time t as follows:

  1. Round 1: High Med tasks added in 2:1 ratio.  No "Low" priority tasks in Round 1 as "Medium" task count outweighs the low task count.
  2. Round 2: High Med Low tasks added in 2:1 ratio. The "Low" priority  tasks get a round-multiplier added to their weight, now outweighing "Medium" tasks and thus are added in a 2:1 ratio.
  3. Round 3: Same as Round 1.

(info) Sources: Weighted Round Robin (Wikipedia Article). Please note that this example only works as long as no new calls are being processed. Calls with strict or no priority are not considered in this rule.

 
 

Task Priority in "Queue" workflow activities

In a multi-service environment, the "Priority" setting effects your "Distribution Type" setting within a Queue Workflow Activity:

Scenario
Setup
Outcome
Learnings

2 Services A&B using a "Broadcast" Queue Activity setting in their Workflows.

  • Service A¬†: Broadcast, Calling Timeout - 30, priority "Low"
  • Service B: Broadcast, Calling Timeout - 30,¬†priority "High"
  • Both services pool the same 10 users, Active and Available
  1. A first (low) call to Service A will block all 10 users with the call invitation.
  2. A second (high) call to Service B enters the queue. All users are still blocked for the 30s timeout.
  3. The first (low) call is declined by 1 user, which then immediately gets the second (high) call distributed. 
  4. All 9 users are still blocked by the (low) call engagement until it is handled.
  5. Only the 1 user finishing the (high) engagement may take the next (high) priority call.
ūüí°The¬†"Broadcast"¬†Queue setting is fixed to a 10-user batch. In a Priority scenario the first call entering ‚Äď even if lower priority ‚Äď may block higher priority tasks.

Table of Contents