Workflow Activities
Notes
The following page will describe workflow activities and their conifgurable properties.
- Terms like "Workflow Step", "Workflow Element" and "Workflow Activity" are used synonymously.
- Certain Workflow Activities are limited by your Service Type and related license. Check Nimbus Features for a comparison. Activities below are marked accordingly. Service license downgrades may not be performed until you removed the according activities from your workflows.
- Certain Activities have required predecessor activities, marked with
- ensure to have them in your workflow to avoid errors in call handling.
- Activities with Text-to-Speech (TTS) engines used in the activities below are provided by Microsoft. We dynamically update the list of available languages. Any old or outdated selections may therefore be marked with a warning that disappears until you select a different TTS-engine. Your existing "outdated" TTS-activities still remain intact as a working copy on the Nimbus infrastructure until you change them.
Important Note: Workflows heavily rely on other Configuration data entities such as Opening Hours, Parameters, Playlists etc. The visibility of these entities within an workflow activity dropdown menus is determined by the Organization Unit (OU) "Reading along the path" rule.
The viewpoint on visible data is the Organization Unit of your workflow, not that of your user account. When workflow-dependent items are moved to a different OU, your workflow continues to function normally, but the item cannot be found in the property-selections anymore unless your workflow changes the OU accordingly.
Accept Conversation
Accepts an incoming conversation and establishes the AV channel to the caller.
Configurable Properties | Description |
---|---|
None | Controls when your call will be accepted (also for Reporting / KPI purposes).
|
Announcement
Plays a defined resource or text to the caller. Can generate text to speech "on-the-fly".
Required Predecessor: Accept Conversation
Configurable Properties | Description |
---|---|
Announcement Type |
|
Add Parameters ( Toggle ) | Will allow the use of Custom Parameters and Context - Fields and Parameters in the "Prompt Text" Field.
|
Prompt Language | Allows to select the locale / voice to use when using the Text-to-Speech engine. |
Prompt Text |
Usage and Luware fair use policy
|
Input Customer (IVR)
Plays a prompt while allowing the caller to perform DTMF inputs.
Good to know
- This action uses up to 10 exit nodes. When the corresponding Prompt properties are not filled out, those are grayed out.
- An input may be marked as unclear and escalated with a prompt when the user enters an unexpected key combination.
Required Predecessor : Accept Conversation
Configurable Properties | Description |
---|---|
Main Prompt Type |
|
Prompt Language | Allows to select the locale / voice to use when using the Text-to-Speech engine. |
Prompt Text |
Allows you to add text that will be read in the prompt language / locale. |
Input during announcement | Defines when the caller is allowed to enter input:
|
Max Input Timeout | Enables a maximum wait time to be specified in fields below. |
Max Input Timeout hh:mm:ss (default 00:00:30) | Maximum wait time for any caller response to be started.
|
Time to complete started input hh:mm:ss (min 00:00:01, max 00:00:09) | Specifies the time the caller has to make the input. |
Expected Input | Description |
Name | A clear name for the exit node.
|
DTMF | Allows to enter multiple DTMF tones / digits per exit node.
|
Missing Input | Description |
Missing Input Timeout | Time for the caller to enter input. Afterwards the 1st silence prompt is played. |
Missing Input 1st Prompt | Message to play when the input was not occurring in the timeout. A selection of the following options:
If User enters no input within the silence timeout:
|
Wrong Input | Description |
Wrong Input 1st Prompt | Message to play when the input was not recognized. A selection of the following options:
If User enters a wrong input:
|
Collect Information
Enterprise Routing Contact Center
Allows to store DTMF inputs in Parameters, exiting based on whether or not an input was received. The parameter can also be used in other areas and verified via the "Check Parameter" activity.
Required Predecessor: Accept conversation
Configurable Properties | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
Main Prompt Type |
| ||||||||
Prompt Language | Allows to select the locale / voice to use when using the Text-to-Speech engine. | ||||||||
Prompt Text |
Allows you to add text that will be read in the prompt language / locale. | ||||||||
Input during announcement | Defines when the caller is allowed to enter input:
| ||||||||
Parameter To Save |
Custom parameters can be used in the following areas:
| ||||||||
Input Timeout hh:mm:ss (default: 00:01:00, min 00:00:01, max 02:00:00) | Defines the maximum time in which a caller can enter and complete the input:
| ||||||||
Max DTMF Digits (default: 1, min:1, max 999) | Defines the maximum of DTMF tone digits. The collection will be stopped automatically if the defined maximum is reached and the input is stored. | ||||||||
Node Exits | The "input received" activity exit is taken under the following conditions:
In all cases the parameter is stored and the default / previous parameter is overridden. Account for parameter processing delays A common use case is to add a "Check Parameter" activity right after your "Collect Information":
Recommendation: When involving an external system (e.g. using the Microsoft Power Automate Connector ), add an "Announcement" or other delaying workflow activity that allows "Check Parameter" to catch the updated return value. |
Play Music
Plays a single music (or any other sound file) or a combined playlist.
Required Predecessor: Accept Conversation
Configurable Properties | Description |
---|---|
Resource Type | Allows to choose between resource types: |
Shuffle Playlist |
|
Duration | Limits the duration for this step:
|
Duration | Determines how long the playlist or resource is played.
|
Disconnect Conversation
Terminates an incoming conversation or disconnects an accepted conversation.
Required Predecessor: None
Configurable Properties | Description |
---|---|
None | Acts as end node to terminate the call. Required to close the task for reporting purposes. |
Voice Message (Recording)
Available for Advanced Routing and Enterprise Routing. Not available for cross-team Contact Center services as no single MS Teams channel can be attributed for handling and reviewing recorded messages.
Allows the caller to record a voice message. Exits when the maximum recording time is reached.
Required Predecessor: Accept Conversation
Configurable Properties | Description |
---|---|
Play Recording Tone (toggle) | Plays a beep tone.
|
Maximum Recording time (hh:mm:ss) | Starts the recording for the configured time span. Maximum 2 min. Afterwards the call is terminated.
|
Message | Will send a message to the service chat channel within MS Teams. Example Message:
CODE
Also supports MSFlow Context - Fields and Parameters, like:
|
+System / Custom Parameter | Allows the use of custom user Parameters and System Parameters, in the message. → Selected Parameters are inserted at the current cursor position in the "Message" field.
|
Interaction within Adaptive Cards
This activity interacts with "Adaptive Cards"
Once the "Voice Message" activity is finished:
- An Adaptive Card is sent to the Teams Channel with the Message and the recorded Audio File being directly accessible.
- SIP and phone parameters are added with a hyperlink.
By default the message state is: "New". The state updates according to the following actions from any of your team members:
- Once it was listened to by a team member the message can be set from new / solved to "Listened" . → A message "Listened by <ms teams user name>" is added.
- A team member can set the message to "Solved". → The message is set to "Listened" and a message "Solved by <ms teams user name>" is added.
Transfer
Transfer the caller to another service, user (within tenant) or SIP-address.
- Exits if the transfer to the target was not successful (either "declined" or "timeout").
- A transfer results in a new session reporting in the new service. The old task will be closed and concluded a result. → Also see " Transfer Task Results " below.
Required Predecessor: Accept Conversation
Configurable Properties | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Target | Allows you to define a transfer target, with a choice between:
Notes on Transfers
Transfer to PSTN limitation Out-of-the-box, Nimbus and affiliated addons can only perform PSTN transfers according to Microsoft's licensing and constraints. Which PSTN license do I need to acquire?
How does PSTN licensing affect Service and Call Transfers?Assuming that Service A has a PSTN license assigned - but further Services don't - the following scenario may unfold:
Luware Support
Transfer to Teams-native "Auto Attendants" and "Call Queues" Nimbus does currently only support call-forwarding via Blind transfer to either UPN or PSTN numbers of Teams-native "Auto Attendants" and "Call Queues". Any safe transfer or consultation attempt will lead to a call abort. Causes and WorkaroundsThis is caused by Microsoft Teams limitations and cannot be circumvented by Nimbus.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Leave Nimbus |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transfer to Voicemail |
KNOWN LIMITATION Currently there is no way to check ahead if a (target) user has voicemail features enabled. This is a design limitation by Microsoft which Nimbus currently cannot circumvent. Additionally the voicemail feature may also be deactivated as tenant-wide IT policy by your administrator. There are also known cases where Microsoft accepts transfers to voicemail but the recipient has no means to check (e.g. MS Teams Client / License restrictions). → We highly recommend using this feature only in case voicemail is enabled for the Microsoft Teams user.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Timeout |
When the timeout criteria is met, the transfer is aborted ("Failed" exit is taken) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Waiting Music | Allows to choose a playlist (default) or a single resource to play.
|
Transfer Task Results
Transfer task results – used for Nimbus KPI Calculations and the Reporting service / user task model – can depend on the following transcripts:
Transcripts | Description | Transfer Task considered as handled |
---|---|---|
Customer Hangup Before Accept | Customer hung up the call before it was accepted | |
Customer Hangup In IVR Customer Hangup In IVR after queue | Customer hung up the call before it was put into the queue once | |
Customer Hangup In Queue | Customer hang up the call during the time the task was enqueued | |
User Accepted | User accepted the task and was connected to the customer | |
User Internal Transfer Success | User accepted the task and transferred it to another service Line or user | |
User External Transfer Success | User accepts the task and transferred to a non service line or user | |
Workflow Disconnect After Queue Workflow Disconnect System Failure | Workflow terminates the call after it was put once into the queue Workflow terminates the call, which was never put into the queue Something went really bad, including Microsoft infrastructure outage | |
Workflow Conversation Recorded | Workflow recorded a voice message / mail | |
Workflow Internal Transfer Successful | Workflow transferred the call to another Service Line Successful | |
Workflow Internal Transfer Failed | Workflow couldn't transfer the call to another Service Line | |
Workflow External Transfer Successful | Workflow transferred the call successful to a non service line target | |
Workflow External Transfer Failed | Workflow couldn't transfer the call to a non Service Line target |
Save to Parameter
Enterprise Routing Contact Center
Allows to store Nimbus System Fields and Parameters and/or text into a Custom Parameter of your choice.
Required Predecessor: None. Relies on call Trigger Events to provide fields with actual content.
Configurable Properties | Description |
---|---|
Parameter | The Parameter of your choice to store a value in.
|
Value | A multiline textbox. Contents will be stored in your selected Parameter. Tips
KNOWN LIMITATION The value stored in "Save to Parameter" is text-only. Any relation to previous variables and parameter names to create this saved output is lost after exiting this activity. We are aware that having dynamic nested parameters in other activities would be very useful and are working to extend this functionality with future updates. |
Queue
Puts a task into the queue for the dedicated service line. Lasts until either of the following Activity is met:
- Voice message
- Transfer
- Cancel task
- Disconnect call
The following user-side actions also end the task:
- hangup by customer
- accepted by user
Required Predecessor: Accept Conversation
Configurable Properties | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Distribution Type |
| ||||||||||||||||||||
Conditional Options (shown based on "Distribution Type") | Description | ||||||||||||||||||||
Adaptive Cards |
Enable this for Adaptive Cards to be created automatically within the Service chat channel in MS Teams.
| ||||||||||||||||||||
RONA (toggle, default 00:00:30) | Applies a RONA status flag whent he timeout for the current "Queue" Activity is reached.
| ||||||||||||||||||||
RONA Timeout | Specifies the time the system uses to ring a team member, then switches to the next available user in the queue. | ||||||||||||||||||||
Queue Timeout | Waits for the specified time, then uses the "Queue Timeout Reached" exit node. | ||||||||||||||||||||
Playlist | Sets a waiting playlist for to the caller while in queue. |
Queue Task
Enterprise RoutingContact Center
Puts a task into the queue for the dedicated service line. The caller will hear wait music. Allows further interactions when paired with "Check Task" and "Cancel Task".
Why pick this over the "Queue" activity?
While the default "Queue" activity will simply wait until the end criteria is met, the "Queue Task" activity allows for finer control.
For example you can:
- Define workflow branching paths with the "Check Task" activity – at any point while the task is still "Queued"
- Inform the user about ongoing connection attempts while wait music plays and continues to play after.
- Specifically react to call with more control – e.g. only using the "End Task" activity once certain other steps have been performed.
You can find examples on how to use the "Task" type activities in our Workflow Templates.
The following user actions end this task
- hangup by customer
- accepted by user
Required Predecessor: Accept Conversation
Configurable Properties | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Distribution Type |
| ||||||||||||||||||||
Conditional Options (shown based on "Distribution Type") | Description | ||||||||||||||||||||
Adaptive Cards |
Enable this for Adaptive Cards to be created automatically within the Service chat channel in MS Teams.
| ||||||||||||||||||||
RONA (toggle, default 00:00:30) | Applies a RONA timeout for the current "Queue" Activity.
| ||||||||||||||||||||
RONA Timeout | Specifies the time the system uses to ring a team member, then switches to the next available user in the queue. |
Check Task
Enterprise RoutingContact Center
Checks the current state of the task and takes exit paths accordingly.
Required Predecessor: Queue Task
Configurable Properties | Description |
---|---|
Queue Time Limit | Enables a time limit for this task.
|
Queue Time Limit | Sets the allowed maximum time limit. |
Connection Attempts | Enables an attempt check for this task.
|
Connection Attempts (number) |
Sets the amount of maximum connection attempts. |
Both "Queue Time Limit" and "Connection Attempt" limits can be enabled / disabled. The following rules apply:
|
Cancel Task
Enterprise RoutingContact Center
Cancels a pending task and all ongoing connection attempts
Required Predecessor: Queue Task
Configurable Properties | Description |
---|---|
None |
Distribution Priority
Contact Center
This activity overrrides the default "Task Priority" (Default: Normal) configured in your within Distribution Service Settings > Task Priority section.
Required Predecessor: None.
Configurable Property | Description | Behavior | What it looks like |
---|---|---|---|
Task Priority |
* see | When a new task enters the to the queue, it gets a priority according to the service setting:
| 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 amonst available users:
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:
Following the 2:1 rule, the calls are queue over time t as follows:
|
Task Priority in "Queue" workflow activites
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. |
|
|
Interaction with other Services
- Since only Contact Center services make use of the priority feature, this activity has no effect on other Service types.
- In a non- Contact Center service the task priority is reset to the Default (Normal).
- If the task is prioritized but then transferred, the priority is reset as well and will change according the priority settings of that service.
Check Opening Hours
Performs a check on the current Opening Hours calendar applied to the service and exits accordingly.
Required Predecessor: None - can work even without accepting a call (e.g. to Transfer to Service, Accept Conversation or Disconnect Conversation immediately)
Configurable Properties | Description | ||||||
---|---|---|---|---|---|---|---|
None | Will exit based on currently active Opening Hour rule currently in effect for your General Service Settings.
Click here to learn more...
Each team may decide if the opening hours are defined as primary or secondary. This is determined via service-individual Service Settings > "General" Tab. Ruleset: Primary and Secondary Opening Hours
All cases in your activity should be handled |
Availability Based Routing
Enterprise Routing Contact Center
Allows to route the call based on overall team availability.
Required Predecessor: None - can work even without accepting a call (e.g. to Transfer to Service, Accept Conversation or Disconnect Conversation immediately)
Configurable Properties | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Service | Allows to select the target Service (within your tenant) for which the availability check and routing is performed for.
| |||||||||||||||
Current Availability (Node Exits) | The activity has 3 exits based on the current overall team status (look-ahead). The availability depends on the User assignment type of your Service.
MS Teams Presence status impact on availability You can adjust Distribution Service Settings to include / exclude users from the availability count, based on their MS Teams presence state. |
Check Available Users
Enterprise Routing Contact Center
Performs a lookahead-check on the users / Agents available in a Nimbus service and stores the value in a Parameter.
Required Predecessor: None
Configurable Properties | Description |
---|---|
Service | Can either be the "Current Service" – e.g. in workflows used by multiple services – or a specific service. |
Parameter |
Once this activity is reached, it checks the number of available users of the specified Service:
→ For more information, read our pages on Service Type and the according User assignment method. |
Check Parameter
Enterprise Routing Contact Center
Allows to check and react on system Fields and custom Parameters.
Required Predecessor: None - responds to parameters updated during Trigger Events.
Configurable Properties | Description | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter Type | Offers a choice between:
| |||||||||||||||||||||||||||||||||||||||||||||
Custom Type |
| |||||||||||||||||||||||||||||||||||||||||||||
Name |
Allows you to define the a name used for the parameter. This name must match the dynamic value when using the Nimbus Microsoft Power Automate Connector. | |||||||||||||||||||||||||||||||||||||||||||||
Checks (Node Exits) (1...10 allowed) | Allows to define one or many regular expression checks on the "parameter type / name" chosen above.
Show me some Regular Expression examples...
|
Check Queue Position
Enterprise Routing Contact Center
Performs a lookahead-check on the (potential) queue position in a Nimbus service and stores the value in a Parameter.
Required Predecessor: None
Configurable Properties | Description |
---|---|
Service | Can either be the "Current Service" for workflows commonly used by multiple services or a specific service. |
Parameter | Once this activity is reached, it checks the number of available users of the specified Service
|
Workflow Troubleshooting
The workflow editor is a very powerful tool, but also allows for misconfigurations and lost calls. Listed below are the most common issues our users report, and how to avoid them:
Issue | Caused by | How to Avoid |
---|---|---|
Calls are not getting accepted at all | "Start" node wasn't connected to any other Workflow Activity node. |
|
Calls are accepted but not handled (to completion) | Announcements or similar activities have exit nodes which are not handled, resulting in stuck calls. |
|
Calls are stuck in an infinite loop | Steps redirecting on themselves with no exit condition. |
|
Calls were not re-entered in the same Queue | Calls reaching the end of a Queue e.g. "Timeout" getting re-inserted into the same queue. This causes inconsistent reporting states for the call and sometimes Infinite loops. |
|
Parameter checks fail or the default exit is always taken | Either the parameter is not written correctly (or not in time) or the validation with regular expression fails to find a pattern. In either case the workflow activity takes the default exits. |
|
Workflow Best Practice
- Make sure to use Workflow Templates as pointers on how your workflows should be structured. Gradually expand and test your configurations to avoid mistakes.
- We gradually expand our Power Automate Use Cases with examples that also include the workflow editor. Make sure to check back regularly get the most out of Nimbus and your external systems.
- Keep in mind that any workflow changes (either in Distribution Service Settings or the workflow itself) take effect immediately. We therefore recommend to test larger changes on a (hidden) service with a test call.