Task Parallelization

Handling multiple tasks in parallel

Task Parallelization enables users to handle multiple tasks simultaneously within the Nimbus platform. This includes e.g. managing Audio/Video (AV) calls and External Tasks without blocking the user from receiving a new Audio/Video task. Task Parallelization introduces a more flexible and scalable approach to task handling, especially for service agents working with multiple modalities. Depending on how each modality is configured on the service, users can also receive, pick up and switch to further tasks while a non-blocking non-Audio/Video task is still active – Nimbus parks the previously active task automatically.

✅PRECONDITIONS 

Task Parallelization is enabled on user level via General User Settings (per default disabled). This also allows to set task limits per user, for every supported Nimbus modality. Both general and modality-specific task limits can be set. You may use these limits to account for user experience in handling multiple tasks of certain modality.

💡Good to know: Parking tasks works without having the Task Parallelization feature enabled. Users simply can have only one task parked at a time, as this is their default "maximum".

💡Example: Task Parallelization enabled. 2 simultaneous A/V or Email Tasks can be handled, with a total task limit of 3.  Tasks will be auto-parked when switching. The user can't handle tasks Instant Messaging modality, as it is disabled (limit won't apply).

☝Note that enabling this feature will disable After-Call Work (ACW) for the User, for one exception: ACW starts automatically when an active (non-parked) Audio/Video session ends. This applies to all Audio/Video task types and directions, including consultation calls to services. Parked sessions and other modalities are excluded.

☝Whether an active task blocks the distribution of further tasks is decided per modality on the service, via the "Parallel Tasks Blocking Mode" setting in Modalities Service Settings. Audio/Video tasks always block. → More on this in "(Non-)Blocking Tasks" below.

💡Optional feature per user: the "Enable Quick Switch Between Tasks" setting allows a user to move to another task in a single step, without parking the active one first. → More on this in chapter "Switching between tasks" below.

  • Disable "Busy-on-Busy" teams policy for users parallelizing Audio Tasks, as this otherwise could lead to unwanted effects where MS Teams can block Nimbus from swapping between audio calls it with “Busy on Busy”.
  • Changing this setting significantly impacts the user's daily workflow. Changes to the capacity and modalities should be communicated to users and supervisors in advance.
  • Review the blocking mode of each modality on your services together with the task limits. Both settings together determine how many tasks actually reach a user while they are working.
 

Key Concepts and Features

🔑Key learnings before enabling Task Parallelization

🔎 All concepts are explained in further detail below.

  1. Parallel task handling is only possible for explicitly "Parked" tasks. – "On Hold" tasks are considered active, as Nimbus continues tracking KPIs during this state and the user stays in the task. → More on this in the comparison below. Only one task is ever active. When a user accepts, picks up, Nimbus parks the currently active task automatically. Auto-parking on switching a task is dependent on the "Enable Quick Switch Between Tasks" setting.
  2. After-Call Work (ACW) will not apply for users with Task Parallelization enabled, except for non-parked (ongoing) A/V tasks. In such cases ACW-related Modality Service Settings will not apply for the user.
  3. Persistent RONA will still flag an (unresponsive) user, regardless if there is already a parked session or not. Task Parallelization and configurable task limits do not change how RONA is triggered. Resuming a parked task will remove RONA status.
  4. Note that Task Parallelization does not change Task Queue and Distribution concepts. Nimbus does not "prefer" users with higher parallel task capacity, but adheres to the given concepts such as "longest-idle" Distribution Policies or skill-based Distribution Order.
  5. Audio/Video tasks always block further task distribution. While a user is connected to an active Audio/Video task, Nimbus does not distribute any further task to them – even if their task limits would still allow it. The user has to park that task first.
  6. For all other modalities the service decides. Per modality, a service defines whether an active task blocks further distribution, blocks everything except Audio/Video, or does not block at all. → More on this in "(Non-)Blocking Tasks" below.
 

