--- title: "Module Transforms" slug: "module-transforms" updated: 2025-09-25T22:43:10Z published: 2025-09-25T22:43:10Z canonical: "docs.unqork.io/module-transforms" --- > ## 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. # Module Transforms UDesignerClassic Designer Working in Unqork, you may need to convert data from one format to another. To do that, you'll use a transform. **Transforms** are helpful for: - Sending data to an external service that requires a format other than what's used in Unqork (JSON). - Receiving data from an external service that only provides data in a format other than JSON. - Sending data between Unqork modules using different Property IDs for the same data. For both sending and receiving data, you'll configure transforms in the Module Builder. ### What Is a Transform? A transform is like a set of instructions you give Unqork to reformat your data. First, specify whether the data is coming in or going out of Unqork. Doing so determines the direction of the transform. Then, select the type of transform you want to perform, and choose a programming language compatible with your data's destination. For Input transforms, you can only use JSON because that is what Unqork uses. For Output transforms, you can use (where the type of language is first and the output is in parentheses): - NJK (JSON) - XSL (XML) - NJK (PDF) - NJK (XML) - NJK (TXT) > [!NOTE] > For Output transforms, confirm the format needed based on your destination. Once a transform type is selected, you can write your transform and input any structural changes. For example, you might change Label Text or Property IDs when sending DATA between Unqork modules. ### Accessing Module Transforms [![A static image displaying how to access the Transforms modal.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_Elip_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20Elip.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) You can access transforms from either the Module Builder or Workflow Builder. To access transforms: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. ### Creating a Transform The first step of working with transforms in Unqork is to create one. To create a transform: 1. Click **+ Add New Transform**. 2. In the **Transform Name** field, enter a name for your transform. Use this name to reference your transform in your module. > [!NOTE] > Once created, you cannot change the name. 3. Under **Type of Transform**, select the type of transform you want to use. 4. In the **Transform** field, enter your transform. [![A static imaging displaying how to create a transform in UDesigner.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. Click **Save**. 6. Click **Back** to return to the Transforms modal. Or, click **X** to return to the Module Builder. ### Referencing a Module Transform Now, let's reference your transform in your module using a [Plug-In](/v1/docs/plug-in-component) component. Then, configure a [Button](/v1/docs/button-component) component to trigger the Plug-In component. #### Configure a Plug-In Component A Plug-In component lets you import information from your transform into your module. You'll use the component's Inputs table to reference the transform. Then, use the component's Outputs table to determine how the data is transformed. 1. Open the module where you created the transform. 2. In the Module Builder, drag and drop a ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Screenshot 2025-09-11 151123.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **Plug-In** component onto your canvas. 3. In the Property ID and **Canvas Label Text** fields, enter `pluginExecuteTransform`. 4. Navigate to the component's **Data** settings. 5. From the **Internal Services** drop-down, select **Execute Transform with Input Data**. The **Data Source URL** and **Request Type** autopopulate. [![A static image displaying how to select the Execute Transform with Input Data Internal Service in UDesigner.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_PlugConfig_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20PlugConfig.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 6. Next to **Inputs & Outputs**, click **Edit**. 7. In the **Inputs** table, enter the following: | Property ID | Mapping | | --- | --- | | 'Your **Module** Name' | formName | | 'Your **Transform** Name' | transformName | | 'The **Field** to Transform' | data | > [!NOTE] > The Property ID column above is unique to your transform, module, and field. Repeat this step for each field you're transforming. [![A static image displaying the correct Input syntax to trigger the transform in UDesigner.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_PlugInputsTable_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20PlugInputsTable.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 8. In the Outputs table, consider the following: | Transform Type | Mapping | | --- | --- | | Input | Map the information coming out of the transform to fields in your module. This overrides the original information. | | Output | Map the information coming from the transform to where you want it to go. For example, TXT or PDF. | > [!NOTE] > The Property ID column reads as **returnedData** for either transform type. The Mapping column references the Property ID of the component that'll hold your transformed data. [![A static image displaying the correct Output syntax to trigger the transform in UDesigner.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_PlugOutputsTable_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20PlugOutputsTable.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 9. Click **Save Component**. #### Configure a Button Component Next, configure a Button component to trigger the Plug-In component. 1. Drag and drop a **Button** component onto your canvas, placing it below the **pluginExecuteTransform** **Plug-In** component 2. In the Property ID field, enter `btnExecuteTransform`. 3. In the **Label Text** field, enter `Execute Transform`. 4. Navigate to the component's **Actions** settings. 5. Set the **Action Type** to `Event`. 6. In the **Click Event** field, enter the Plug-In component's **Property ID**. [![A static image displaying how to configure an event click to trigger the Plug-In component in UDesigner.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_ButtonTrigger_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20ButtonTrigger.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 7. Click **Save Component**. 8. **Save** your module. ### Using the Active Transforms Table If you click Back after creating transforms, all your transforms display in the Active Transforms table. This table displays the following information about your transforms: | Attribute | Description | | --- | --- | | **Active Transforms** | The name of the transform. | | **Direction** | The direction of the transform. | | **Type** | The type of transform, including the template language and the output format in parentheses: - **NJK (JSON)**: Where the template language is Nunjucks and the output format is in JSON. - **XSL (XML)**: Where the template language is XSL and the output format is in XML. - **NJK (PDF)**: Where the template language is Nunjucks and the output format is in PDF. - **NJK (XML)**: Where the template language is Nunjucks and the output format is in XML. - **NJK (TXT)**: Where the template language is Nunjucks and the output format is in TXT. | | **Created By** | The user who created the transform. | | **Last Modified** | The date and time the transform was created. | | **Last Modified By** | The user who last modified the transform. | | **Actions** | The available actions you can you can take on the transform. Actions include: - **View and Edit**: View transform details and make edits. - **Download**: Download the transform to your computer. - **Delete**: Permanently remove the transform. | ### Editing a Transform After creating and testing your transform, you can make changes to it. Once you've created a transform, you can only change how the transform functions. To edit a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action ▾** drop-down, click **View and Edit** for the transform you want to edit. [![A static image displaying how to edit a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_ViewEdit_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20ViewEdit.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. Edit your transform as necessary. > [!NOTE] > You cannot edit the transform name after creation. 6. Click **Save Changes**. 7. Click **Back** to return to the Transforms modal. Or, click **X** to return to the Module Builder. ### Downloading a Transform If you restore a previously deleted module, the transforms do not restore with it. To avoid having to recreate the transform, you can download it as a backup. Then, you can copy and paste it to a new transform. It's important to note that your downloaded transform includes the transform body only. The file does not include the Unqork settings contained in it. To restore your Unqork settings, set them up as you would a new transform. To download a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action ▾** drop-down, click **Download** for the transform you want to download. [![A static image displaying how to download a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_Download_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20Download.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. Locate the file in the downloads folder of your computer. ### Deleting a Transform If you no longer need a transform, you can delete it. Keep in mind that deleting a transform does not delete the components that reference it. You still need to delete any references to the transform from your module. To delete a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action** ▾ drop-down, click **Delete** for the transform you want to remove. [![A static image displaying how to delete a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Transforms_Delete_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Transforms%20Delete.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. At the Delete confirmation message, click **OK**. ### Testing a Transform To test the transform, open your module in Express View and create a submission. Next, use the submission ID in the Transforms modal. > [!TIP] > The submission ID is the middle of the three alphanumeric codes in the Express View URL. You can see a sample submission ID bolded in the following URL: https://trainingx.unqork.io/5e13aa4616d385021040e00/**5e8769e9c74b570d5e9d88bb**/5e12aa4616d38502104. > [!NOTE] > If you have a large module but want to test transforms with only part of the module, create multiple transforms. Then, add the smaller transforms to a parent transform. So, you'd have one transform for part A, one transform for part B, and a parent transform. To test your transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action** ▾ drop-down, click **View and Edit** for the transform you want to test. 5. Expand the **Unit Testing** ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/chevron_down_grey_icon(3).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) panel. 6. In the **Submission ID** field, enter your submission ID. Submission data from the module populates the **Input** field. 7. Click **Run Test**. The transformed data displays in the **Output** field. Working in Unqork, you may need to convert data from one format to another. To do that, you'll use a transform. **Transforms** are helpful for: - Sending data to an external service that requires a format other than what's used in Unqork (JSON). - Receiving data from an external service that only provides data in a format other than JSON. - Sending data between Unqork modules using different Property IDs for the same data. For both sending and receiving data, you'll configure transforms in the Module Builder. ### What Is a Transform? A transform is like a set of instructions you give Unqork to reformat your data. First, specify whether the data is coming in or going out of Unqork. Doing so determines the direction of the transform. Then, select the type of transform you want to perform, and choose a programming language compatible with your data's destination. For Input transforms, you can only use JSON because that is what Unqork uses. For Output transforms, you can use (where the type of language is first and the output is in parentheses): - NJK (JSON) - XSL (XML) - NJK (PDF) - NJK (XML) - NJK (TXT) > [!NOTE] > For Output transforms, confirm the format needed based on your destination. Once a transform type is selected, you can write your transform and input any structural changes. For example, you might change Label Text or Property IDs when sending data between Unqork modules. ### Accessing Module Transforms [![A static image displaying how to access the Transforms modal.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Ellipsis_Vega_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Ellipsis%20Vega.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) You can access transforms from either the Module Builder or Workflow Builder. To access transforms: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. ### Creating a Transform The first step of working with transforms in Unqork is to create one. To create a transform: 1. Click **+ New Transform**. 2. In the **Enter Transform Name** field, enter a name for your transform. Use this name to reference your transform in your module. > [!NOTE] > Once created, you cannot change the name. 3. Under **Direction of Transform**, select **Input** or **Output** depending on the direction of your transform. 4. For an Output type, click the **Output** tab and select the **Type of Transform** you want to use. > [!NOTE] > By default, the only available Input type is NJK (JSON). 5. In the **Transform** field, enter your transform. [![A static imaging displaying how to create a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_CreateNew_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20CreateNew.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 6. Click **Save**. 7. Click **Back** to return to the Transforms modal. Or, click **X** to return to the Module Builder. ### Referencing a Module Transform Now, lets reference your transform in your module using a [Plug-In](/v1/docs/plug-in-component) component. Then, configure a [Button](/v1/docs/button-component) component to trigger the Plug-In component. ### Configure a Plug-In Component A Plug-In component lets you import information from your transform into your module. You'll use the component's Inputs table to reference the transform. Then, use the component's Outputs table to determine how the data is transformed. 1. Open the module where you created the transform. 2. In the Module Builder, drag and drop a ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Screenshot 2025-09-11 151123.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **Plug-In** component onto your canvas. 3. In the Property ID and Canvas Label Text fields, enter `pluginExecuteTransform`. 4. From the **Internal Services** drop-down, select **Execute Transform with Input Data**. The **Data Source URL** and **Request Type** autopopulate. [![A static image displaying how to select the Execute Transform with Input Data Internal Service.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Plug-In_02_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Plug-In%2002.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. In the Inputs table, enter the following: | Property ID | Mapping | | --- | --- | | 'Your **Module** Name' | formName | | 'Your **Transform** Name' | transformName | | 'The **Field** to Transform' | data | > [!NOTE] > The Property ID column above is unique to your transform, module, and field. Repeat this step for each field you're transforming. 6. In the Outputs table, consider the following: | Transform Type | Mapping | | --- | --- | | Input | Map the information coming out of the transform to fields in your module. This overrides the original information. | | Output | Map the information coming from the transform to where you want it to go. For example, TXT or a PDF. | > [!NOTE] > The Property ID column reads as **returnedData** for either transform type. The Mapping column references the Property ID of the component that'll hold your transformed data. [![A static image displaying the correct Input and Output syntax to trigger the transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Plug-In_01_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Plug-In%2001.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 7. Click **Save**. ### Configure a Button Component Next, add a Button component to trigger the Plug-In component. 1. Drag and drop a **Button** component onto your canvas, placing it below the **pluginExecuteTransform** ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Screenshot 2025-09-11 151123.png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **Plug-In** component. 2. In the Property ID field, enter **btnExecuteTransform**. 3. In the Label Text field, enter `Execute Transform`. 4. Set the Action Type to **Event**. 5. In the **Click Event** field, enter the Plug-In component's **Property ID**. [![A static image displaying how to configure an event click to trigger the Plug-In component.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Button_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Button.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 6. Click **Save & Close**. 7. **Save** your module. ### Using the Active Transforms Table If you click Back after creating transforms, all your transforms display in the Active Transforms table. This table displays the following information about your transforms: | Attribute | Description | | --- | --- | | **Active Transforms** | The name of the transform. | | **Direction** | The direction of the transform. Options include **Input** or **Output**. | | **Type** | The type of transform, including the template language and the output format in parentheses: - **NJK (JSON)**: Where the template language is Nunjucks and the output format is in JSON. - **XSL (XML)**: Where the template language is XSL and the output format is in XML. - **NJK (PDF)**: Where the template language is Nunjucks and the output format is in PDF. - **NJK (XML)**: Where the template language is Nunjucks and the output format is in XML. - **NJK (TXT)**: Where the template language is Nunjucks and the output format is in TXT. | | **Created By** | The user who created the transform. | | **Last Modified** | The date and time the transform was created. | | **Last Modified By** | The user who last modified the transform. | | **Actions** | The available actions you can you can take on the transform. Actions include: - **View and Edit**: View transform details and make edits. - **Download**: Download the transform to your computer. - **Delete**: Permanently remove the transform. | ### Editing a Transform After creating and testing your transform, you can make changes to it. Once you've created a transform you can only change how the transform functions. To edit a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action** ▾ drop-down, click **View and Edit** for the transform you want to edit. [![A static image displaying how to edit a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Edit_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Edit.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. Edit your transform as necessary. > [!NOTE] > You cannot edit the transform name after creation. 6. Click **Save**. 7. Click **Back** to return to the Transforms modal. Or, click **X** to return to the Module Builder. ### Downloading a Transform If you restore a previously deleted module, the transforms do not restore with it. To avoid having to recreate the transform, you can download it as a backup. Then, you can copy and paste it to a new transform. It's important to note that your downloaded transform includes the transform body only. The file does not include the Unqork settings contained in it. To restore your Unqork settings, set them up as you would a new transform. To download a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action ▾** drop-down, click **Download** for the transform you want to download. [![A static image displaying how to download a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Download_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Download.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. Locate the file in the downloads folder of your computer. ### Deleting a Transform If you no longer need a transform, you can delete it. Keep in mind that deleting a transform does not delete the components that reference it. You still need to delete any references to the transform from your module. To delete a transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action ▾** drop-down, click Delete for the transform you want to remove. [![A static image displaying how to delete a transform.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms_Delete_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Transforms%20Delete.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) 5. At the Delete confirmation message, click **OK**. ### Testing a Transform To test the transform, open your module in Express View and create a submission. Next, use the submission ID in the Transforms modal. > [!TIP] > The submission ID is the middle of the three alphanumeric codes in the Express View URL. You can see a sample submission ID bolded in the following URL: `https://trainingx.unqork.io/5e13aa4616d385021040e00/5e8769e9c74b570d5e9d88bb/5e12aa4616d38502104`. > [!NOTE] > If you have a large module but want to test transforms with only part of the module, create multiple transforms. Then, add the smaller transforms to a parent transform. So, you'd have one transform for part A, one transform for part B, and a parent transform. To test your transform: 1. Open your module in the Module Builder. 2. Click the ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(33).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) **(ellipsis)** button. 3. Select **Transforms**. Your transforms display in the **Active Transforms** table. 4. From the **Action** ▾ drop-down, click **View and Edit** for the transform you want to test. 5. Expand the **Unit Testing**![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/chevron_down_grey_icon(3).png?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A37Z&se=2026-11-07T18%3A57%3A37Z&sr=c&sp=r&sig=opJXtzTT1i7GVNZMrT0ZLzmueWcKp0N4TXLrBe7Imtc%3D) panel. 6. In the **Submission ID** field, enter your submission ID. Submission data from the module populates in the **Input** field. 7. Click **Run Test**. The transformed data displays in the **Output** field. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. Nunjucks is a flexible JavaScript templating engine that supports template inheritance, filters, and logic-based expressions for dynamic content rendering. XSL (eXtensible Stylesheet Language) is a styling language used to transform and render XML. Extensible Markup Language (XML) is markup language that lets you define and store data in a shareable way. A modal is a window that appears on top of the content you are currently viewing. Enter inputs components and actions you want the component to perform. Enter outputs components and actions you want the component to perform. A Property ID is the unique field ID used by Unqork to track and link components in your module. Enter outputs components and actions you want the component to perform. Nunjucks is a flexible JavaScript templating engine that supports template inheritance, filters, and logic-based expressions for dynamic content rendering. 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. 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 . Enter inputs components and actions you want the component to perform.. 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.