Use Case - Building a Priority Service in Enterprise Routing

Distribute priority calls quicker than non-priority calls without making use of the Distribution Priority activity.

This use case illustrates how to distribute "priority" calls quicker than "non-priority" calls, without making use of the Workflow Activities - Distribution Priority activity which is only available in Contact Center license.

In this example, we want to prioritize customers residing in a specific country. The condition to be a priority call can be defined upon to your needs. You can combine this with Use Case - Distinguishing external from internal calls to give external calls a priority.

PRECONDITIONS

You require service owner rights to to create the services and build the flow using the Nimbus Power Automate Connector.

  • A main service is set up.
  • A priority service is set up.
 

INC Icon Legend Accordion

Show Icon Legend

💡 = A hint to signal learnings, improvements or useful information in context. 🔍 = Info points out essential notes or related page in context.
☝ = Notifies you about fallacies and tricky parts that help avoid problems. 🤔 = Asks and answers common questions and troubleshooting points.
❌ = Warns you of actions with irreversible / data-destructive consequence. ✅ = Intructs you to perform a certain (prerequired) action to complete a related step.
 
 
 

Prepare Nimbus

Create these Parameters in the system:

Name DefaultValue
PriorityServiceQueuePosition 0
MainServiceQueuePosition 0
TransferToPriorityService -

Build the Workflow

Overview of the workflow

 
 
Description
Screenshot

We start with "Accept" to get calls into the service

 

-

Add a "Check Parameter" activity and check on the value that determines if the call has priority.

In our example we check if the Customer.Country has a specific value.

  • For No Match or Not set route directly to the queue of the current service, as this is the main queue.
  • For isPrioCall route to the next activity

 

For the priority calls we need to determine the “Availability-Based Routing” for the current service.

  • For Direct Available route directly to the queue of the current service, as someone will reply immediately.
  • For No One Available or In Time Available we want to look at the queue positions in the main service and the priority service

 

Add a "Get Queue Position" activity to the flow and save the position value into the parameter "PriorityServiceQueuePosition"

 

 

Add a "Get Queue Position" activity to the flow and save the position value into the parameter "MainServiceQueuePosition"

💡 This activity will be needed as a Trigger Event for the power automate flow.

 

Add a “Wait For Parameter” activity to the workflow to wait until Power Automate updates the TransferToPriorityService parameter.

Add a "Check Parameter" activity to the workflow and check on "TransferToPriorityService"

  • For No Match or Not Set route directly to the queue of the current service.
  • For TransferToPriorityService route to a transfer activity

 

Add a final "Transfer" activity which routes to the Priority Service.

 

Build the Power Automate Flow

The Power Automate flow is very quick to set up. We want to check if the PriorityServiceQueuePosition is lower than the MainServiceQueuePosition.

  • If Yes, then we set the TransferToPriorityService parameter to "Yes" so that the call is routed to the priority queue within the workflow.

 See the flow overview

 
 
  1. Configure the trigger as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Service Item Select the UPN  of the service
Task Events Select Parameter Updated
Trigger conditions

On the Settings page of the trigger add the following trigger condition to make sure the flow only gets triggered when CustomerIdentifier parameter is updated:

@equals(triggerBody()?['updatedParameterName'],'MainServiceQueuePosition')

  1. Add a Data Operation "Filter arrayaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
From 🌟Task Information Custom Context Parameters
Filter Query
  1. item()?['Name']
  2. is equal to
  3. MainServiceQueuePosition
  1. Add another Data Operation "Filter arrayaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
From 🌟Task Information Custom Context Parameters
Filter Query
  1. item()?['Name']
  2. is equal to
  3. PriorityServiceQueuePosition
  1. Add a Variable "Initialize variableaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Name MainServiceQueuePosition
Type Integer
Value

Enter the following expression:

int(body('Filter_array')?[0]['Value'])
  1. Add another Variable "Initialize variableaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Name PriorityServiceQueuePosition
Type Integer
Value

Enter the following expression:

int(body('Filter_array_1')?[0]['Value'])
  1. Add a Control "Condition" action to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Condition expression
  1. @{variables('PriorityServiceQueuePosition')}
  2. is less than
  3.  @{variables('MainServiceQueuePosition')}

In the True branch

  1. Add a Luware Nimbus "Update taskaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Task ID 🌟 Task ID
Custom Context Parameters

Click on and add

[
                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                    "name": "TransferToPriorityService",
                                                                                                                                                                                                                                                    "value": "Yes"
                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                ]
All other fields <leave empty, as is>

In the False branch

  1. Add a Luware Nimbus "Update taskaction to your flow.
  2. Configure the action as follows:
Field Fill in / 🌟 = Nimbus dynamic content 
Task ID 🌟 Task ID
Custom Context Parameters

Click on and add

[
                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                    "name": "TransferToPriorityService",
                                                                                                                                                                                                                                                    "value": "No"
                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                ]
All other fields <leave empty, as is>

✅ You are now ready to test the flow.

Table of Contents