Comparison: "Park" and "Hold" 

INC Park and Hold Comparison

To understand Parallel Task handling in Nimbus requires a clear distinction between a “Parked” and “On-Hold” task1 status:

  • Parked Tasks remove the user from the call and exclude park time from connected time.
  • On-Hold Tasks keep the user on the call and include hold time in connected time.
  • Both states block the user from receiving new Nimbus tasks unless Task Parallelization is enabled in the General User Settings for the respective modality.
  • Both overall task limits and modality-specific limits can be configured per user. When either limit is reached, no more parallel tasks are distributed, even if all other tasks are “parked”.

☝ Note: This comparison covers the Parked and On-Hold states specifically – i.e. tasks the user has temporarily stepped away from. A Connected (active) task can also be non-blocking, independent of parking: for Instant Messaging, Email and External Tasks, the service configures per modality :

  • whether an active task blocks further distribution, …
  • blocks everything except Audio/Video, …
  • … or doesn't block at all. 
  • Audio/Video tasks always block while active.
 

🔎As Nimbus creates Reporting Sessions for each task, Parking and Holding actions affect the reported KPIs and User States differently. The following table outlines some key aspect differences, using an Audio/Video call as example:

Aspect Parking Holding
User Intention To pause a Nimbus task while being free for other – non-Nimbus related tasks or MS Teams calls. To get a timely response and temporary mute the customer, e.g. to clarify something during a call.
Nimbus User State
  • “Connected” and blocked for other Nimbus tasks, when Tasks Parallelization is disabled
  • “Selectable” and available for other Nimbus tasks. 
    “Selectable” also applies when Task Parallelization is enabled and other Service's Distribution Settings allow the User to be selected.
  • “Connected” and blocked for other Nimbus tasks
MS Teams User Session Status
  • The Nimbus user gets removed from a MS Teams conference and can start a new Teams call.
  • “Available” status in MS-Teams
  • Upon unparking, the gets reinvited to the call (via MS Teams toast) 
  • The Nimbus user stays connected to a MS Teams conference and is blocked from further calls.
  • "Busy in a Call” status in MS-Teams
  • When putting off-hold, the user is already in the session (no additional MS Teams toast) 
Nimbus Reporting and Nimbus KPI Calculations 
  • Park time will not be included into ConnectedTime KPIs. 
  • Only the actual talking time is recorded.
  • Hold time will be included into ConnectedTime KPIs. 
  • Even time not spent talking to the customer is recorded.
Transcription  The transcription session will be interrupted while Parking. The transcription bot will re-join when session is unparked. The transcription session persists while Holding.
Supervision  An ongoing supervision session will be interrupted while Parking and will NOT restart on unpark. The supervised session cannot be put on hold.
Customer Side

No differences for the customer: Will hear waiting music until the call is resumed.

1 It's worth noting that “task” in this context can be understood synonymously with “call”. A task can technically mean any modality & related interaction between Customer and Service (e.g. an IM chat, email, call, external task). A lot of the MS Teams specific UI interactions are skipped in this case and the parked task can resume immediately.

(Non-)Blocking Tasks

Parked tasks are treated as non-blocking, allowing users to accept new tasks. This is especially useful for handling emergencies or supervisor-assigned tasks without disrupting reporting accuracy.

An active task can be non-blocking as well. For Instant Messaging, Email and External Tasks, the service defines per modality how strictly an active task of that modality holds the user back. The setting is called "Parallel Tasks Blocking Mode" and is found in the corresponding modality tab of the Modalities Service Settings.

Parallel Tasks Blocking Mode Effect while a task of this modality is active
Blocking No further task is distributed to the user while this task is active. The user has to park the task to become selectable again. This is the default.
Blocking except for Audio/Video tasks Only Audio/Video tasks are still distributed to the user. Tasks of all other modalities are not.
Non-blocking Any further task is distributed to the user, as long as they are responsible for it and still have capacity – both within their overall task limit and within the limit of the respective modality.

