--- title: "How to: Trigger Transforms in the Module Builder" slug: "how-to-trigger-transforms-in-the-module-builder" updated: 2025-09-25T19:56:21Z published: 2025-09-25T19:56:21Z canonical: "docs.unqork.io/how-to-trigger-transforms-in-the-module-builder" --- > ## 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: Trigger Transforms in the Module Builder ## Overview To **trigger a transform** in the Module Builder, use the [Plug-In component](/v1/docs/plug-in-component). In this article, you'll learn the different ways you can trigger your transforms in the Module Builder. You'll also configure your Plug-In for what you want the output of your transform to do. Here are a couple of ways you can trigger your transforms: - Execute with Input Data - Pre-Request Transform ## Triggering a Transform Using an Execute with Input Data One way to trigger your transform is to select `Execute Transform with Input Data` from the **Internal Services** drop-down menu. You can use this service to reference any transform in any module in your environment. You can also specify which fields you want to transform in your submission data. To reference the transform and your fields, you'll enter the right inputs into your Plug-In. Then, using these inputs as the API call's request body your [Plug-In component](/v1/docs/plug-in-component) executes your transform. In the Plug-In component's **Inputs** table, you'll enter the following: - The module ID of the module where you added the transform. - The name of the transform you want to trigger. - The name of the field(s) you want to transform. [![A static image displaying a Plug-In component's configuration window. The Internal Service is set to Execute Transform with Input Data](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginInputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginInputs.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D) Let's move on to your [Plug-In component's](/v1/docs/plug-in-component) **Outputs** table. You'll fill in the **Outputs** table based on your transform type. For an **Input** transform, you'll map the information coming out of the transform to fields in your module. This overrides the original information. For an **Output** transform, you'll map the information coming from the transform to where it'll go. This could be text, JSON data, or a PDF. > [!NOTE] > Your Execute Transform with Input Data outputs your transformed data as an object. So, you'll enter the component Property ID in the **Property ID** column of the **Outputs** table. Then, you'll enter the data type of your transform in the **Mapping** column. You'll write your mapping based on the following data types: | Data Type | Mapping | | --- | --- | | JSON data | jsonData | | Text | txtData | | PDF | pdfUrl | > [!NOTE] > You can also map your transform output to XML format. We'll cover mapping to XML in another lesson. For example, say you use an Input transform that transfers data into JSON. You want to store that data in a Hidden component. So, you'd enter **dataTransform** for the component's Property ID. Here's how the **Outputs** table would look: [![A static image displaying a Plug In component's Outputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginOutputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginOutputs.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D) Now that you know how to trigger your transforms using Execute with Input Data, let's move on to a different method. ## Triggering a Transform Using a Pre-Request Transform You can also trigger a transform in the Module Builder by selecting a transform from the **Pre-Request Transform** menu. To display the Pre-Request Transform menu, set your [Plug-In component's](/v1/docs/plug-in-component) **Request Type** to PATCH, POST, or PUT. A Pre-Request Transform is the first in a two-step process. First, the Pre-Request Transform step transforms your data. Then, it uses your transform output as the input for your Plug-In component. That way, you’ll use the Pre-Request Transform to use your transformed data directly in an API call. To transform data with a Plug-In component, you’ll use Execute Transform with Input Data as the trigger. To set up a Pre-Request Transform trigger in your Plug-In component, do the following: > [!NOTE] > These instructions assume you have a new module open, saved, and with a title. These instructions also assume you have added a Plug-In component to your Module Builder canvas. 1. Open the ![](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-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D) **Plug-In** component that you'll use to trigger your Pre-Request Transform. 2. Select which **Service Type** you'll use for your transform. 3. Select which **Internal Service** or **External Service** you'll use for your transform, if applicable. Your Pre-Request doesn't require you to select a service. 4. From the **Request Type** drop-down, select **PATCH**, **POST**, or **PUT**. Selecting one of these options causes the Pre-Request Transform drop-down menu to appear under **Service Type**. 5. Select your transform from the **Pre-Request Transform** drop-down menu. > [!NOTE] > To select a transform, you must first create one in the Module Builder. For more information on how to create a transform, search for **Transforms Sidebar Option** in our In-Product Help. [![A static image displaying a plug in component's pre-transform setting.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/plugInPreTransform_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/plugInPreTransform.jpg?sv=2026-02-06&spr=https&st=2026-11-09T03%3A51%3A17Z&se=2026-11-09T04%3A51%3A17Z&sr=c&sp=r&sig=L9%2BeQ99EkgULlbvCkzRjpCCAD45XkwTpvfnLU%2BMhh4Q%3D) When you use a Pre-Request Transform trigger, the API call’s request body won’t need the Plug-In’s **Inputs** table. Instead, the API call’s request body is the output of your executed transform. So, when using a Pre-Request Transform, leave the **Inputs** table empty. Note that Pre-Request Transform only uses transform parameters as your request body. Meaning that you can only select transforms saved to the module you’re in. > [!NOTE] > As you just learned, the Pre-Request Transform uses your transform as the request body of your API call. That means your transform must include the input parameters to run as expected. Also known as Record Data. Submission data consists of information saved by Unqork components. View submission data by using the angular command, or in Record Collections. 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. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. PDF (Portable Document Format) is a file format that allows users to share and print documents without modifying them. 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. Extensible Markup Language (XML) is markup language that lets you define and store data in a shareable way. 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.