--- title: "Filter Operator" slug: "filter-operator" updated: 2025-09-26T00:16:49Z published: 2025-09-26T00:16:49Z canonical: "docs.unqork.io/filter-operator" --- > ## 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. # Filter Operator UDesignerClassic Designer The **Filter operator** filters data based on a formula provided by the Creator. When the Data Workflow runs, the operator retrieves all matching data in the data set. For example, if an application asks an end-user a `Yes` or `No` question, the Filter operator can filter the data to only display `Yes` responses. The Filter operator has two output ports. The upper output port outputs the data matching the criteria. The lower output port outputs data that does not match the criteria. You can also connect an argument to the argument port of a Filter operator. Doing so lets you sort data based on a dynamic variable. For example, you might have a list of products in a [Data Table](/v1/docs/data-table-component) component. The list of available products may depend on whether your client smokes or not. So, you can add a [Dropdown](/v1/docs/dropdown-component) component that offers Yes or No responses. With the Dropdown set as an argument, the operator filters based on the selection. You’ll find the Filter operator under the [Table](/v1/docs/tableoperators) group to the left of the [Data Workflow](/v1/docs/data-workflow-component) canvas. ## About the Info Window Learn more about each setting in the Filter operator's Info window: | **Setting** | Description | | --- | --- | | Category | Grayed out and non-adjustable setting indicating the operation type. | | Label | Sets the label for your operator, displaying below the operator on your Data Workflow canvas. This field is optional, but set a label if you use more than one of the same operator type. A label helps you identify your operators without opening any Info windows. | | Do Not Sanitize Formula | When this checkbox is clear, the operator cleans values coming into or defined in the operator. For example, removing special characters. Some of those special characters include `'`, `$`, `#`, and `&amp`. The operator also cleans up complex values. For example, logically breaking up strings of numbers and letters using underscores. A sample module ID can go from `5f6b4cdfabf886024d4de2d3 to 5f_6b_4cdfabf_886024d_4de_2d_3`. Sanitizing improves performance. But it can also lead to unexpected data behavior. If your Create Field is not behaving as expected, try selecting this box. When selected, the operator uses your values and expressions as-is. This is best when working with complex values or values that should remain unchanged. By default, this setting is selected, which means the operator does not attempt to sanitize. | | Preserve Argument Type | When selected, this setting ensures the argument data type is respected when the operator executes. | | Expression | Here, you'll enter the criteria you want to filter your data by. The expression can be a single number, a string, an argument, or a full formula. For example, to find Yes data for the **Do you smoke?** expression, you'd use this formula: `doYouSmoke="Yes"`. Matched data goes through the upper output port. Unmatched data goes through the lower output port. You can also add conditions to a formula. Conditioning your Expression filters your data using `AND` or `OR`. AND returns data that's true for all criteria listed. `OR` checks if any one of the conditions you list is true. Let's say you're retrieving data for citizenship from different countries. You want to identify citizens from the United States of America and Mexico. By using AND, you'll only include those who have citizenship in all of the countries you list. To only accept dual citizens as an input, use this formula: `=AND(citizen=‘Mexico’`, `citizen=‘USA’`). By using OR, you'll filter citizens from either country in your list. To include citizens from either country as an input, use this formula: `=OR(citizen=‘Mexico’, citizen=‘USA’)`. | ## Adding a Filter Operator In this example, you'll create a [Data Table](/v1/docs/data-table-component) component that contains a list of countries. You'll include a column displaying whether a country is part of the EU. Then, you'll set up a [Data Workflow](/v1/docs/data-workflow-component) to separate countries that are part of the EU from those that are not. ### Configure the Data Table Component First, you'll set up your [Data Table](/v1/docs/data-table-component) component with a list of countries, capitals, and whether they are part of the EU. 1. In the Module Builder, drag and drop a **Data Table** component onto your canvas. 2. In the **Property ID** field, enter `dtCountries`. 3. In the data table, enter the following: | # | A | B | C | | --- | --- | --- | --- | | 1 | country | capital | memberOfEU | | 2 | Afghanistan | Kabul | No | | 3 | Albania | Tirana | No | | 4 | Algeria | Algiers | No | | 5 | Cambodia | Phnom Penh | | | 6 | Czechia | Prague | | | 7 | Andorra | Andorra la Vella | No | | 8 | Austria | Vienna | Yes | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/dtCountries_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) 4. Click **Save Component**. ### Configure the Hidden Components Before you can add your Data Workflow, add two [Hidden](/v1/docs/hidden-component) components to store the Data Workflow results. Your **filterTrue** **H****idden** component contains countries that are part of the EU, and your **filterFalse** **H****idden** component contains countries that are not part of the EU. 1. Drag and drop two **H****idden** components onto your canvas, placing them below the **dtCountries** **Data Table** component. 2. In each component's **Property ID** and **Label Text** fields, enter the following: | # | Property ID | Label Text | | --- | --- | --- | | 1 | **filterTrue** | `filterTrue` | | 2 | **filterFalse** | `filterFalse` | 3. After configuring each component, click **Save Component**. ### Configure the Data Workflow Component 1. Drag and drop a **D****ata Workflow** component onto your canvas, placing it between the **dtCountries** **Data Table** and **H****idden** components. 2. In the **Property ID** and **Canvas Label Text** fields, enter `dwfFilter`. #### Configure the Input Data Operator 1. Drag and drop an **I****nput** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Info | | --- | | Category | Input | | Component | dtCountries | | Required | Yes | | Source | Default | #### Configure the Filter Operator 1. Drag and drop a **F****ilter** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Info | | --- | | Category | Filter | | Label | Filter Members of the EU | | Do Not Sanitize Formula | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) (**checked**) | | Preserve Argument Type | ☐ (**unchecked**) | | Expression | memberOfEU="Yes" | 3. Connect the output port (right) of the **dtCountries** **I****nput** operator to the input port (left) of the **Filter Members of the EU** **F****ilter** operator. #### Configure the First Output Operator 1. Drag and drop an **O****utput** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Info | | --- | | **Category** | Output | | **Component** | filterTrue | | **Action** | value | 3. Connect the upper output port (right) of the **Filter Members of the EU** **F****ilter** operator to the input port (left) of the **filterTrue** **O****utput** operator. #### Configure the Second Output Operator 1. Drag and drop a second **O****utput** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Info | | --- | | Category | Output | | Component | filterFalse | | Action | value | 3. Connect the lower output port (right) of the **Filter Members of the EU** **F****ilter** operator to the input port (left) of the **filterFalse** **O****utput** operator. 4. Click **Save Component**. Here's how the completed Data Workflow looks: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/dwfFilter_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) ### Configure the Button Component Lastly, create a button that the end-user clicks in Express View to trigger your Data Workflow. 1. Drag and drop a **Button** component onto your canvas, placing it below the **filterFalse** **H****idden** component. 2. In the **Property ID** field, enter `btwRunDWF`. 3. In the **Label Text** field, enter `Run DWF Filter`. 4. Navigate to the **Actions** settings. 5. From the **Action Type** drop-down, select **Event**. 6. From the **On Click** drop-down, enter or select **dwfFilter**. 7. Click **Save Component**. 8. **Save** your module. Here's how the completed example looks in the Module Builder: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/moduleComplete_thumb_0_0(7).jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) **Preview** your module in Express View and click Run DWF Filter. The Data Workflow filters for data using the `memberOfEU="Yes"` argument. Data that matches the argument is sent to the **filterTrue** **H****idden** component. The data that does not match the argument is sent to the **filterFalse** **H****idden** component. The DevTools Console displays the following: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/expressView_thumb_0_0(13).jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) The **Filter operator** filters data based on a formula provided by the Creator. When the Data Workflow runs, the operator retrieves all matching data in the data set. For example, if an application asks an end-user a `Yes` or `No` question, the Filter operator can filter the data to only display **Yes** responses. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/filterOperatorClassic_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) The Filter operator has two output ports. The upper output port outputs the data matching the criteria. The lower output port outputs data that does not match the criteria. You can also connect an argument to the argument port of a Filter operator. Doing so lets you sort data based on a dynamic variable. For example, you might have a list of products in a [Data Table](/v1/docs/data-table-component) component. The list of available products may depend on whether your client smokes or not. So, you can add a [Dropdown](/v1/docs/dropdown-component) component that offers Yes or No responses. With the Dropdown set as an argument, the operator filters based on the selection. You’ll find the Filter operator under the [Table](/v1/docs/tableoperators) group to the left of the [Data Workflow](/v1/docs/data-workflow-component) canvas. ## About the Info Window Learn more about each setting in the Filter operator's Info window: | Setting | Description | | --- | --- | | Label | Sets the label for your operator, displaying below the operator on your Data Workflow canvas. This field is optional, but set a label if you use more than one of the same operator type. A label helps you identify your operators without opening any Info windows. | | Do Not Sanitize Formula | When this checkbox is clear, the operator cleans values coming into or defined in the operator. For example, removing special characters. Some of those special characters include `'`, `$`, `#`, and `&amp`. The operator also cleans up complex values. For example, logically breaking up strings of numbers and letters using underscores. A sample module ID can go from `5f6b4cdfabf886024d4de2d3 to 5f_6b_4cdfabf_886024d_4de_2d_3`. Sanitizing improves performance. But it can also lead to unexpected data behavior. If your Create Field is not behaving as expected, try selecting this box. When selected, the operator uses your values and expressions as-is. This is best when working with complex values or values that should remain unchanged. By default, this setting is selected, which means the operator does not attempt to sanitize. | | Preserve Argument Type | When selected, this setting ensures the argument data type is respected when the operator executes. | | Expression | Here, you'll enter the criteria you want to filter your data by. The expression can be a single number, a string, an argument, or a full formula. For example, to find Yes data for the **Do you smoke?** expression, you'd use this formula: `doYouSmoke="Yes"`. Matched data goes through the upper output port. Unmatched data goes through the lower output port. You can also add conditions to a formula. Conditioning your Expression filters your data using `AND` or `OR`. `AND` returns data that's true for all criteria listed. OR checks if any one of the conditions you list is true. Let's say you're retrieving data for citizenship from different countries. You want to identify citizens from the United States of America and Mexico. By using AND, you'll only include those who have citizenship in all of the countries you list. To only accept dual citizens as an input, use this formula: `=AND(citizen=‘Mexico’, citizen=‘USA’)`. By using OR, you'll filter citizens from either country in your list. To include citizens from either country as an input, use this formula: `=OR(citizen=‘Mexico’, citizen=‘USA’)`. | ## Adding a Filter Operator In this example, you'll create a [Data Table](/v1/docs/data-table-component) component that contains a list of countries. You'll include a column displaying whether a country is part of the EU. Then, you'll set up a [Data Workflow](/v1/docs/data-nbsp-workflow-component) to separate countries that are part of the EU from those that are not. ### Configure the Data Table Component First, you'll set up your [Data Table](/v1/docs/data-table-component) component with a list of countries, capitals, and whether they are part of the EU. 1. Drag and drop a **Data Table** component onto your canvas. 2. In the **Property ID** and **Canvas Label Text** fields, enter `dtCountries`. 3. In the data table, enter the following: | # | A | B | C | | --- | --- | --- | --- | | 1 | country | capital | memberOfEU | | 2 | Afghanistan | Kabul | No | | 3 | Albania | Tirana | No | | 4 | Algeria | Algiers | No | | 5 | Cambodia | Phnom Penh | | | 6 | Czechia | Prague | | | 7 | Andorra | Andorra la Vella | No | | 8 | Austria | Vienna | Yes | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Dwf_FilterOperator_DT_thumb_0_0.png?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) 4. Click **Save & Close**. ### Configure the Hidden Components Before you can add your Data Workflow, add two [Hidden](/v1/docs/hidden-component) components to store the Data Workflow results. Your **filterTrue** **H****idden** component contains countries that are part of the EU, and your **filterFalse** **H****idden** component contains countries that are not part of the EU. 1. Drag and drop two **H****idden** components onto your canvas, placing them below your **dtCountries** **Data Table** component. 2. In each component's **Property ID** and **Label Text** fields, enter the following: | # | Property ID | Label Text | | --- | --- | --- | | 1 | **filterTrue** | `filterTrue` | | 2 | **filterFalse** | `filterFalse` | 3. **Save & Close** each component as you add it. ### Configure the Data Workflow Component 1. Drag and drop a **D****ata Workflow** component onto your canvas, placing it above your **H****idden** components. 2. In the **Canvas Label Text** and **Property Name** fields, enter `dwfFilter`. #### Configure the Input Data Operator 1. Drag and drop an **I****nput** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | dtCountries | | Required | Yes | | Source | Default | #### Configure the Filter Operator 1. Drag and drop a **F****ilter** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Filter | | Label | Filter Members of the EU | | Do Not Sanitize Formula | Yes (checked) | | Preserve Argument Type | Unchecked (no) | | Expression | memberOfEU="Yes" | 3. Connect the output port (right) of the **dtCountries** **I****nput** operator to the input port (left) of the **Filter Members of the EU** **F****ilter** operator. #### Configure the First Output Operator 1. Drag and drop an **Output** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Output | | Component | filterTrue | | Action | value | 3. Connect the upper output port (right) of the **Filter Members of the EU** **F****ilter** operator to the input port (left) of the **filterTrue** **O****utput** operator. #### Configure the Second Output Operator 1. Drag and drop a second **Output** operator onto your **D****ata Workflow** canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Output | | Component | filterFalse | | Action | value | 3. Connect the lower output port (right) of the **Filter Members of the EU** **F****ilter** operator to the input port (left) of the **filterFalse** **O****utput** operator. 4. Click **Save**. Here's how the completed Data Workflow looks: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/dwfFilterClassic_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) ### Configure the Button Component Lastly, create a button that the end-user clicks in Express View to trigger your Data Workflow. 1. Drag and drop a **Button** component onto your canvas, placing it below the **filterFalse** **H****idden** component. 2. In the **Property ID** field, enter `btwRunDWF`. 3. In the **Label Text** field, enter `Run DWF Filter`. 4. Navigate to the **Actions** settings. 5. From the **Action Type** drop-down, select **Event**. 6. From the **On Click** drop-down, enter or select **dwfFilter**. 7. Click **Save Component**. 8. **Save** your module. Here's how the completed example looks in the Module Builder: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/moduleCompleteClassic_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) **Preview** your module in Express View and click Run DWF Filter. The Data Workflow filters for data using the memberOfEU="Yes" argument. Data that matches the argument is sent to the **filterTrue** **H****idden** component. The data that does not match the argument is sent to the **filterFalse** **H****idden** component. The DevTools Console displays the following: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/expressView_thumb_0_0(14).jpg?sv=2026-02-06&spr=https&st=2026-10-29T03%3A10%3A48Z&se=2026-10-29T04%3A10%3A48Z&sr=c&sp=r&sig=i2k%2Fvz8USV8XqmzPsBYBb2dUGHj0ezjLDP2mmZOZerc%3D) ## Resources - [Modify the Filter operator](/v1/docs/modifying-data-workflow-operators). - [Introduction to Data Workflow](/v1/docs/introduction-to-data-workflow) - [Introduction to Data Workflow Operators](/v1/docs/data-workflow-operators) - [Data Workflow component](/v1/docs/data-workflow-component) Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. Express View is how your end-user views your application. Express View also lets you preview your applications to test your configuration and view the styling. This is also the view your end-users will see when interacting with your application. After configuring a module, click Preview in the Module Builder to interact with the module in Express View. The DevTools Console helps you securely store, build, test, and deploy your software.