--- tags: - System Tasks alias: user-guide-system-tasks-core description: "This documentation details a task for processing JSON data using JSONata expressions" --- # Core The Core Tasks are comprised of the JSONata Evaluator Task, which is further explained below. ## JSONata Evaluator The JSONata Evaluator Task allows for complex data manipulation and processing through the use of [JSONata](https://jsonata.org/) expressions. This task is particularly useful for defining and executing expressions that transform or query JSON data structures. To configure an JSONata Evaluator, you need to provide a name and, optionally, a description. Additionally, you can customize its behavior by adjusting the following settings: * **Auto Refresh** - When enabled, the page will automatically update its data at defined intervals. You can set the specific interval according to your needs. The default setting is `false`. * **Retrieve Data on Start** - When enabled, the system will fetch and display relevant data as soon as the page loads. The default setting is `true`. * **Retrieve Data on Changes** - When enabled, the system will update the data displayed whenever there are changes. The default setting is `true`. ![JSONata Evaluator Task](images/uipage_core_jsonata_evaluator.png) The JSONata Evaluator task includes a Setup tab where you can define the [JSONata](https://jsonata.org/) expression, setting the logic and operations performed by JSONata Evaluator on the input data. The native MES editor will validate your JSONata expression and indicate any errors, as shown belo === "Correct JSONata Expression" ![JSONata Evaluator Task Output](images/uipage_core_jsonata_evaluator_setup_jsonata.png) === "Error in JSONata Expression" ![JSONata Evaluator Task Output](images/uipage_core_jsonata_evaluator_setup_error.png) You will also need to specify the inputs and output, configuring the following fields: * **Name** - This field must be unique to each input or output. * **Friendly Name** - You can provide a more user-friendly name for the input or output. This name will be displayed in place of the technical name, making it easier for users to understand its purpose. * **Type** - Choose the appropriate data type for the input or output. There are several available types, including Boolean, DataGroup, EntityType, Integer, JSON, StateModel, String, among others. * **Collection type** - Specify the collection type if the input or output is not a single value. The options are: Array, Map, or None. * **Default value** - You can define a default value that will be used if no specific value is provided, ensuring the correct execution of the DEE Action. === "Inputs" ![JSONata Evaluator Task Input](images/uipage_core_jsonata_evaluator_inputs.png) === "Outputs" ![JSONata Evaluator Task Output](images/uipage_core_jsonata_evaluator_outputs.png) If the input or output Type is `ReferenceType`, and it is one of the following: `EntityType`, `File`, `Lookup Table`, `Lookup Value`, `Query`, `Role`, `State Model`, or `User`, you have the option to create a new instance of this value using the **New instance** toggle button.