In this use case, we want to use a shared calendar in Outlook 365. The supervisor creates calendar entries with a specific name like "OnCall" and invites all agents, with a defined maximum of 10 agents who are on call.
In Nimbus, then we use the Workflow to route to the on-call agents when the service line is closed. We will achieve this with several Parameters that get populated via Nimbus Power Automate Connector.
Preconditions
Enterprise Routing Licensing is required to make use of Nimbus Features such as the Nimbus Power Automate Connector and Parameters.
With an additional Contact Center Service license we can additionally leverage Preferred Users as part of the services Distribution Policy.
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. |
Setup: Single On-Call Agent
Outlook
Create a shared calendar in Outlook 365.
💡 The supervisor needs to create calendar entries with a specific title like "OnCall," and invite the agent who is on call.
Nimbus
The workflow will route to the on-call agent if the service line is closed.
- Trigger the Power Automate flow using Save to Parameter.
- Add a wait for Parameter which waits for the OnCallAgent to be set by the flow.
- Add an Announce element to confirm it works.
- Optionally, you can add error handling here by using a Check Parameter element to confirm that the value contains a real user. If it doesn't, you can directly the flow to do something different (e.g. disconnect the call).
- Add a Transfer element to transfer to the OnCallAgent Custom Parameter.
Power Automate Flow
Description | Screenshot |
---|---|
Listen for the event Parameter Updated (set a trigger condition to run the flow when the correct parameter is updated). | |
Then use Get Events, and filter for events titled "OnCall" occurring between the start and end timestamps.
The response should only show one event at that time. The event data should include the following information, showing the organizer and the agent:
|
|
Add a
Optionally, you can use a condition here to check the length of the value collection (omitted from this example for simplicity).
outputs('Get_events_(V4)')?['body/value'] |
|
Next, we split the values from requiredAttendees and filter out the organizer using Filter array.
|
|
The array will still have an empty item that needs to be removed:
After this, we'll have an array with a single entry: the agent.
|
|
We can now update the Nimbus task. Selecting the value will automatically insert a loop on body('SelectRequiredAttendeesWithoutOrganizerAndEmpty'). |
Setup: Up to 10 On-Call Agents
This scenario is slightly different from the previous one with a single on-call agent.
Limitation: Currently we can only set a maximum of 10 on-call agents. The values for the agent list cannot be handled dynamically.
Outlook
Create a shared calendar in Outlook 365.
The supervisor needs to create calendar entries with a specific name like "OnCall" and invite all (maximum 10) agents that are on call.
Nimbus
In the workflow, we want to route to the on-call agents when the service line is closed. We need to add (up to) 10 Parameters to Nimbus:
OnCallAgent1
OnCallAgent2
…
OnCallAgent10
In the workflow, we need to transfer to each single agent sequentially.
Power Automate Flow
Description | Screenshot |
---|---|
We need to create two variables:
|
|
Then we collect the on call agents in the for each, which is slightly different: We loop on the items in the filtered attendees list. We also need to use a counter and loop until the counter value is 10. |
|
Within the loop, we collect all on-call agents in the OnCallAgentList array: |
|
This creates an array. | [ { "Name": "OnCallAgent1", "Value": "gerry@lunifico.com" }, { "Name": "OnCallAgent2", "Value": "bryan@lunifico.com" }, { "Name": "OnCallAgent3", "Value": "adam@lunifico.com" } //... ] |
At the end of each iteration, we'll need to add 1 to the counter variable (using a compose to do the operation Counter++). |
|
After the loop we can set the Custom Context Parameters in the Nimbus task: |
Contact Center
In a Contact Center service, we can use the Preferred Agent list as the list of on-call agents when a service is closed.
Outlook
Same as Enterprise Routing, but there is no limit on the number of agents.
Nimbus
For this scenario, we don't need to create parameters. In the workflow, we'll route from the closed workflow element directly into the queue.
We still need the trigger for the Power Automate flow. We also need to allow enough time for the flow to run and set the preferred agents. Thus we leave the “Wait for Parameter” element in the workflow:
MS Teams
For all on-call agents we want to configure call forwarding via Microsoft Teams Client.
- Open Microsoft Teams and go to your profile picture in the top right corner.
- Click Settings.
- Navigate to the Calls section.
- Under Call answering rules, choose one of the following options:
- Call forward: You can set Teams to forward your calls directly to your mobile phone after a set number of rings.
- Simultaneously ring: This will ring both your Teams client and your mobile phone at the same time, so you can pick up the call from either device.
Power Automate
Description | Screenshot |
---|---|
The OnCallAgentsList will be slightly different: |
|
The array looks like this: |
|
Then we need to set the Preferred Users list in the Nimbus task:
Be sure to to set the OnCallAgent Custom parameter, so that the workflow notices the update. |