- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- Control Flow
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- Logging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-NMG-017 - Class name matches default namespace
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DPB-010 - Multiple instances of [Workflow] or [Test Case]
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-021 - Hardcoded Timeout
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-026 - Delay Activity Usage
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Arguments
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- ST-USG-020 - Minimum Log Messages
- ST-USG-024 - Unused Saved for Later
- ST-USG-025 - Saved Value Misuse
- ST-USG-026 - Activity Restrictions
- ST-USG-027 - Required Packages
- ST-USG-028 - Restrict Invoke File Templates
- ST-USG-032 - Required Tags
- ST-USG-034 - Automation Hub URL
- Variables
- Arguments
- Imported Namespaces
- Coded automations
- Introduction
- Registering custom services
- Before and After contexts
- Generating code
- Generating coded test case from manual test cases
- Trigger-based Attended Automation
- Trigger-based attended automation
- Overview
- Contact Centers and Trigger-based Attended Automation
- Creating a guided product tour
- Designing validation for existing apps
- Recording
- UI Elements
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Citrix Technologies Automation
- RDP Automation
- VMware Horizon Automation
- Salesforce Automation
- SAP Automation
- macOS UI Automation
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- Extensions
- About extensions
- SetupExtensions tool
- UiPathRemoteRuntime.exe is not running in the remote session
- UiPath Remote Runtime blocks Citrix session from being closed
- UiPath Remote Runtime causes memory leak
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- The required UiPath extension is not installed on the remote machine
- Screen resolution settings
- Group Policies
- Cannot communicate with the browser
- Chrome extension is removed automatically
- The extension may have been corrupted
- Check if the extension for Chrome is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and Incognito mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Chrome
- Chrome Extension on Mac
- Group Policies
- Cannot communicate with the browser
- Edge extension is removed automatically
- The extension may have been corrupted
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Edge
- Extension for Safari
- Extension for VMware Horizon
- Extension for Amazon WorkSpaces
- SAP Solution Manager plugin
- Excel Add-in
- Test Suite - Studio
- Troubleshooting
Contact Centers and Trigger-based Attended Automation
This tutorial demonstrates how to work with multiple instances of the same form, at the same time. The scenario presented involves a contact center agent that operates with multiple customer phone calls coming in at the same time. In this scenario, forms and triggers help in displaying information about the customer the contact center agent is currently talking to, while being able to perform different actions for a customer, such as: change their account password, update their licensing plan, or delay their payment.
This automation process streamlines the customer service experience by monitoring incoming calls and providing contact center agents with all the necessary information about the customer. The process retrieves customer data from a Data Service entity and displays it in a form, which remains open after the call ends so that agents can revisit it and perform additional actions. The process also prioritizes customers who have been put on hold for more than 25 seconds, displaying a form that prompts agents to either switch to that customer or ignore their call. By enabling agents to handle multiple calls simultaneously, this process optimizes efficiency and enhances the overall quality of customer service.
Prerequisites
- Install Form.Activities 23.4.3
- Install System.Activities 23.4.2
- Install UIAutomation.Activities 23.4.5
If you want to try out this tutorial with the same contact center agent application, you can download the sample app here.
To follow the steps and test out the idea yourself, download the sample project here.
Workflow | Tutorial |
---|---|
Main.xaml (entry point) | Step 1: Create the Main workflow |
Customer Data.uiform | Step 2: Create customer data form |
on incoming call.xaml | Step 3: Create workflow for incoming call |
on current call.xaml | Step 4: Create workflow for current call |
on ignore click.xaml | Step 5: Create workflow to ignore customer call |
on resume click.xaml | Step 6: Create workflow to resume customer call |
Too long to hold.uiform | Step 7: Create form when customer is on hold for too long |
check on hold times.xaml | Step 8: Create workflow to check Hold time |
on ignore clicked.xaml | Step 9: Create workflow for ignoring call on hold |
on switch cliked.xaml | Step 10: Create workflow for switching to call on hold |
This workflow represents the project’s entry point, and the workflow that starts all triggers.
-
Add a Build Data Table activity, and build a table with the following
columns:
-
Caller (
String
) – to store the customers phone numbers. -
Since (
DateTime
) – to store the time when you answer a customer call. -
Ignore (
Boolean
) - to record if the customer call was ignored.
-
Caller (
-
Store the Data Table inside a global variable named
callers
- Add a Run Local Triggers activity, to start all the triggers inside the project at the same time.
Create a form to fetch and display information about the customer that’s calling or the customer the contact center agent is talking to (Customer Data)
This workflow represents the scenario when you answer a customer call and you’re currently talking to them (on current call.xaml).
-
Add an Application Event Trigger activity for the current call event.
- Event type – Appeared
- Scheduling mode – Concurrent
-
Add a Use Application/Browser activity to focus on the Contact Center agent app
and fetch information about the customer.
- Add a Repeat Trigger activity to constantly check the time customers are on hold. For this example, set the Interval to 5 seconds.
-
Search for the time a customer was on hold in the
caller
global variable, that you usedto store data about the customer. For this example, if a customer was on hold for more than 25 seconds, then the Too long on hold form appears.
- Display forms on all customers that are calling the contact center at the same time.
- Display actionable forms. For example, these could allow the contact center agent to delay a payment or change the address for a specific customer.
- Display forms based on the customer that's currently on call. This involves bringing to front the form on that specific customer.
- Keep displaying form files, even if the customers hung up. This prevents the loss of any customer data.
- Sample app
- Sample workflows
- Step 1: Create the Main workflow
- Step 2: Create customer data form
- Step 3: Create workflow for incoming call
- Step 4: Create workflow for current call
- Step 5: Create workflow to ignore customer call
- Step 6: Create workflow to resume customer call
- Step 7: Create form when customer is on hold for too long
- Step 8: Create workflow to check Hold time
- Step 9: Create workflow for ignoring call on hold
- Step 10: Create workflow for switching to call on hold
- Result