☝IMPORTANT — Audio/Video always blocks

☝ Audio/Video tasks are always treated as blocking and there is no setting to change this. While a user is connected to an active Audio/Video task, Nimbus stops distributing further tasks to them, regardless of their remaining task capacity. The same applies as soon as a user activates an Audio/Video task that was parked before.

 

The following table shows which states apply for tasks to be considered non-blocking:

INC Task blocking states

Modality ►

Audio/Video 

External Task 

Instant Messaging

Email 

Direction ►
State ▼ 

Inbound

Outbound
Call on Behalf

Outbound
Scheduled

Outbound with Workflow

None 
(stays in Nimbus)

Inbound

Inbound

Incoming Blocking Blocking Blocking Blocking Blocking Blocking Blocking
Dialing Out n/a Blocking Blocking n/a n/a n/a n/a
Connected Blocking Blocking Blocking Blocking Configurable3 Configurable3 Configurable3
Transferring Blocking n/a n/a n/a n/a n/a n/a
On Hold Blocking Blocking Blocking Blocking n/a n/a n/a
Parked Non-blocking Non-blocking Non-blocking Non-blocking Non-blocking Non-blocking Non-blocking
Unparking1 Blocking Blocking Blocking Blocking n/a n/a n/a
In ACW2 Blocking Blocking Blocking Blocking n/a n/a n/a

1 Not a visible state on the UI. While Nimbus is unparking a session, a “blocking” invitation in MS Teams prevents the user from receiving further tasks.
2 Includes extended ACW. Generally the ACW timer will not start when a parked session is being terminated.
3 Configurable per service via Modalities Service Settings.

💡As long there is another task in a blocking state, the "Unpark" button will be disabled in the UI. Users with the "Enable Quick Switch Between Tasks" setting turned on are the exception – for them the "Unpark" button stays available while another task is active.

Switching between tasks

Once Task Parallelization is enabled, a user can move from one task to another in a single “Parking” step.

  • Optionally the "Enable Quick Switch Between Tasks" setting removes the manual parking step. The user simply activates/unparks the task they want to work on, and Nimbus resumes the previously active task automatically.
  • Unparking a task — manually pressing "Unpark" on a parked task parks the currently active task first, then unparks the requested one, effectively swapping the two tasks in a single action. This works for tasks of every modality, Audio/Video included. 
    ☝️ Keep in mind: A parked Audio task still has to be accepted via the Teams toast; if it is not accepted, both tasks remain parked.
  • Parking ends After-Call Work (ACW) when allowed – If the user is in ACW for a task – and provided the service allows ACW to extend or end early – ending ACW does not trigger a new task to be assigned as a side effect. Instead the user continues directly with the task they resumed.
  • Activating a task still clears a RONA flag, consistent with existing behavior, also when the switch parks another task on the way.
  • If the newly activated task is a blocking one (any Audio/Video task, or a modality configured as "Blocking"), Nimbus stops distributing further tasks to the user from that moment on.

☝IMPORTANT

"Enable Quick Switch Between Tasks" is a per-user setting and disabled by default. With the setting turned off, a user always has to park their active task manually before they can unpark another one. As the toggle has impacts on related Reporting KPIs, communicate the change to users and supervisors before enabling it.

 

Starting a Call on Behalf with an already active task

With "Enable Quick Switch Between Tasks" turned on, users also start a "Call on Behalf" without parking their current task first. The action stays available in Assistant, My Overview, Services Overview , Attendant Console and My Sessions while a task is active:

  • The active task is parked automatically when the call is started from the "Call on Behalf" dialog, regardless of its modality — including an active Audio/Video task. This overrides the usual rule that an active Audio/Video task blocks starting new actions.
  • Task limits still apply. The user needs a free Audio/Video task slot for the call. If the Audio/Video limit has already been reached, the start button in the dialog is disabled and a tooltip points out that the maximum number of Audio/Video tasks is already reached.
  • If the active task cannot be parked, the call is not started either. Nimbus informs the user on the UI and leaves the active task untouched.

