elsa-workflows / elsa-workflows/elsa-studio
Visual Expression Builder for Boolean Expressions
- Dominant language
- C#
- Stars
- 301
- Forks
- 181
- Avg merge
- 17h 12m
- Merged PRs (30d)
- 42
Description
In addition to being able to specify a JavaScript expression, we need a visual condition builder that lets the user select entities from a list and operations to perform on properties on a selected entity.
For example, let's say a system has an `Employee` entity with a property called `HiredAt` representing the date the employee was hired.
If we now wanted to check if an employee has been with the company for less than 3 months, we might use the following JS expression:
`Now - Employee.HiredAt < Duration.FromMonths(3)`
For non-devs, a better UX would be for them to be able to go through a simple UI to build the expression. For example:
1. Select one of the supported entities from a radio button list (e.g. "Employee")
2. Select a property from the entity (e.g. "Hired At")
3. Select a (parameterized) condition from a list of conditions that is supported by the property's data type. "Hired At" is a Date type, so one supported condition would be "Is less than". Selecting this condition allows the user to specify an appropriate value, e.g. "3 months".
In addition to the above, the user should be able to define expressions in nested "blocks" of AND/OR combinations.
The following animation from HubSpot's workflow editor provides the inspiration for the above:

Contributor guide
Assessment
This issue has not been assessed yet.