UiPath Apps: Expressions GA

UiPath Apps: Expressions GA

Hi everyone!

Today, the Apps team is thrilled to announce the GA of Expressions. Since we released Apps in December of 2020 you’ve been building apps with increasing sophistication and shared two key pieces of feedback: (1) Some of the data binding patterns made it difficult to maintain/extend apps with dozens of pages and hundreds of controls, and (2) app authors shouldn’t need to create a process for every computation or data transformation.

Expressions addresses these critical pieces of feedback head-on:

1. Enhanced maintainability and extensibility for apps created in App Studio

Expressions rely on declarative patterns like those used in Excel to aid users in the definition of control behavior. By using control properties as the single source of truth for that control’s behavior, it makes it much easier to understand how it reacts to changes to other controls or data.

To see how much easier this really is, let’s take a look at a common scenario. Say we only want to enable a textbox when a toggle is checked in this Simple Form:

Before Expressions

Before expressions where available, you’d have to construct elaborate If/else rules with multiple SetValue rules in their conditions. Not only was this difficult to author, it was also difficult to know what other controls might interact with the disabled property on the textbox and alter the functionality of your app.

With Expressions

A single-line expression for the Disabled property of the textbox replaces all 3 of these rules and their 7 field configurations:


Not only is it easier to author, it’s also quicker to understand (“The textbox is disabled when the toggle is not enabled”). Expressions also makes it easier to extend. For example, you could quickly add another condition here to enable the textbox if the toggle was enabled OR a process output meets a condition.

2. Data transformation and simple computations without the need for a process

Before expressions, transforming data and creating static data was only possible through the use of processes, forcing App Creators to use RPA for trivial operations like creating a dropdown with fixed values or filtering a table based on a value of another app control.

Expressions also allows users to:

  1. Define static in-app data
  2. Perform data transformation
  3. Evaluate mathematical computations in Realtime
  4. Create dynamic runtime experiences, even when complex logic is required

All without the aid of a process, making runtime faster and allowing app authors to use processes for what they do best.

What else can you do with Expressions?

Expressions unlock a whole new set of capabilities in Apps. Because of their nature, you’ll probably do things that we haven’t even thought of yet, but here are some of the most common use cases that we’ve seen:

  1. Input Validation
  2. Progressive disclosure
  3. In-app mathematical operations (eg: value calculator)
  4. Static Lists

What is on the horizon?

We have tons of great enhancements planned to make expressions even more powerful. Here are a few, just as a sneak peek :wink:

  • Date + Time functions
  • Filtering and Sorting tabular data
  • Using expressions on more control properties

Documentation and Learning Resources

If you want to learn more, check out the documentation on Expressions and Operators/Functions.

Reporting Issues and Feedback

While expressions is GA, this is just the beginning of its journey. We’d love to get your feedback on what Functions to prioritize and how we can continue to improve the authoring experience.

If you run into any issues, try to search the UiPath Apps category of the forum, or if you can’t find an existing post create a New Topic.


This is one of the most amazing feature in UiPath Apps

I have uploaded a Tutorial here as well: UiPath Apps: Functions & Expressions - YouTube

Hope this helps everyone



We are using apps, for 3 month now.
We are facing some issue.
About apps, the most issue is expression in a data table.
For example :
I use a custom list results :

I would like to disable the red cross if a boolean variable is True. So, what i do is :
But the red cross is still here if this variable is true. (i’m sure the boolean is true, i make it appear in the line to check)
If I write “true” myself in the disable field, it works well. The cross disappears.
So, i assume the function is ok, but we i don’t understand why it doesn’t work with my variable.

Can you help me ?
Thank you

Hi @sophie.dumont - can you share you .uiapp file so we can see what is going on here?

Can I share it in private ?

Absolutely, feel free to message @evan.cohen directly (click his username to get that option).