Receiving a new task while already connected to a (non-blocking) task

When the task a user is currently connected to is configured as "Non-blocking" or "Blocking except for Audio/Video tasks", Nimbus can distribute a new task to that user exactly as if they were fully available – as long as they still have free capacity, both overall and for the modality of the new task.

  • The incoming task is shown above the connected one on My Sessions and Attendant Console, with an orange outline on the Active widget whenever a user has both a Connected and an Incoming session at the same time.
  • Accepting a new incoming task automatically parks the connected non-blocking task. If the user had unsent changes on the connected task (e.g. an email reply or an unsent Instant Messaging draft), that draft is saved automatically before parking.
  • Declining or ignoring the incoming invitation does not change the state of the ongoing connected task. 

🔎 User state: resolving readiness and overlapping states in the UI

User readiness for new tasks is calculated based on whether a user can still receive a task, not simply based on their remaining capacity for a new one: a user is Ready if they can still take on at least one more task, and Not Ready once they have reached their total or per-modality task limit, or their active task is a blocking one. 

The Time in State field continues to be tracked the same way regardless of which of these reasons applies. Availability calculation on the service level is unaffected – it already reflects users correctly as available whenever they can take on a non-blocking task without exceeding their limit.

Because of this, a user who is already connected to a non-blocking task can receive a new task before a fully idle colleague does, depending on the configured Distribution Policy (e.g. Longest-Idle):

  • 12:00 – User A accepts a non-blocking task and becomes selectable again, since the task doesn't block.
  • 12:01 – User B ends an Audio/Video call and becomes idle.
  • 12:02 – A new Audio/Video task enters the queue. User A, still the longest-idle user, receives the invitation ahead of User B.

When ready, a user is being invited to a new task. The User State shows Connected until the invitation is answered, rather than Ringing
💡 Example: Already connected to an Instant Messaging task, a user receives an incoming Audio/Video invitation; The user state remains Connected until the new task is answered.

 

“Picking up” a task while working on another task

Users can also "Pick up" a waiting task from a queue while they are already working on an active task. Nimbus parks the active task automatically as soon as the picked-up task is accepted. The usual conditions still apply:

  • The active task must be non-blocking. Pickup is not offered while an Audio/Video task is active, or while an active task belongs to a modality that the service configured as "Blocking".
  • Capacity and responsibility apply as always. The user needs a free task slot – both overall and for the modality of the task – and has to be responsible for the service the task waits in. → See Task Queue and Distribution.

🔎 See also "Receiving a new task while already connected to a non-blocking task" above for how a task can also be pushed to a user in this situation, rather than picked up by them.

RONA while working on multiple tasks

  • If persistent RONA is configured for the service, the user is still flagged with RONA as usual
    ☝This also applies while the user is working: if a task is distributed to a user who is already handling another task and the user ignores it, they are flagged with persistent RONA and receive no further tasks until the flag is cleared – even if their task limits would still allow more tasks. See "Receiving a new task while already connected to a non-blocking task" above for how this interacts with the Connected state.
  • Parking a (still-connected) task afterwards does not clear that RONA flag
  • Unparking a parked task resets RONA. If a user is in persistent RONA while still connected to another task, the user state shows RONA, since it takes priority – this keeps the need for attention visible even though the user is actively working. 
    💡 Example: a user connected to an urgent Email session ignores an incoming Audio/Video call and is shown as RONA while still working the Email.

💡Users can reset their RONA state by unparking a task.

Task distribution among multiple users with "parked" tasks

🔎 Nimbus uses a Task Queue and Distribution system that defaults into distributing tasks to the "Longest-Idle" user. A user with a a parked task is still considered "selectable" and thus available to take new tasks.

