UiPath Studio Guide

About Automation Projects

UiPath Studio allows you to create two types of standalone automation projects: process or library. Processes can incorporate all types of workflows, sequence, flowchart, state machine and global exception handler, while the latter isn't available for libraries. Moreover, libraries can be added as dependencies to automation processes.

When you start a new process in Studio, a folder is created with your custom name to the selected location. Projects are saved in the %USERPROFILE%\Documents\UiPath directory by default.

This folder includes:

  • a Main.xaml file is automatically created, which should hold your main workflow.
  • all other automation .xaml files included in the project. Please note that these files have to be linked to the Main.xaml through the Invoke Workflow File activity, because only the Main.xaml file is executed when you run a job.
  • a .screenshots folder, if you are dealing with UI automation.
  • a project.json file that contains information about your automation project.


Projects created with newer versions of Studio might not work with older Studio versions. Read more about Backward and Forward Compatibilty.

Setting the Project Version

Semantic Versioning

The semantic versioning scheme has the format Major.Minor.Patch[-Suffix], where:

  • Major is the major version.
  • Minor is the minor version.
  • Patch is the patch version.
  • -Suffix (optional) is a hyphen followed by a series of dot separated identifiers immediately following the patch version. This denotes a prerelease version.

Identifiers must comprise only of ASCII alphanumeric characters and hyphen, and they must not be empty. Numeric identifiers must not include leading zeroes. In addition, build metadata may be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version, for example 1.0.0-alpha+1.

When creating a new process or library, the default version scheme is semantic. It can be changed from the Publish window by simply adding an extra digit to the version number. The project’s semantic version can be modified from the project.json file too. The patch number 0 is automatically added to projects with version number major.minor.

Legacy Versioning

The legacy version number generated for the project has the format M.m.bbbb.rrrrr, where:

  • M is the major version.
  • m is the minor version.
  • bbbb is the build version.
  • rrrrr is the revision version.

The major and minor versions can be edited in the project.json file also, while the build and revision versions are generated according to an algorithm - the build value is the number of days that elapsed since 01.01.2000. The revision value is the number of seconds which elapsed since the current day, until the moment of the release. The result is divided by 2, so that the maximum revision number does not exceed 65535.

The suggested version number in the Publish window is generated based on the project’s previous versioning scheme, while the current date and timestamp are taken into account for projects using the 4-digit versioning scheme.

Adjusting Process Settings

A set of individual settings can be established for each automation project that you’re working on. Such settings are available in the Project Settings window, which can be opened by clicking the image alt text in the Project panel.

The Project Settings window allows you to change the project’s name and description. The Disable Pause toggle is used for enabling or blocking users from pausing processes in the Robot tray.

The toggle should be set to Yes if pausing the process during execution would result in crashing it. For example, if an activity in your workflow uses the Timeout property, pausing the execution might cause the timeout to expire, thus breaking the execution.

Click OK and the changes are made visible in the Project panel and project.json file.

Creating a Process

To create a basic project that asks for a user's name and then displays it on the screen, do the following:

  1. On the Start tab, click Process. The New Blank Process window is displayed.
  1. In the Name field, leave the default project name or type a new one, such as Hello, and click Create. The Name and Location fields must be validated. A new project is saved with the chosen name on the hard drive.
  2. From the Activities panel, drag a Flowchart activity to the Designer panel.
  3. Add an Input Dialog activity from under System > Dialog.


When adding an activity in an empty project, Studio automatically adds a parent sequence containing the activity.

  1. Right-click the activity and click Set as Start Node. The activity is connected to the Start node.
  1. In the Variables panel, select Create Variable to create a variable in which to store the user’s name, called Name, for example. Change the variable type to GenericValue.
  2. On the Properties panel, under the Input section, add a Label for the activity, such as "Type your name," and a Title, such as "Hello, world!."


In Studio, all strings have to be placed between quotation marks.

  1. Under the Output section, in the Result field, add the variable created at step 6.
  1. Add a Message Box activity to the Designer panel and connect it to the existing Input Dialog activity.
  2. Make sure that the Message Box activity is selected. The Properties panel is updated accordingly.
  3. Under the Input section, add a Caption such as "Hello," and in the Text field add a string and the previously created variable, such as “Hello ” + Name.
  1. The project should look as in the screenshot below.
  1. Click Run on the Design tab or press F5. The project is executed. The Hello World window is displayed, prompting you to input your name.
  1. Type your name in the field and press OK. The Hello window with the previously added name is displayed.

However, this project has a small flaw because, when prompted to add your name, you can leave the field blank. This also causes the Hello window to be empty.

To fix this problem and other similar ones, it is good practice to validate fields. You can do this with the Flow Decision or If activities that enable you to verify if a certain condition was met.
To solve the issue in the example project above, do the following:

  1. Select the arrow between the Input Dialog and the Message Box activities and press Delete. The arrow is deleted.
  2. Add a Flow Decision activity between the Input Dialog and the Message Box activities.
  3. Select the Flow Decision activity and, in the Properties panel, add a Condition to check if the variable is empty, such as Name = "".
  4. Connect the Input Dialog activity to the Flow Decision. This means that after the user is prompted to add his or her name, the condition added at step 3 is going to be checked.
  5. Connect the True branch of the Flow Decision activity to the Input Dialog. This means that if the name field is empty, the user is going to be prompted to type his name in the Hello World window until the field is filled in. You just created your first loop. For more information, see the Control Flow chapter.
  6. Connect the Message Box activity to the False branch of the Flow Decision. This means that if the name field is not empty, the Hello window can be displayed with the string added by the user.
    The final project should look as in the following screenshot.


Please take into consideration that whenever you wish to copy a large number of activities from one sequence to another, it is recommended to scroll down to the bottom of the Designer panel beforehand. This is due to a Windows Workflow Foundation limitation.

About Automation Projects

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.