FEEL Playground
Use the FEEL Playground to validate and troubleshoot your FEEL expressions when modeling process diagrams in Web Modeler.
About FEEL Playground
When using the FEEL expression language in Camunda, your FEEL expressions must be valid. The FEEL Playground allows you to test and validate your FEEL expressions using sample contextual data.
The FEEL Playground is integrated into the popup FEEL editor:

-
FEEL expression: Enter and edit the FEEL expression you want to validate.
-
Context: A pre-filled set of sample data and variables to use as a context for validating your expression against. You can edit this sample data if required. The data must be correctly formatted as valid JSON.
-
Result: Shows the results of the validation when run against the sample data. For example, if the expression is valid for the sample data, an Approved validation result is returned. If there is a validation issue, a warning and description of the issue is shown to help you troubleshoot the expression.
-
FEEL Copilot: (For SaaS only) Open the FEEL Copilot (alpha feature) to chat with the AI FEEL Copilot and get help with generating expressions.
The latest version of the FEEL Scala engine is used to validate FEEL expressions in the FEEL Playground.
This can be different than the FEEL Scala version used by the linter's Zeebe version and the cluster the diagram will be deployed to.
Validate your FEEL expression
To use the FEEL Playground for validation:
-
Open the properties panel of a diagram element containing the FEEL expression you want to validate.
-
To open the popup FEEL editor, click fx on the FEEL expression field, and click the Open popup editor icon in the field.
-
In the popup FEEL editor, enter and validate your expression using the contextual data. Edit the expression as required until it is valid (returns an Approved status) and no errors are shown. See validation results.
Validation results
FEEL Playground validation results are shown as follows for each panel:
Icon | Status | Description |
---|---|---|
Valid | The FEEL expression successfully passed validation. | |
Warning | The FEEL expression is invalid. Edit your expression or sample data to pass validation. For example, there might be an invalid type in the contextual data, meaning that values could not be compared as the type does not match as expected (for example, the sample data has a numeric value instead of a boolean value in a key-pair). | |
Error | The validation did not complete due to an error. For example, you might need to check your sample contextual data JSON is formed correctly. |
Hover over a status icon to see more information, such as the reason why the FEEL expression is invalid.
Validation examples
Example valid FEEL expression

- In this example, both the FEEL expression syntax and the contextual data are valid.
- The expression is evaluated, and a valid "Approved" result is returned.
Example invalid FEEL expression

- In this example, the FEEL expression shows an error status to indicate it did not pass validation.
- The error is caused by an extraneous "else" at the end of the expression, meaning it is not a valid FEEL expression syntax.
- Hovering over the icon provides more detail on what is causing the error, for example "Expression evaluation failed: Unrecognized token in Expression".
Example data warning

- In this example, the Result shows a warning status to indicate it did not pass validation.
- The warning is caused by an invalid type in the contextual data, as the
hasJob
value must be a boolean value for thehasJob = true
expression to be valid. - The warning text provides an explanation of why the warning occurred, and where to check for an error.
Example JSON error

- In this example, the Context shows an error status to indicate it did not pass validation.
- The error is caused by an extra comma character after the last key-pair, which is not a valid JSON format.
- Hovering over the icon provides more detail on what is causing the error, for example "Invalid JSON: Expected double-quoted property name in JSON at position 98 (line 7 column 1)".