--- title: "How to: Set Up the Merge Operator's Outer Feature" slug: "merge-operator-outer" updated: 2025-12-23T15:43:54Z published: 2025-12-23T15:43:54Z canonical: "docs.unqork.io/merge-operator-outer" --- > ## 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. # How to: Set Up the Merge Operator's Outer Feature UDesignerClassic Designer This how-to guide explores merging data using the **Merge operator**'s Outer feature. This is a unique feature that separates values that do not share the same key between two data tables. All values from the operator’s upper input table whose key does not match the values of the lower input table will display in the new table. ## Configuration Let's say you have a data table that includes insurance policyholders' names and their birthdates. Then, you have a second data table storing the policyholders' names and their premiums. These two tables include similar and different names. Instead of merging values with matching keys, let’s say you only want values that do not match that key. In this how-to guide, you’ll set up the Merge operator's key as the policyholder name. After the merge, only upper input values that do not contain the same policyholders as the lower input will display in the new table. > [!NOTE] > These instructions assume you have a new module open, saved, and with a title. ### Configure the First Data Table Component First, set up a [Data Table](/v1/docs/data-table-component) component with a list of annuitants and their dates of birth. 1. In the Module Builder, drag and drop a **Data Table** component onto your canvas. 2. In the **Property ID** field, enter `dtAnnuitant`. 3. In the data table, enter the following: | annuitant | dob | | --- | --- | | Kris Marrier | 01/01/1990 | | Mattie Poquette | 12/12/1989 | | Ezekiel Chui | 04/05/1980 | ![Data Table component displaying names and dates of birth for several individuals.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer dtAnnuitant(1).png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save Component**. ### Configure the Second Data Table Component Next, set up another [Data Table](/v1/docs/data-table-component) component with another list of annuitants and their insurance policy premiums. 1. Drag and drop a **Data Table** component onto your canvas, placing it below your previous Data Table component. 2. In the **Property ID** field, enter `dtPremiums`. 3. In the data table, enter the following: | annuitant | premium | | --- | --- | | Kris Marrier | 50000 | | Mattie Poquette | 25000 | | Willow Kusko | 20000 | ![Data Table component displaying annuitants and their corresponding premium amounts.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image-1765895942561.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save Component**. ### Configure the Data Workflow Component Next, set up a [Data Workflow](/v1/docs/data-workflow-component) component and configure the [Merge](/v1/docs/merge-operator) operator. How you configure the operator's inputs becomes important when using the Outer feature. Every upper input value whose key does not match the lower input values is displayed in your new table. 1. Drag and drop a **Data Workflow** component onto your canvas, placing it below your Data Table components. 2. In the **Property ID** and **Canvas Label Text** fields, enter `dwfMergeOuterLeft`. #### Configure the First Input Operator 1. Drag and drop an **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | dtAnnuitant | | Required | Yes | | Source | Default | #### Configure the Second Input Operator 1. Drag and drop another **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | dtPremiums | | Required | Yes | | Source | Default | #### Configure the Merge Operator 1. Drag and drop a **Merge** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Merge | | Label | Merge Outer | | Merge Type | Outer | | Keep Flag | False | | Renaming | Replace | | Rows to Keep | First | | Merge Key | annuitant | 3. Connect the output port (right) of the `dtAnnuitant` **Input** operator to the upper input port (left) of the **Merge** operator. 4. Connect the output port (right) of the `dtPremiums` **Input** operator to the lower input port (left) of the **Merge** operator. #### Configure the Console Operator 1. Drag and drop a **Console** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Console | | Label | Outer Merge Result | 3. Connect the output port (right) of the **Merge** operator to the input port (left) of the **Console** operator. ![Data Workflow canvas showing input, merge, and console components for processing data.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer dwfMergeOuterLeft.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save Component**. ### Configure the Button Component Lastly, add a [Button](/v1/docs/how-to-guide-button-component) component to trigger the Data Workflow. 1. Drag and drop a **Button** component onto your canvas, placing it below your Data Workflow component. 2. In the **Property ID** field, enter `btnMergeOuter`. 3. In the **Label Text** field, enter `Outer Merge`. 4. From the **Action Type** drop-down, select **Event**. 5. From the **On Click** drop-down, select **dwfMergeOuter**. ![Button component settings showing Event selected for Action Type and dwfMergeOuterLeft selected for On Click.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer btnMergeOuter(1).png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 6. Click **Save Component**. 7. **Save** your module. Here's how your completed module looks in the Module Builder: ![Module Builder canvas displaying components and options for merging data.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer Module Builder.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) Preview your module in Express View and open the DevTools Console. Click the **Outer Merge** button to trigger the Data Workflow. All you see is Ezekiel Chui's name and birthdate. Because Kris Marrier and Mattie Poquette exist in both tables, the Outer feature excludes them from the new table. This feature keeps only the upper input values that do not match those of the lower input. For further testing, switch the inputs of your Merge operator and trigger the operation. You'll see very different values in your new table. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/DWF_Merge_13.jpg?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) This how-to guide explores merging data using the **Merge operator**'s Outer feature. This is a unique feature that separates values that do not share the same key between two data tables. All values from the operator’s upper input table whose key does not match the values of the lower input table will display in the new table. ## Configuration Let's say you have a data table that includes insurance policyholders' names and their birthdates. Then, you have a second data table storing the policyholders' names and their premiums. These two tables include similar and different names. Instead of merging values with matching keys, let’s say you only want values that do not match that key. In this how-to guide, you’ll set up the Merge operator's key as the policyholder name. After the merge, only upper input values that do not contain the same policyholders as the lower input will display in the new table. > [!NOTE] > These instructions assume you have a new module open, saved, and with a title. ### Configure the First Data Table Component First, set up a [Data Table](/v1/docs/data-table-component) component with a list of annuitants and their dates of birth. 1. In the Module Builder, drag and drop a **Data Table** component onto your canvas. 2. In the **Property ID** and **Label Text** fields, enter `dtAnnuitant`. 3. In the data table, enter the following: | annuitant | dob | | --- | --- | | Kris Marrier | 01/01/1990 | | Mattie Poquette | 12/12/1989 | | Ezekiel Chui | 04/05/1980 | ![Data table component names and dates of birth for individuals listed.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer dtAnnuitant CD.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save & Close**. ### Configure the Second Data Table Component Next, set up another [Data Table](/v1/docs/data-table-component) component with another list of annuitants and their insurance policy premiums. 1. Drag and drop a **Data Table** component onto your canvas, placing it below your previous Data Table component. 2. In the **Property ID** and **Label Text** fields, enter `dtPremiums`. 3. In the data table, enter the following: | annuitant | premium | | --- | --- | | Kris Marrier | 50000 | | Mattie Poquette | 25000 | | Willow Kusko | 20000 | ![Data table component premiums for different individuals with their respective amounts.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer dtPremiums CD.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save & Close**. ### Configure the Data Workflow Component Next, set up a [Data Workflow](/v1/docs/data-workflow-component) component and configure the [Merge](/v1/docs/merge-operator) operator. How you configure the operator's inputs becomes important when using the Outer feature. Every upper input value whose key does not match the lower input values is displayed in your new table. 1. Drag and drop a **Data Workflow** component onto your canvas, placing it below your Data Table components. 2. In the **Canvas Label Text** and **Property Name** fields, enter `dwfMergeOuterLeft`. #### Configure the First Input Operator 1. Drag and drop an **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | dtAnnuitant | | Required | Yes | | Source | Default | #### Configure the Second Input Operator 1. Drag and drop another **Input** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Input | | Component | dtPremiums | | Required | Yes | | Source | Default | #### Configure the Merge Operator 1. Drag and drop a **Merge** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Merge | | Label | Merge Outer | | Merge Type | Outer | | Keep Flag | False | | Renaming | Replace | | Rows to Keep | First | | Merge Key | annuitant | 3. Connect the output port (right) of the `dtAnnuitant` **Input** operator to the upper input port (left) of the **Merge** operator. 4. Connect the output port (right) of the `dtPremiums` **Input** operator to the lower input port (left) of the **Merge** operator. #### Configure the Console Operator 1. Drag and drop a **Console** operator onto your Data Workflow canvas. 2. Configure the operator's **Info** window as follows: | Setting | Value | | --- | --- | | Category | Console | | Label | Outer Merge Result | 3. Connect the output port (right) of the **Merge** operator to the input port (left) of the **Console** operator. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/DWF_Merge_14.jpg?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 4. Click **Save**. ### Configure the Button Component Lastly, add a [Button](/v1/docs/how-to-guide-button-component) component to trigger the Data Workflow. 1. Drag and drop a **Button** component onto your canvas, placing it below your Data Workflow component. 2. In the **Property ID** field, enter `btnMergeOuter`. 3. In the **Label Text** field, enter `Outer Merge`. 4. Set the **Action Type** as **Event**. 5. Select **dwfMergeOuter** from the **On Click** dropdown. ![Button component settings showing action type selected as Event dwfMergeOuter selected from the on click dropdown.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Merge Outer btnMergeOuter CD.png?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) 6. Click **Save & Close**. 7. **Save** your module. Here's how your completed module looks in the Module Builder: ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/DWF_Merge_12.jpg?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) Preview your module in Express View and open the DevTools Console. Click the **Outer Merge** button to trigger the Data Workflow. All you see is Ezekiel Chui's name and birthdate. Because Kris Marrier and Mattie Poquette exist in both tables, the Outer feature excludes them from the new table. This feature keeps only the upper input values that do not match those of the lower input. For further testing, switch the inputs of your Merge operator and trigger the operation. You'll see very different values in your new table. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/DWF_Merge_13.jpg?sv=2026-02-06&spr=https&st=2026-11-08T03%3A56%3A48Z&se=2026-11-08T04%3A56%3A48Z&sr=c&sp=r&sig=31UN35WmHY4TsGM6Fhin7cZ%2BhdZcqP641AK5Dk7fv08%3D) A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. 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 . Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. The action performed by the button when selected. Enter the Property ID of the component that you want to trigger on each button-click. 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. A Property ID is the unique field ID used by Unqork to track and link components in your module.