Real-time Forms now in Public Preview!

Welcome to the Real-Time Forms Public Preview! We are excited you’ve joined the preview and would like to thank you in advance for your participation and feedback.

This initial set of activities allows you to transform your static forms into a dynamic tool that interacts with the end-user, letting robots and humans work together in-tandem to fill in the form with data.

:bulb: Please tell us what you think below! Your feedback will be critical as we drive toward GA release targeted for April.

How to Install

Everything you need has been published to the ‘Official Feed’ in Studio. Please follow the steps below to install the package in UiPath Studio:

  1. Open Manage Packages in Studio and navigate to the All Packages feed on the left.
  2. Check ‘Include Prerelease’ checkbox
  3. Search for and install these 3 packages:
    • UiPath.Form.Activities - Make sure to install or upgrade to the ‘preview’ version
    • UiPath.FormActivityLibrary
    • UiPath.FormActivityLibrary.Contracts

The Forms Activity with real-time capabilities should now be available in Studio. You can tell by dragging a Create Form activity into your canvas and verifying that it has a “Do” clause in it.

See how it works!

In this example, we take a look at how you can use the new Forms activity to build a look-up inside of a form.

Download the example workflow.

How to Use

This brand new Create Form activity adds a ‘Do’ block, which allows you to execute activities against the fields of the Form - both reading and writing data. You can have these activities triggered any time a button is clicked or, optionally, when the form is opened.

While activities are being executed, the Form will remain open and editable for the end-user.

New Properties

  • ExecuteDoBlockFirst – If checked, the activities in the Do block will be executed when the form opens. Otherwise, they will only be executed when a button is clicked.
  • Isolated – Please ensure this is checked when running the Form activity.

Button Component

Buttons are the key to triggering the activities in the Do block of the form. You can see which button has been pressed by parsing the ‘SelectedButton’ field in the output.

A quick example - Say you’ve added two buttons: “Update address” and “Validate name”, which will trigger specific activities. Here’s how you’d set that up:

  1. Create a new String variable within the ‘SelectedButton’ property. e.g. - “selectedButton”


  1. Place a Switch activity in the ‘Do’ activity and update the following properties:

    • Expression = selectedButton
    • TypeArgument = String
  2. Place the button field keys as different conditions, along with the activities you’d like to invoke when the button is clicked.


:exclamation: Important - By default, buttons will no longer close the form if there are activities in the ‘Do’ clause. To change a button into a ‘Submit’ button, you can add the following custom property to the ‘Field Key’ tab on a button: (closeOnSubmit, True)


Update Form Values

Values on the form can be updated by changing the corresponding variables within the ‘Do’ loop. For example, let’s create an email look-up in the form which will update the email field based on a provided name.

  1. Create a name Text Field for end-user input.
  2. Create an email form field that you would like the process to act on. Make note of the field key.

Note: Fields that are updated by the robot will overwrite any human input in those fields, so it is advised to disable those fields.

  1. Save and close the form designer.

  2. Add the name and email fields keys to the FormFieldsCollection property on the Create Form activity.

  3. In the ‘Do’ block, add a Switch activity to look up the provided name. Use the Assign activity to assign the corresponding email addresses to the email variable.

  4. Save and run the process. A form should appear with a name look-up. Type in any of the names from the Do loop, and click on the “Look up” button. The email field should now have the corresponding variable value as was assigned to the bound variable.


Wow… This is amazing!!! Great work guys!! :smiley:
I will surely check it out first thing tomorrow morning as now it is 2:30 in the midnight… :rofl:



We are trying to make use of this and create a decision tree for a specific requirement. Few things noticed are mentioned below to see if these are valid and can be incorporated in the GA release.

  1. The component’s ‘Conditional’ tab allows only simple conditions. It would be great to have options to choose multiple form components and regex support for the values.
  2. It would be nice to have few other buttons other than Submit. I have edited the json property to behave like a ‘Reset’ button, but its not resetting the entire page as needed.
  3. If we set the ‘CloseOnSubmit’ property of a button to be False, the button still validates the entire page. It expects all the mandatory fields in the form to be filled, which should not be the behavior.
  4. I could set the drop down values in the Form by passing the values in the FormFieldsCollection. Can you inform how the default value can be set along with passing the values to the list?
  5. Please inform the GA release date.

Shiju Mathew

1 Like

Created a simple but unique use case


It’s a really really nice automation! I think you should consider to share this as a snippet on Marketplace.


sure I will, Thanks for your feedback @Pablito


Here is one more usecase using Nasa Api created a image viewer for the day, Let me know your feedback


Wow! This one is something I would like to use personally :slight_smile:
Great work! I like the way how you made this. Really nice.


Wow… This is some amazing stuff bro!!! :smiley:

1 Like

Thanks a lot Fernando, Do check my other videos and provide feedback.


Sure bro… I will add you for my watch list :slight_smile:

I’m always interested in such amazing contributions by our awesome community… I will surely keep track of your new videos too :slight_smile:

Thank you

here is the new one to take screenshot with filled form

1 Like

Here is one more implementation of Uipath forms

Now I have integrated Uipath forms with Camera and created an id card details extractor
@Pablito I have more videos comming soon lets check how many can you pin :stuck_out_tongue: :robot:

1 Like

@alictai hi

Just now installed v 1.1.1 , glad to see multiple logic in dropdown. But until a proper documentation is available it will always be a nightmare for a developer to understand its usage.

Please create documentation


Is this feature available in Attended Robot only?
Can we use real time forms in Orchestrator ?

Hi @alictai,

We are trying to use real time forms in Orchestrator process and it looks like for the real time form to work we will need “supportsPersistence” setting false. The setting is needed to be true for Persistence activity to work. Can you please help use with this.


This was a great tutorial. Thank you.

Since you seem to really know how to use Forms, I was wondering if you might have a solution to a problem some of us are having with the Forms and Data Grids.

For a quick summary, when we try to update the data grid with new or modified records, it simply overwrites the rows that are already there. eg: If we have 4 rows originally and on an button click we get new data for the Data Grid that only has 2 rows, when the form refreshes, the new 2 rows are displayed but the last 2 rows from the previous data remain in the Data Grid.

Thank you for any help you can provide.


Hi @carlor,
From what I know this is caused by the fact that providing changes only for couple of record which are displayed in rows makes other untouched (kept in memory). Proper team has been informed about it and working on a solution.

Here you have my fast example how it can be performed based on data (Username and Password) written in Excel. However, please remember that keeping logon data in excel like I did in this example is not best practice - there’s no security there. But you can for example use some VB.Net code to encode these data and it will be better :slight_smile:.
Logon (35.8 KB)

Thank you for the update. I’m glad they know about it and are working on it. Do they have a timeline for a solution? The only work around we can think of at the moment is REALLY UGLY and it’s doubtful the client will approve. That involves setting any rows we want to remove to blanks which will leave “ghost” rows. If the user selects them we’ll just ignore them. The problem is if, say, the original search results in 100 rows and the subsequent search only returns 5, the user will be shown the new 5 rows with 95 blank selectable rows tacked on the end.

When there is finally a solution, could you please append a message to this post so I’ll be informed?

Thank you,