--- title: "Data Workflow Component" slug: "data-workflow-component" tags: ["module-builder", "module-builder-components"] status: "update" updated: 2026-11-04T16:39:18Z published: 2026-11-04T16:39:18Z canonical: "docs.unqork.io/data-workflow-component" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # Data Workflow Component The Data Workflow component executes a configurable pipeline of data operations, including API calls, data transformations, filtering, and sorting, in sequence. Configure inputs and outputs to map module data into and out of the Data Workflow. > **How to read settings tables** > > > The tables below describe each configurable option as it displays in the UnqorkAI platform. Values are formatted as follows: `inline code` — a value to type exactly as shown | **Bold** — a value selected from a drop-down, radio button, tab, or choice chip | **ON**/**OFF** — toggle state | ✓ — checkbox checked | ☐ — checkbox unchecked ## General Settings | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Property ID | `key` | Text input | `dwf` | The unique identifier for this component instance. | | Canvas Label Text | `label` | Text input | — | Identifies the component on the Module Builder canvas. Does not display. | ## Data Workflow Canvas The Data Workflow canvas is a visual editor where Creators build the data pipeline. Drag and drop operators onto the canvas and connect them to define the sequence of operations, including API calls, data transformations, filtering, and sorting. and operators define what data enters and exits the Data Workflow. The **Tables** tab reflects the inputs, outputs, and operations configured on the canvas. To position operators manually, use the **Enable Manual Layout** setting under [Advanced Settings](/unqorkai/docs/data-workflow-component#canvas). ## Tables Settings ### Inputs and Outputs #### Inputs Displays every Input operator's Property ID, label, requirement, and source as configured in the Data Workflow canvas. | Column | Field | Type | Description | | --- | --- | --- | --- | | ID | `id` | Property ID | The module field to pass as input to the Data Workflow. | | Label | `inputLabel` | Text input | A descriptive label for the input. | | Required | `inputRequired` | Drop-down | Sets whether this input is required for the Data Workflow to execute. | | Source | `source` | Drop-down | The source of the input data. | #### Outputs Displays every Output operator's Property ID, label, and action as configured in the Data Workflow canvas. | Column | Field | Type | Description | | --- | --- | --- | --- | | ID | `id` | Property ID | The module field to populate with the Data Workflow output. | | Label | `outputLabel` | Text input | A descriptive label for the output. | | Action | `action` | Text input | The action applied to the output value. | ### Data Workflow Configuration Displays the operations from the Data Workflow canvas in the order they execute. | Column | Field | Description | | --- | --- | --- | | Operation | `dataOperation` | The type of operation (for example, API call, filter, sort, transform). | | Label | `label` | A descriptive label for this operation. | | Opt 1–5 | `option1` – `option5` | Configuration options specific to the selected operation type. | | Input 1–2 | `input1`, `input2` | Input values for the operation. | | Output 1–2 | `output1`, `output2` | Output values from the operation. | | Argument | `argument` | An additional argument for the operation. | ## Actions Settings ### Triggers | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Trigger Type | `triggerType` | Radio button | **Manual** | Sets when the component executes. **Manual** waits to be triggered by another component. **Watch** executes when a defined input field changes, or when triggered by another component. | ## Unit Testing Unit tests check that a Data Workflow component returns the expected outputs for a set of test inputs. Creators configure tests in the **Unit Tests (Legacy)** section of the Data Workflow component's properties panel. Tests save with the component configuration, so avoid entering large or personal data in test values. ### Test Settings Each test card has an Inputs table and an Outputs table. #### Test Inputs | Column | Field | Type | Description | | --- | --- | --- | --- | | Input | `id` | Read-only | The input Property ID from the Data Workflow configuration. | | Label | — | Read-only | The display label for the input. | | Value | `value` | Text input | The test value to pass into the Data Workflow. | | JSON | `datatype` | Toggle | When set to **ON**, this setting parses the value as JSON. | #### Test Outputs | Column | Field | Type | Description | | --- | --- | --- | --- | | Output | `id` | Read-only | The output Property ID from the Data Workflow configuration. | | Label | — | Read-only | The display label for the output. | | Expected | `value` | Text input | The value the test expects for this output. | | Actual | — | Read-only | The value the Data Workflow component returned in the last run. The platform does not save this value with the test. | | JSON | `datatype` | Toggle | When set to **ON**, this setting matches the expected value as JSON, like a number, true/false value, or object. | ### Add and Run a Test 1. On the Module Builder canvas, select the Data Workflow component. 2. In the properties panel, open **Unit Tests (Legacy)**. 3. Click **Add Test**. A **Test 1** card displays with a row for each input and output. 4. In the **Inputs** table, enter a **Value** for each input. 5. In the **Outputs** table, enter an **Expected** value for each output. 6. In the test card header, click the run icon. To run every test, click **Run All**. Each test card header also has icons to duplicate and delete the test. When the workflow's inputs or outputs change, click **Refresh** to sync the test rows. Editing a **Value** or **Expected** cell clears that test's result until it runs again. ### Where Tests Run Tests run on the server against the workflow's current configuration, including unsaved changes. A test run saves nothing. Tests run even when **Disable Execution** is set to **ON**. - A single run accepts up to 50 tests. - Only one run happens at a time. While a run is in progress, **Run All** and the run icons are unavailable. ### Read Test Results After a run, a dot next to each test name indicates whether the test passed or failed. When an output's **Actual** value does not match its **Expected** value, the row and the dot display in red. To copy an output row, right-click the row and select **Copy Row**. | Result | Description | | --- | --- | | **Actual** | The value the Data Workflow component returned. To copy the value, hover over the cell and click the copy icon. | | `Not produced` | The workflow did not return this output. The test fails. | | `Too large to show` | The output is too large to display. | | **Console Output** | Lists the label and value logged by each Console operator. | | **Debug Trace** | Displays when **Debug** is set to **ON**. Lists each executed step as `#<step> <operation> · <label>`. Expand a step to view its input and output. | | Errors | Display above the logs, for example `Error in #2 Sort "byName": <reason>`. The error names the first step that could not run, which can be after the operator that caused the problem. | If a run returns too much output, a message asks Creators to run fewer tests or run one test on its own. ## Advanced Settings ### Error Handling | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Error Trigger | `errorHandler` | Drop-down | — | The Property ID of the component to trigger when the Data Workflow encounters an error. | ### Canvas | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Enable Manual Layout | `manualLayout` | Toggle | OFF | When set to **ON**, this setting lets Creators manually position operators on the canvas. When set to **OFF**, the canvas auto-arranges operators, including any that Creators moved. Turning the setting on keeps operators where they are. Before the setting changes, a confirmation message displays. Click **Continue** to proceed or **Cancel** to keep the current setting. | ### Set Execution | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Disable Execution | `disabled` | Toggle | OFF | Prevents the component from executing when triggered. | | Debug | `dataworkflowData.isDebugMode` | Toggle | OFF | When set to **ON**, this setting logs the input and output of each operation step. When the module runs, steps log to the browser console. In unit tests, steps display in the **Debug Trace** panel. | --- **Changelog** | Date | Change | | --- | --- | | — | Initial publication. | | 2026-10-30 | Documented server-side unit tests: how to add and run tests, where tests run, and test results. Renamed Debug Mode to Debug. Reorganized Advanced Settings into Error Handling, Canvas, and Set Execution to match the UI. | APIs (application programming interfaces) are a set of protocols and definitions developers use to build and integrate application software. APIs act as the connective tissue between products and services. A definition A Property ID is the unique field ID used by Unqork to track and link components in your module. Canvas Label Text indicates the purpose of the corresponding field or component. For non-input components, the Canvas Label Text isn't end-user facing, and only appears in the . Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. Deteremines how the component triggers. Enter inputs components and actions you want the component to perform. Enter outputs components and actions you want the component to perform. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. An object is a type of data structure that represents a single, self-contained entity that acts as a container for the characteristics of that entity. Enter inputs components and actions you want the component to perform.. Enter outputs components and actions you want the component to perform. Triggers activate another component when certain requirements are met. Trigger types include Concurrent, Post, and Error. Some components do not have the ability to trigger others. The UI (user interface) is a device's end-user interaction and communication point. It can include display screens, keyboards, and mouse. It is also how a user interacts with your application.