- 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-017 - Invalid parameter modifier
- 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
- 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
- Studio testing
- Troubleshooting
- About troubleshooting
- Assembly compilation errors
- Microsoft App-V support and limitations
- Internet Explorer X64 troubleshooting
- Microsoft Office issues
- Identifying UI elements in PDF with Accessibility options
- Repairing Active Accessibility support
- Validation of large Windows-legacy projects takes longer than expected

Studio User Guide
Flowcharts
linkFlowcharts provide a visual representation of the flow of a workflow, helping better illustrate decision points and the overall view.
Flowcharts can be used in a variety of settings, from large jobs to small projects that you can reuse in other projects.
The most important aspect of flowcharts is that, unlike sequences, they present multiple branching logical operators, that enable you to create complex business processes and connect activities in multiple ways.
Flowcharts come with the Auto arrange option in the context menu, and can be auto arranged either horizontally or vertically.
Example of a Flowchart
linkTo exemplify the properties of a flowchart, we are going to build a guessing game that generates a random number from 1 to 999 that the user must guess. To create such an automation, do the following:
-
Create a blank process and from the Design tab, in the File
group, select New > Flowchart. The New Flowchart window is
displayed.
Note: You can also add a Flowchart activity to the Designer panel to create a new flowchart project.
- In the Name field type a name for the automation, such as "First Flowchart", and leave the default project location or add a subfolder. Click Create. The Designer panel is updated accordingly.
-
Create two Int32 variables (
RandomNumber
,GuessNumber
) and a String one (Message
). -
Set the default value of the
Message
variable to "Guess a number from 1 to 999." TheRandomNumber
stores a random number between 1 and 999,GuessNumber
stores the user’s guess andMessage
stores the message that is going to be displayed to prompt the user.
- Add an Assign activity to the Designer panel, and connect it to the Start node.
-
In the Properties panel, in the To field add the
RandomNumber
variable. -
In the Value field, type
new Random().Next(1,999)
.Note: This field uses theRandom()
function to generate a random number between 1 and 999. For more information on variables, see Variables. - Add an Input Dialog activity to the Designer panel and connect it to the Assign one.
-
In the Properties panel, in the Label field, add the
Message
variable. -
In the Result field, add the
GuessNumber
variable. This activity asks and stores the user’s guesses in theGuessNumber
variable. - Add a Flow Decision activity and connect it to the Input Dialog. This activity enables you to tell the user if they correctly guessed the number or not.
-
In the Properties panel, in the Condition field, type
GuessNumber
=RandomNumber
. Alternatively, you can select the Condition Builder from the Plus menu to edit your condition. This enables you to verify if the number added by the user is the same as the randomly-generated one. - Add a Message Box activity and connect it to the True branch of the Flow Decision.
-
In the Properties panel, in the Text field, type
"Congratulations! You guessed correctly! The number was " +
RandomNumber.ToString
+ ".". This is the message that is going to be displayed if the user correctly guessed the number. - Add a new Flow Decision activity and connect it to the False branch of the previously added Flow Decision.
-
In the Properties panel, in the Condition field, type
GuessNumber
>RandomNumber
. You can also select the Condition Builder from the Plus menu to edit your condition. This activity enables you to check if the number the user added is bigger than the randomly-generated one. - In the DisplayName field, type Comparison. This enables you to easily to tell the difference between the two Flow Decisions used.
- Add an Assign activity and connect it to the True branch of the Comparison activity.
-
In the To field, type the
Message
variable, and in the Value field, type a message indicating that the guess was too high, such as "Too big. Try again.". - Select the Assign activity and press Ctrl+C. The entire activity and its properties are copied to the Clipboard.
- Press Ctrl + V. A duplicate of the previous Assign activity is displayed.
- Connect it to the False branch of the Comparison activity and, in the Properties panel, in the Value field, type "Too small. Try again.".
-
Connect the Assign activities created at steps 18-22 to the Input
Dialog. A loop is created, asking the user to type a smaller or bigger
number, until he guesses correctly. Optionally, you can add labels by
right-clicking a connection and selecting Add label.
The final project should look as in the screenshot below.