💡In this example we focus on just two Users A and B, using Audio Calls as modality. A maximum task limit of 2 is set for simplicity:

Time Step Expected Result User A User B
      State Time in State Number of Tasks State Time in State Number of Tasks
11:58 Pre-requisite User A is available and idle longer than User B Available 10 min 0 Available 5 min 0
11:59 Task 1 enters the queue User A gets the invitation (longest-idle1) Not Available 0 min 1 Available 6 min 0
12:00 User A accepts the call Time in state keeps counting up Not Available 1 min 1 Available 7 min 0
12:05 Call 2 enters the queue User B gets the invitation (is available) Not Available 6 min 1 Not Available 0 min 1
12:10 User A parks the call User A becomes available Available 0 min 1 Not Available 5 min 1
12:11 User B terminates the call User B becomes available (idle time starts) Available 1 min 1 Available 0 min 0
12:15 Call 3 enters the queue User A gets the invitation (longest-idle1)
User A now has the maximum number of parallel tasks
Not Available 0 min 2 Available 4 min 0
12:20 Call 4 enters the queue User B gets the invitation (is available)  Not Available 5 min 2 Not Available 0 min 1

💡Learnings on (parallel) Task distribution

  • Longest-idle1 first remains: Even if User B has 0 tasks, User A gets 2 tasks because they are the longest-idle, which is the default task distribution method by Nimbus.
  • Tasks limit: When User A accepts and parks a 2nd task, they still remain "not available" due to the maximum task limit.
  • General rule: When a user actively changes their User State to DND, they are immediately "not available". This takes precedence over any maximum task limit set.
  • Audio/Video is the blocking case in this example: User A only becomes selectable again after parking the call. Had the same scenario used a modality that the service configured as "Non-blocking", User A would have stayed selectable while the task was still active.

☝Keep in mind: Instead of the longest-idle, Services can different Distribution Policies to target the Last, Preferred or Most Qualified users first. In general, any "not selectable" User State (either caused by the user or Nimbus) can prevent further task distribution. A higher task-limit on any user does not steer nor impact Nimbus task distribution preferences between users.

 

Active Task prevention

If users want to actively prevent getting new parallel tasks, they need to either:

☝Keep in mind that an active task alone does not necessarily stop task distribution. Depending on the "Parallel Tasks Blocking Mode" of the modality, further tasks may keep arriving while the user is working.

Parallel Tasks in the Nimbus UI

The Nimbus UI will show notable differences to users. With task parallelization enabled on their settings, users will now see a capacity indicator in the header of My Overview, My Sessions, Attendant Console, and Assistant. The header conveys capacity information in number and color, showing both used and available task slots per modality.

Task Capacity shown in headers
Example: Task Capacity popup in the Services Overview

☝️Task capacity visibility

  • Regular users (Team Members, Agents) may only see their own task capacity as a numerical value. Other capacity is just shown as a visual representation (e.g. bar-chart). 
  • By accessing Personal Dashboards users in a "User Supervisor" Portal Role can see the capacity of all other users. To do so, they need to add a "Modalities and Capacity" column to the "User State" or "User Supervisor" widget.
Example: Detail "User State Tabular" overview, showing the task capacity of multiple users
 

Handling tasks in Nimbus Assistant, My Sessions and Attendant Console

Assistant shows incoming tasks of all modalities while another task is already connected. Users handle the incoming task directly from Assistant, with the same options they have in Attendant Console and My Sessions:

  • Accept the task and start working on it. The connected task is parked automatically.
  • Park it right away to keep the task without interrupting the one they are working on.
  • Decline the task so that it returns to the workflow.
Assistant: Example of a new incoming task with an already ongoing one

💡 While a task is connected, the "Parked Tasks" section is not shown in Assistant – the connected task and any incoming task take its place. Main work (e.g. handling the content of Emails or Chat windows ) continues in the Main Nimbus UI (e.g. My Sessions) for the currently ongoing task.

Reporting

While definitely affecting KPIs Task Parallelization has no specific or systemic reflection on Nimbus Reporting. Nimbus will always create and track separate Service / User sessions for each task, of course with an overlap of session timestamps to be expected.

💡Keep in mind: Task Parallelization for any user will result in an overall longer average (Service/User) Session length in the Reporting Data. The removal of After-Call Work (ACW) for users handling multiple tasks in parallel will also be notable in reporting.

 

Known Limitations

INC Parking Limitations

☝KNOWN PARKING LIMITATIONS

We are actively working on further improvements for the following items:

  • Audio/Video modality only: While being at the maximum limit of parked tasks a user is still shown as “Available” in MS Teams, leading to the assumption that they can receive further calls. Nimbus will not distribute any tasks, but any incoming (blind / safe) transfers to those users will not succeed.
 

🔎DESIGN NOTES

  • With Task Parallelization enabled, up to 20 simultaneous tasks  are now allowed in parallel per user at any time. Nimbus development is improving the UI according to customer feedback. However, the intent will never be to “park” tasks long-term.
  • Call On Behalf and “Pickup” Task Queue and Distribution restrictions: While a user has reached the maximum number of parked sessions, the “Call on Behalf” and “Pickup” buttons on the UI will be disabled to adhere to the task limit. 
    • This is a separate mechanism from the “Enable Quick Switch Between Tasks” setting: Quick switch lets Call on Behalf and Unpark auto-park the currently active task to make room, but it cannot bypass the user's overall or per-modality task limit. → See "Switching between tasks" on the Task Parallelization page.
  • “Unpark” button availability: By default, Unpark is disabled while another task is active. With "Enable Quick Switch Between Tasks" enabled for the user, this restriction is lifted – Unpark stays available while another task is active, and Nimbus parks the active task automatically first.
  • After-Call Work (ACW) no longer applies to tasks once Task Parallelization is enabled for the user, to prevent conflicts and non-transparent timing constraints between parallel tasks. 
    • Note that this does not apply for active Audio/Video tasks - if an active (non-parked) call is terminated, the ACW will start. 
    • When a user also has "Enable Quick Switch Between Tasks" turned on, unparking another task (or starting a Call on Behalf) while in ACW ends that ACW automatically, provided it can already be ended (early end allowed, or already extended).
  • While being “Parked”, External Tasks cannot be removed via Nimbus Power Automate Connector nor Personal Dashboards. This is intentional design as the task is considered as currently being actively handled.
  • Nimbus Assistant will reflect the (parked) session in a simplified manner. When Task Parallelization is enabled, “Parked" sessions will be shown with a link to My Sessions where unparking and detail work is done. When Task Parallelization is disabled, a simplified “In a call / On Hold” status will be shown.
    💡Rationale: Nimbus Assistant will remain an intentionally designed side-view app to notify about pending tasks. It is not purpose-build for full on task management, which is why My Sessions and Attendant Console are created to display handle tasks in parallel, with specific modality needs in mind.

General technical limitations (wont fix):

  • While being Busy in a call / DND / Offline in MS Teams, users can still unpark existing sessions. However, MS Teams may then not send an invite back into the (call) session. → Nimbus won't introduce any validation here, leaving it up to users to decide when to unpark.
  • While handling Instant Messages and External Tasks, MS Teams presence is not updated, but Nimbus tasks are active.
    💡Rationale
    • Nimbus has no active control over MS Teams presence (read only) and cannot prevent a user from working on IM and EXT, even while the tasks are parked in the UI. 
    • Also, when a user switches between two different chats or external tasks outside the My Sessions or Attendant Console UI, Nimbus will not automatically learn about this task update.

☝General recommendation: Instruct users to use the Nimbus Portal UI to ensure tasks are parked / put on hold / resumed properly, e.g. to reflect correct reporting on connected time for each parallel task.

 

Table of Contents