--- title: "Plug-In Component" slug: "plug-in-component" description: "Connect modules to internal and external services using Unqork's Plug-In component for secure API calls, enhancing speed and data management." updated: 2026-06-24T16:08:05Z published: 2026-06-24T16:08:05Z canonical: "docs.unqork.io/plug-in-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. # Plug-In Component UDesignerClassic Designer The **Plug-In component** connects a module to internal and external API services for passing data to and from a chosen source. To make an external API call with a Plug-In component, set up the API service in Unqork's [Services Administration](/v1/docs/services-administration). Doing so requires you to reference the external service's API documentation. Once the service is set up, the API call becomes available to use with the Plug-In component. > To learn more about Services Administration, view our [Services Administration](/v1/docs/services-administration) article. You'll find the Plug-In component in the [Data & Event Processing](/v1/docs/data-event-processing-components) group to the left of the [Module Builder](/v1/docs/introduction-to-the-module-builder). ### Remote Executing Your Plug-In Component It's best practice to configure your Plug-In component to [remote execute](/v1/docs/server-side-module-execution). Remote execute, or server-side execution, lets the Plug-In component execute the call outside of the browser. Running APIs in the browser is not secure. If the API call happens in the browser, malicious agents can access the data in the DevTools Console—including accessing PII (personally identifiable information) and inject malware. The benefits of using remote execute are: - **Speed**: Back-end services handled by a remote server ease the burden on the browser. - **Security**: No one can use the DevTools Console to access PII. - **Debugging**: Modularization provides a smaller code-base for debugging. > To learn more about the DevTools Console, view our [Access Submission Data Using the DevTools Console](/v1/docs/access-submission-data-using-the-devtools-console) article. ## About the Configuration Window > To learn more about general component settings and those that display when a component is associated with Data Models, view our [General Component Settings](/v1/docs/general-component-settings) article. ### Display Panel #### Field Text | Setting | Description | | --- | --- | | Label Text | Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. User-friendly labels make your module more accessible. Keep labels short and descriptive (a word or two) using title case. For longer entries, use sentence case. | [![A static image displaying the UDesigner Plug-In component's Field Text setting.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Display_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Plugin%20Comp%20Display.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ### Data Panel #### Data Storage ##### Service Type The Plug-In component can be used for making internal Unqork API calls and external API calls. ##### Unqork Selecting this option provides you with an **Internal Services** drop-down. | Setting | Description | | --- | --- | | Internal Services | Shows all internal Unqork services available for use. After selecting a service, the Request Type and Data Source URL autofill. | | Pre-Request Transform | This setting only displays for certain internal services. In the Pre-Request Transform drop-down, you can select a transform to perform on the submission. The transformed output creates the request body passed to the API call. | | Module/Workflow | If you are making a call to a module or workflow, a **Module** or **Workflow** drop-down displays, so you can select a specific module or workflow. | | Data Source URL | For an API to retrieve data, you need the API's URL information. In this field, enter the API information as obtained from the API documentation. Add additional filters at the end of the URL if you want to drill down to a specific type of data. | ##### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Data_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) External Selecting this option provides you with an **External Services** drop-down. | Setting | Description | | --- | --- | | External Services | Shows all services already configured in [Services Administration](/v1/docs/services-administration). After selecting a service, the Request Type and Data Source URL autofill. | | Data Source URL | For an API to retrieve data, you need the API's URL information. In this field, enter the API information as obtained from the API documentation. Add additional filters at the end of the URL if you want to drill down to a specific type of data. | #### Request Type The Request Type is automatically selected after you've completed the Service Type settings. The Plug-In component includes five Request Types. - **Get**: Retrieves and reads existing resources, like submission data. - **Patch**: Partially updates existing resources. - **Post**: Creates new resources. - **Put**: Updates existing resources. - **Delete**: Deletes resources. If **Patch**, **Post**, or **Put** are selected, two new toggles display: | Setting | Description | | --- | --- | | Make a MultiPart API Call | Multipart API calls combine one or more sets of data into a single body. Multipart requests are common for file uploads and for transferring multiple data types with a single request. Set this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **ON** when sending a request that isn't part of the API's body. When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Alternative Multipart Sub-Type (Services) field displays. | | Alternative Multipart Sub-Type (Services) | The Alternative Multipart Sub-Type (Services) field is only available for external APIs, but can be used to specify whether the parts of your request are related, mixed, or otherwise correlated. > [!WARNING] > There is a 50 MB limit for all JSON payloads to internal services in Unqork and to external services. | | Promote Object/Array to Top Level | Use this setting to call an object or array, and make it the body of the API request. When the Promote Object/Array to Top Level toggle is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Object/Array Key field displays. | | Object/Key Array | In this field, enter the key of the object or array that you're promoting to the top level. > [!WARNING] > The object or array key you enter here must be the Mapping value in the Inputs table. | #### Inputs Table ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Data_Inputs_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) Use these fields to enter inputs as references for your logic components. These references include values you want to send as part of the API call's request header or body. For example, when getting module submission details for a dashboard, you need to enter the fields that you want to pull from the source module. > [!WARNING] > There is a 50 MB limit for all request payloads to internal services in Unqork. | Setting | Description | | --- | --- | | **Property ID** | Examples of supported inputs include: - The Property ID of another component in the module. For example, this component can be a trigger, an input for a Micro Decision, or is referenced in a formula. The Property ID entered must match the Property ID used in the output component. Remember, use camel case (stylized as camelCase) without spaces or punctuation. > [!NOTE] > When using the Watch Trigger Type, enter all inputs the component must watch for in the Property ID column. > You can use dot notation to reference values nested in a Property ID in the submission data. - Values that are present in the submission object. For example, you can enter currentUser to retrieve information about the end-user from this object. - Native values generated by Unqork, like entering buttonClick. Unqork creates this value following button-click events. - Values you want to hard-code into an API call. For example, entering 'no-reply@unqork.com' to map the **from.email** parameter of a SendGrid call. When hard-coding a value, add single quotes around it. This tells the Plug-In the value isn't the Property ID of a component. | | **Mapping** | API documentation includes mapping information. Mapping information tells your Plug-In component which data to send or retrieve from the API call. In the case of SendGrid integration, the Mapping column indicates where the Property ID values show up in the email. If you enter 'no-reply@unqork.com' in the Inputs table's Property ID and from.email in the Mapping column, your From address is **no-reply@unqork.com**. | | **Required** | When ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Checked_Box(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (Checked), the end-user must enter a value into the field before navigating ahead or saving the module. | | **Exclude** | When selected, the Plug-In component doesn't pass the field as part of your API call's request body. But, the Plug-In component can still watch for changes made to the value. | | **Header** | When selected, the Plug-In component passes the field as part of the API call's request header. When clear, the Plug-In component passes the field as part of the request body. | | **Resolvebase64** | Select this setting if you're expecting a Base64 file from your API request. Selecting this setting prepares the system for the Base64 file, making it easier to convert the file. | | **Optional** | When selected, the Plug-In component doesn't pass the field in the API call's request body if there's no value (null). By default, the Plug-In passes every Input in the request body, even if the field is empty (null). | #### Outputs ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Data_Outputs_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) Use the Outputs table to send the data retrieved by the API call to a specific location. | Setting | Description | | --- | --- | | **Property ID** | For your logic component to recognize an output, you must enter the destination component's Property ID(s). The Property ID entered must match the Property ID of the component that acts as the output. Remember, use camel case without spaces or punctuation. | | **Mapping** | Map Property IDs according to the API's documentation. Mapping tells your Plug-In component what to retrieve from the API call. For the Outputs table, map specific data to put into your output components. | | **Option** | This setting offers handling methods for your outputs: - **Fill**: If there's already a value in the output field, the value remains the same. The API call's value doesn't replace the existing value. - **Replace**: If there's already a value in the output field, this setting overwrites the value. - **Validate**: The Plug-In component maps and validates the value. Validation occurs based on the validation rules set in the output field's settings. - **Disable**: This setting maps the response to the field and then disables the field. Use this setting to disable editing of the output field after it populates. - **DynamicRefresh**: Triggers the specified panel to refresh its existing content with the provided component definitions (component JSON). The specified Panel component must have [Dynamic Refresh](/v1/docs/dynamic-refresh) enabled. | | **Header** | When selected, the Plug-In component looks for the output value in the response header. When clear, the Plug-In looks for the field in the response body. | ### Actions Panel #### Triggers | **Setting** | Description | | --- | --- | | **Trigger Type** | This setting provides the following options: - **Manual**: The component fires when triggered by another component. For example, when using a [Button](/v1/docs/button-component) or [Initializer](/v1/docs/initializer-component) component to trigger a [Plug-In](/v1/docs/plug-in-component) component. By default, this Trigger Type is selected. - **Watch**: The component fires when there's any action taken on the input listed in the Inputs table. Actions include entering a new value, editing, or overwriting a saved value. If there are multiple inputs, use the Required setting to specify what inputs must be present before firing. | | **Concurrent Trigger** | Enter the Property ID of the component to trigger concurrently when the Plug-In component makes the API call. | | **Post Trigger** | Enter the Property ID of the component to trigger after the Plug-In completes the API call. For example, triggering a component to display the data received from the Plug-In component's API call. | | **Error Trigger** | Enter the Property ID of a component to trigger on failure of the API call. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | **Set Timeout** | The number of milliseconds that pass before the API call times out. If an API call doesn't respond within a reasonable time, you don't want the Plug-In component to continue to wait. Unresponsive API calls can stall your entire application. The maximum timeout is 300,000 milliseconds (5 minutes). The default timeout is 120,000 milliseconds (2 minutes). | | **Set Retry Delay** | The number of milliseconds that pass before the component tries the API call again after it failed. Waiting before retrying an API call could give the destination server time to clear the issues that caused it to be unresponsive. The maximum delay is 10,000 milliseconds. > [!WARNING] > In the Centauri runtime, this setting does not trigger when the Plug-In component fails a PUT call to a remote execute. However, it will trigger when the PUT call fails in the Vega runtime. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | **Set Number of Retries** | The number of retries the Plug-In component makes on a failed API call. It's best practice to limit the number of retries, so a continually failing API call doesn't stall your application. Use this setting to limit the number of times the Plug-In component retries the failed API call. If the API call fails all retries, the Error Trigger fires. The maximum number of retries is 10. > [!WARNING] > In the Centauri runtime, this setting does not trigger when the Plug-In component fails a PUT call to a remote execute. However, it will trigger when the PUT call fails in the Vega runtime. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | **Disable Execution** | If Disable Execution is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the logic tied to this component does not execute. Use this to keep the component's settings, but disable the operations it performs. By default, this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | ### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Actions_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) Advanced Panel | Setting | Description | | --- | --- | | Set Debounce | The number of milliseconds that pass before the module loads this component. This is useful if you have a large module and you load several components at the same time. > [!NOTE] > 1,000 milliseconds = 1 second. | | Show Modal Dialog While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, this setting creates a modal that informs the end-user that the data is processing. The following fields are optional: - **Modal Processing Title**: Enter the modal's title. - **Modal Processing Message**: Enter the message end-users see while the data is processing. - **Modal Completion Title**: Enter the title end-users see after the data processes. - **Modal Error Message**: Enter the message end-users see if the data encounters an error while loading. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Show Cursor as Spinner While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the end-user's cursor turns into a spinner while data processes. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Show Page Loader Spinning While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the page displays a spinning icon while data processes. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Assign Values if They Are Null or Empty String | If an output comes back empty, you can either have the data store as an empty value or choose not to store the data. By setting this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)****,** null or empty strings store as empty values. If set to **(OFF)**, the values don't record. By default, this toggle is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**. | | Only Set Output Variables | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Plug-In component only returns the values set in the Output table, instead of the entire plugin object. Also, none of the Plug-In component's other information logs in the DevTools Console. When set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**, the plugin object logs in the DevTools Console with all response data. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Convert XML Response to JSON | Older API calls are more likely to use XML coding language. The Unqork Designer Platform reads JSON coding language only. If you know your API call returns XML, set this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)****.** When set to **![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)** **(ON)**, the system automatically converts XML to JSON. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Expect Binary Response | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the response doesn't convert to and store as Base64. Enable this setting when you expect the API call to return a large file, and/or want to store the response in its original file format. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Required Property Path in Response | This field lets you set a required property path return value. If the path isn't present in the response body, the call results in an error. | | Enable Server Side Pagination | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)****,** the server sends a single page of data at a time. This helps the page load faster and prevents bloating the end-user's memory. This setting is especially useful for large data sets. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Synchronous Processing | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, this setting performs each logic action in sequential order. Use this setting to prevent executing logic actions out of order. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Flatten to a Single Record Value | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the module flattens results into a single record value. When set to OFF, the module leaves the results unflattened into multiple values. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Assign All Values Returned to Module | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Plug-In component scans the module for matching values across the API call and Property IDs. Only set this toggle to (ON) when the module and the API call's data match. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Use "Data" Value from Response | The Plug-In component looks for all specified output values in the data section of the response body. When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (ON), you can remove the data. prefix from your mapping fields. For example, mapping to lastName instead of data.lastName. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Include Cookies on Cross-Site Requests | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, an application can makes cross-site access-control requests using credentials, like cookies. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Disable Input Behavior | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Plug-In component does not attempt to resolve values that begin with `=` (**equal sign**). This setting is useful in a case where a Creator wants to send values to a Plug-In component that begin with an equal sign but are not acting as a formula. If this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**, the Plug-In component will treat the value as a formula. | ## [![A static image displaying the UDesigner Plug-In component's Advanced settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_Advanced_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Plugin%20Comp%20Advanced.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) Adding a Plug-In Component In this example, set up the Plug-in component's **List Submissions for Dashboard** API call. This call retrieves data submitted by your end-user and populates it on a dashboard. To make it easier, we already created the source module your end-user uses to submit their information. You can find the prebuilt source module here: [https://training.unqork.io/#/form/5eb01aa6811bf80215fd706b/edit](https://training.unqork.io/#/form/5eb01aa6811bf80215fd706b/edit). If you preview this module in Express View, you see a page that collects your end-user's information. This source module includes name, email, and date of birth fields. After your end-user adds their information, they click **Save**. Their [submission data](/v1/docs/submission-data) is then stored. The **List Submissions for Dashboard** API call references this source module and retrieves the submission data to display in a dashboard. These instructions assume that you have an open module saved with a title. In this configuration, you need the following components: - 1 [Initializer](/v1/docs/initializer-component) component - 1 [Hidden](/v1/docs/hidden-component) component - 1 **Plug-In** component - 1 [ViewGrid](/v1/docs/viewgrid-component) component ### Configure the Initializer Component This [**I****nitializer**](/v1/docs/initializer-component) component triggers the Plug-In component that you'll set up later. 1. In the Module Builder, drag and drop an **I****nitializer** component onto your canvas. 2. In the Property ID field, enter **initStart**. 3. In the Canvas Label Text field, enter `initStart`. 4. Navigate to the **I****nitializer** component's **Actions** settings. 5. From the **Trigger Type** drop-down, select **New Submission**. 6. Next to **Inputs & Outputs**, click Edit. 7. In the **Outputs** table, enter the following: | Source | Type | Value | | --- | --- | --- | | plugGetSubmissions | trigger | GO | [![A static image displaying the Initializer component's Output table configuration.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_ExampleInitOutputs_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD%20Plugin%20Comp%20ExampleInitOutputs.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) > [!NOTE] > The Property ID here matches the Plug-In component you'll add in a later step. - 8.Click **Save Component**. ### Configure the Hidden Component Next, add a [**H****idden**](/v1/docs/hidden-component) component to store the module ID of your source module. If you have your own source module, you can use its module ID. You can get the module ID from your source module’s hyperlink as follows: https://training.unqork.io/#/form/**5eb01aa6811bf80215fd706b**/edit. This module ID comes from the prebuilt source module. 1. Drag and drop a **H****idden** component onto your canvas, placing it below your **initStart** **I****nitializer** component. 2. In the Property ID field, enter **module****Id**. 3. In the Canvas Label Text field, enter `moduleId`. 4. In the **Default Value** field, enter 5eb01aa6811bf80215fd706b. 5. Click **Save Component**. ### Configure the Plug-In Component Now, add a [Plug-In](/v1/docs/plug-in-component) component to retrieve the submissions from your source module, so you can display them in a dashboard. 1. Drag and drop a Plug-In component onto your canvas, placing it below your **module****Id****H****idden** component. 2. In the Property ID field, enter **plugGetSubmissions**. 3. In the Canvas Label Text field, enter `plugGetSubmissions`. 4. Navigate to the Plug-In component's **Data** settings. 5. From the **Internal Services** drop-down, enter or select **List Submissions for Dashboard**. 6. Next to **Inputs & Outputs**, click Edit. 7. In the **Inputs** table, enter the following: | Property ID | Mapping | | --- | --- | | moduleId | moduleId | | 'firstName,middleName,lastName,email,dateOfBirth' | fields | > [!NOTE] > The first row references the module ID stored in the **Hidden** component. The second row shows the source module fields you're retrieving to insert into the dashboard. The values entered in the Mapping column (moduleId and fields) are native values in Unqork. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_ExamplePlugInInputs_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) 8. Click **Save Component**. ### Configure the ViewGrid Component Next, add a **ViewGrid** component to display your data in a dashboard. 1. Drag and drop a **ViewGrid** component onto the canvas, placing it below your **plugGetSubmissions** Plug-In component. 2. In the Property ID field, enter **vgSubmissions**. 3. In the Canvas Label Text field, enter `Submissions`. 4. Navigate to the **ViewGrid** component's **Data** settings. 5. Next to **Inputs & Display & Outputs**, click Edit. 6. In the **Inputs** table, enter the following: | Source | Required | | --- | --- | | plugGetSubmissions | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Checked_Box(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (Checked) | 7. In the **Display** table, enter the following: | ID | Formula | Heading | | --- | --- | --- | | firstName | | First Name | | middleName | | Middle Name | | lastName | | Last Name | | email | | Email | | dateOfBirth | =MOMENT(MOMENT(dateOfBirth), 'format', 'MM/DD/YY') | Date of Birth | > [!NOTE] > The Moment.js in the Formula column formats the dateOfBirth values as MM/DD/YY. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/UD_Plugin_Comp_ExampleVGDisplay_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) 8.In the **Outputs** table, enter the following: | Source | Mapping | | --- | --- | | submissionId | id | 9.Navigate to the **![Dropdown Component Icon](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/data_table_teal_component(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ViewGrid** component's **Actions** settings. 10.In the **Action** field, enter `null`. 11.Click **Save Component**. 12.**Save** your module. Now, **Preview** your module in Express View. A dashboard displays showing the data from the source module. Using an API call, the Plug-In component retrieves the submissions from the source module and your ViewGrid component displays them. This is one of many examples of using the Plug-In component in Unqork. The completed configuration looks like this in Express View: [![A static image displaying the Express View dashboard populated with end-user submission data.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol_dashboard_building_dashboard_01_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol%20dashboard%20building%20dashboard%2001(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ## Structure of a Plug-In Component's Data Each row of the table stores as an array in the Unqork database. The **Plug-In component** connects a module to internal and external API services for passing data to and from a chosen source. Common uses of the Plug-In component include: - Generating an email on submission of an application. - Populating a dashboard with application submissions. - Retrieving and displaying up-to-date data from an external source. To make an external API call with a Plug-In component, you must set up the API service in Unqork's [Services Administration](/v1/docs/services-administration). Doing so requires you to reference the external service's API documentation. Once you set up the service, the API call becomes available to use with your Plug-In component. > [!TIP] > To learn more about Services Administration, view our [Services Administration](/v1/docs/services-administration) article. You'll find the Plug-In component in the [Data & Event Processing](/v1/docs/data-event-processing) group to the left of the [Module Builder](/v1/docs/introduction-to-the-module-builder). [Video](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Plugin_Add(1).webm?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ### Remote Executing Your Plug-In Component It's best practice to configure your Plug-In component to remote execute. Remote execute, or server-side execution, lets the Plug-In component execute the call outside of the browser. Running APIs in the browser is not secure. If the API call happens in the browser, malicious agents can access the data in the DevTools Console—including accessing PII (personally identifiable information) and inject malware. The benefits of using remote execute are: - **Speed**: Back-end services handled by a remote server ease the burden on the browser. - **Security**: No one can use the DevTools Console to access PII. - **Debugging**: Modularization provides a smaller code-base for debugging. > [!TIP] > To learn more about the DevTools Console, view our [Access Submission Data Using the DevTools Console](/v1/docs/access-submission-data-using-the-devtools-console) article. ## About the Configuration Window > [!TIP] > To learn more about general component settings and those that display when a component is associated with Data Models, view our [General Component Settings](/v1/docs/general-component-settings) article. ### Display Panel [![A static image dispaying the Plug-In component's Display settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild_DataEvent_Plugin_DisplayPanel_Fix_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild%20DataEvent%20Plugin%20DisplayPanel%20Fix.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) | Setting | Description | | --- | --- | | Canvas Label Text | A component’s Label Text indicates the purpose of the corresponding field or component. For non-input components, the Label Text isn't end-user facing, and only appears in the Module Builder. User-friendly labels make your module more accessible. Keep labels short and descriptive (a word or two) using title case. For longer entries, use sentence case. | ### Data Panel [![A static image dispaying the Plug-In component's Data settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild_DataEvent_Plugin_DataPanel_Fix_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild%20DataEvent%20Plugin%20DataPanel%20Fix.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) #### Service Type The Plug-In component can be used for making internal Unqork API calls and external API calls. ##### Unqork Selecting this option provides you with an **Internal Services** drop-down. | Setting | Description | | --- | --- | | Internal Services | Shows all internal Unqork services available for use. After selecting a service, the Request Type and Data Source URL autofill. | | Pre-Request Transform | In the Pre-Request Transform drop-down, you can select a transform to perform on the submission. The transformed output creates the request body passed to the API call. | | Module/Workflow | If you are making a call to a module or workflow, a **Module** or **Workflow** drop-down displays, so you can select a specific module or workflow. | | Data Source URL | For an API to retrieve data, you need the API's URL information. In this field, enter the API information as obtained from the API documentation. Add additional filters at the end of the URL if you want to drill down to a specific type of data. | ##### External Selecting this option provides you with an **External Services** drop-down. | Setting | Description | | --- | --- | | External Services | Shows all services already configured in [Services Administration](/v1/docs/services-administration). After selecting a service, the Request Type and Data Source URL autofill. | | Data Source URL | For an API to retrieve data, you need the API's URL information. In this field, enter the API information as obtained from the API documentation. Add additional filters at the end of the URL if you want to drill down to a specific type of data. | #### Request Type The Request Type is automatically selected after you've completed the Service Type settings. The Plug-In component includes five Request Types. - **Get**: Retrieves and reads existing resources, like submission data. - **Patch**: Partially updates existing resources. - **Post**: Creates new resources. - **Put**: Updates existing resources. - **Delete**: Deletes resources. If **Patch**, **Post**, or **Put** are selected, two new toggles display: | Setting | Description | | --- | --- | | Make a MultiPart API Call | Multipart API calls combine one or more sets of data into a single body. Multipart requests are common for file uploads and for transferring multiple data types with a single request. Set this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ON when sending a request that isn't part of the API's body. When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Alternative Multipart Sub-Type (Services) field displays. | | Alternative Multipart Sub-Type (Services) | The Alternative Multipart Sub-Type (Services) field is only available for external APIs, but can be used to specify whether the parts of your request are related, mixed, or otherwise correlated. | | Promote Object/Array to Top Level | Use this setting to call an object or array, and make it the body of the API request. When the Promote Object/Array to Top Level toggle is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON**), the Object/Array Key field displays. | | Object/Key Array | In this field, enter the key of the object or array that you're promoting to the top level. > [!WARNING] > The object or array key you enter here must be the Mapping value in the Inputs table. | #### Inputs Table Use these fields to enter inputs as references for your logic components. These references include values you want to send as part of the API call's request header or body. For example, when getting module submission details for a dashboard, you need to enter the fields that you want to pull from the source module. > [!WARNING] > There is a 50 MB limit for all request payloads to internal services in Unqork. | Setting | Description | | --- | --- | | Property ID | Examples of supported inputs include: - The Property ID of another component in the module. For example, this component can be a trigger, an input for a Micro Decision, or is referenced in a formula. The Property ID entered must match the Property ID used in the output component. Remember, use camel case (stylized as camelCase) without spaces or punctuation. > [!NOTE] > When using the Watch Trigger Type, enter all inputs the component must watch for in the Property ID column. > You can use dot notation to reference values nested in a Property ID in the submission data - Values that are present in the submission object. For example, you can enter currentUser to retrieve information about the end-user from this object. - Native values generated by Unqork, like entering buttonClick. Unqork creates this value following button-click events. - Values you want to hard-code into an API call. For example, entering 'no-reply@unqork.com' to map the **from.email** parameter of a SendGrid call. When hard-coding a value, add single quotes around it. This tells the Plug-In the value isn't the Property ID of a component. | | Mapping | API documentation includes mapping information. Mapping information tells your Plug-In component which data to send or retrieve from the API call. In the case of SendGrid integration, the Mapping column indicates where the Property ID values show up in the email. If you enter 'no-reply@unqork.com' in the Inputs table's Property ID and from.email in the Mapping column, your From address is **no-reply@unqork.com**. | | Required | When ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Checked_Box(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (Checked), the end-user must enter a value into the field before navigating ahead or saving the module. | | Exclude | When selected, the Plug-In component doesn't pass the field as part of your API call's request body. But, the Plug-In component can still watch for changes made to the value. | | Header | When selected, the Plug-In component passes the field as part of the API call's request header. When clear, the Plug-In component passes the field as part of the request body. | | Resolvebase64 | Select this setting if you're expecting a Base64 file from your API request. Selecting this setting prepares the system for the Base64 file, making it easier to convert the file. | | Optional | When selected, the Plug-In component doesn't pass the field in the API call's request body if there's no value (null). By default, the Plug-In passes every Input in the request body, even if the field is empty (null). | #### Outputs Use the Outputs table to send the data retrieved by the API call to a specific location. | Setting | Description | | --- | --- | | Property ID | For your logic component to recognize an output, you must enter the destination component's Property ID(s). The Property ID entered must match the Property ID of the component that acts as the output. Remember, use camel case without spaces or punctuation. | | Mapping | Map Property IDs according to the API's documentation. Mapping tells your Plug-In component what to retrieve from the API call. For the Outputs table, map specific data to put into your output components. | | Option | This setting offers handling methods for your outputs: - **Fill**: If there's already a value in the output field, the value remains the same. The API call's value doesn't replace the existing value. - **Replace**: If there's already a value in the output field, this setting overwrites the value. - **Validate**: The Plug-In component maps and validates the value. Validation occurs based on the validation rules set in the output field's settings. - **Disable**: This setting maps the response to the field and then disables the field. Use this setting to disable editing of the output field after it populates. - **DynamicRefresh**: Triggers the specified panel to refresh its existing content with the provided component definitions (component JSON). The specified Panel component must have [Dynamic Refresh](/v1/docs/dynamic-refresh) enabled. | | Header | When selected, the Plug-In component looks for the output value in the response header. When clear, the Plug-In looks for the field in the response body. | ### Actions Panel [![A static image dispaying the Plug-In component's Action settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild_DataEvent_Plugin_ActionsPanel_Fix_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild%20DataEvent%20Plugin%20ActionsPanel%20Fix.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) | Setting | Description | | --- | --- | | Trigger Type | This setting provides the following options: - ![Inline image displaying a selected radio button.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/radioComponent_teal_icon(11).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **Manual**: The component fires when triggered by another component. For example, when using a [Button](/v1/docs/button-component) or [Initializer](/v1/docs/initializer-component) component to trigger a [Plug-In](/v1/docs/plug-in-component) component. By default, this Trigger Type is selected. - ![Inline image displaying a selected radio button.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/radioComponent_teal_icon(11).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **Watch**: The component fires when there's any action taken on the input listed in the Inputs table. Actions include entering a new value, editing, or overwriting a saved value. If there are multiple inputs, use the Required setting to specify what inputs must be present before firing. | | Concurrent Trigger | Enter the Property ID of the component to trigger concurrently when the Plug-In component makes the API call. | | Post Trigger | Enter the Property ID of the component to trigger after the Plug-In completes the API call. For example, triggering a component to display the data received from the Plug-In component's API call. | | Error Trigger | Enter the Property ID of a component to trigger on failure of the API call. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | Set Timeout | The number of milliseconds that pass before the API call times out. If an API call doesn't respond within a reasonable time, you don't want the Plug-In component to continue to wait. Unresponsive API calls can stall your entire application. The maximum timeout is 300,000 milliseconds (5 minutes). The default timeout is 120,000 milliseconds (2 minutes). | | Set Retry Delay | The number of milliseconds that pass before the component tries the API call again after it failed. Waiting before retrying an API call could give the destination server time to clear the issues that caused it to be unresponsive. The maximum delay is 10,000 milliseconds. > [!WARNING] > In the Centauri runtime, this setting does not trigger when the Plug-In component fails a PUT call to a remote execute. However, it will trigger when the PUT call fails in the Vega runtime. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | Set Number of Retries | The number of retries the Plug-In component makes on a failed API call. It's best practice to limit the number of retries, so a continually failing API call doesn't stall your application. Use this setting to limit the number of times the Plug-In component retries the failed API call. If the API call fails all retries, the Error Trigger fires. The maximum number of retries is 10. > [!WARNING] > In the Centauri runtime, this setting does not trigger when the Plug-In component fails a PUT call to a remote execute. However, it will trigger when the PUT call fails in the Vega runtime. > [!NOTE] > Errors can be 4xx, 5xx, and other network errors. | | Disable Execution | If Disable Execution is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the logic tied to this component does not execute. Use this to keep the component's settings, but disable the operations it performs. By default, this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | ### Advanced Panel [![A static image dispaying the Plug-In component's Advanced settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild_DataEvent_Plugin_AdvancedSettings_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuild%20DataEvent%20Plugin%20AdvancedSettings.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) | Setting | Description | | --- | --- | | Set Debounce | The number of milliseconds that pass before the module loads this component. This is useful if you have a large module and you load several components at the same time. > [!NOTE] > 1,000 milliseconds = 1 second. | | Show Modal Dialog While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, this setting creates a modal that informs the end-user that the data is processing. The following fields are optional: - **Modal Processing Title**: Enter the modal's title. - **Modal Processing Message**: Enter the message end-users see while the data is processing. - **Modal Completion Title**: Enter the title end-users see after the data processes. - **Modal Error Message**: Enter the message end-users see if the data encounters an error while loading. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Show Cursor as Spinner While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the end-user's cursor turns into a spinner while data processes. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Show Page Loader Spinning While Running | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the page displays a spinning icon while data processes. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Assign Values if They Are Null or Empty String | If an output comes back empty, you can either have the data store as an empty value or choose not to store the data. By setting this toggle to **(ON)**, null or empty strings store as empty values. If set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****,** the values don't record. By default, this toggle is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**. | | Only Set Output Variables | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)****,** the Plug-In component only returns the values set in the Output table, instead of the entire plugin object. Also, none of the Plug-In component's other information logs in the DevTools Console. When set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**, the plugin object logs in the DevTools Console with all response data. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Convert XML Response to JSON | Older API calls are more likely to use XML coding language. The Unqork Designer Platform reads JSON coding language only. If you know your API call returns XML, set this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**. When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the system automatically converts XML to JSON. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Expect Binary Response | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the response doesn't convert to and store as Base64. Enable this setting when you expect the API call to return a large file, and/or want to store the response in its original file format. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Enable Server Side Pagination | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the server sends a single page of data at a time. This helps the page load faster and prevents bloating the end-user's memory. This setting is especially useful for large data sets. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Flatten to a Single Record Value | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the module flattens results into a single record value. When set to OFF, the module leaves the results unflattened into multiple values. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Assign All Values Returned to Module | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Plug-In component scans the module for matching values across the API call and Property IDs. Only set this toggle to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (ON) when the module and the API call's data match. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Look for 'Data' Key in Response | The Plug-In component looks for all specified output values in the data section of the response body. When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, you can remove the data. prefix from your mapping fields. For example, mapping to lastName instead of data.lastName. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**. | | Include Cookies on Cross-Site Requests | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, an application can makes cross-site access-control requests using credentials, like cookies. By default, this toggle is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)****.** | | Disable Input Behavior | When set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(ON)**, the Plug-In component does not attempt to resolve values that begin with `=` (**equal sign**). This setting is useful in a case where a Creator wants to send values to a Plug-In component that begin with an equal sign but are not acting as a formula. If this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) **(OFF)**, the Plug-In component will treat the value as a formula. | | Required Property Path in Response | This field lets you set a required property path return value. If the path isn't present in the response body, the call results in an error. | ## Adding a Plug-In Component In this example, set up the Plug-in component's **List Submissions for Dashboard** API call. This call retrieves data submitted by your end-user and populates it on a dashboard. To make it easier, we already created the source module your end-user uses to submit their information. You can find the prebuilt source module here: [https://training.unqork.io/#/form/5eb01aa6811bf80215fd706b/edit](https://training.unqork.io/#/form/5eb01aa6811bf80215fd706b/edit). If you preview this module in Express View, you see a page that collects your end-user's information. This source module includes name, email, and date of birth fields. After your end-user adds their information, they click **Save**. Their [submission data](/v1/docs/submission-data) is then stored. The **List Submissions for Dashboard** API call references this source module and retrieves the submission data to display in a dashboard. These instructions assume that you have an open module saved with a title. In this configuration, you need the following components: - 1 [Initializer](/v1/docs/initializer-component) component - 1 [Hidden](/v1/docs/hidden-component) component - 1 **Plug-In** component - 1 [ViewGrid](/v1/docs/viewgrid-component) component ### Configure the Initializer Component

This Initializer component triggers the Plug-In component that you'll set up later.

1. In the Module Builder, drag and drop an **I****nitializer** component onto your canvas. 2. 2.In the Property ID and Canvas Label Text fields, enter **initStart**. 3. To the left component's configuration window, select **![Actions Icon](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/actions_icon(16).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) Actions**. 4. From the **Trigger Type** drop-down, select **New Submission**. 5. In the **Outputs** table, enter the following: | Property ID | Required | Value | | --- | --- | --- | | plugGetSubmissions | trigger | GO | [![A static image displaying the Initializer component's New Submission Trigger Type and Output table configuration.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Plugin_Init_Config_thumb_0_0(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Plugin%20Init%20Config.jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) > [!NOTE] > The Property ID here matches the Plug-In component you'll add in a later step. 6. Click **Save & Close**. ### Configure the Hidden Component Next, add a [**H****idden**](/v1/docs/hidden-component) component to store the module ID of your source module. If you have your own source module, you can use its module ID. You can get the module ID from your source module’s hyperlink as follows: https://training.unqork.io/#/form/**5eb01aa6811bf80215fd706b**/edit. This module ID comes from the prebuilt source module. 1. Drag and drop a **H****idden** component onto your canvas, placing it below your **I****nitializer** component. 2. In the Property ID and Canvas Label Text fields, enter **module****Id**. 3. In the **Default Value** field, enter 5eb01aa6811bf80215fd706b. 4. Click **Save & Close**. ### Configure the Plug-In Component Now, add a [Plug-In](/v1/docs/plug-in-component) component to retrieve the submissions from your source module, so you can display them in a dashboard. 1. Drag and drop a Plug-In component onto your canvas, placing it below your **H****idden** component. 2. In the **Property ID** and **Canvas Label Text** fields, enter plugGetSubmissions. 3. From the **Internal Services** drop-down, select **List Submissions for Dashboard**. 4. In the **Inputs** table, enter the following: | Property ID | Mapping | | --- | --- | | moduleId | moduleId | | 'firstName,middleName,lastName,email,dateOfBirth' | fields | > [!NOTE] > The first row references the module ID stored in the **Hidden** component. The second row shows the source module fields you're retrieving to insert into the dashboard. The values entered in the Mapping column (moduleId and fields) are native values in Unqork. [![A static image displaying the List Submissions for Dashboard API and the Inputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol_simpledashboard_05_pluginactionspanel_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol%20simpledashboard%2005%20pluginactionspanel(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) 5. Click Save. ### Configure the ViewGrid Component Next, add a **[![Dropdown Component Icon](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/data_table_teal_component(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](/v1/docs/viewgrid-component) ViewGrid** component to display your data in a dashboard. 1. Drag and drop a **![Dropdown Component Icon](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/data_table_teal_component(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ViewGrid** component onto the canvas, placing it below your Plug-In component. 2. In the **Label** field, enter Submissions. 3. In the **Property Name** field, enter vgSubmissions. 4. In the **Action** field, enter null. 5. In the **Inputs** table, enter the following: | ID | Required | | --- | --- | | plugGetSubmissions | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Checked_Box(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (Checked) | 6. In the **Outputs** table, enter the following: | ID | Required | | --- | --- | | plugGetSubmissions | ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Checked_Box(8).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) (Checked) | 7. In the **Display** table, enter the following: | ID | Formula | Heading | | --- | --- | --- | | firstName | | First Name | | middleName | | Middle Name | | lastName | | Last Name | | email | | Email | | dateOfBirth | =MOMENT(MOMENT(dateOfBirth), 'format', 'MM/DD/YY') | Date of Birth | > [!NOTE] > The Moment.js in the Formula column formats the dateOfBirth values as MM/DD/YY. ![A static image displaying the configuration of the ViewGrid component.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol_dashboard_building_dashboard_04(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) 8. Click Save. 9. **Save** your module. Now, **Preview** your module in Express View. A dashboard displays showing the data from the source module. Using an API call, the Plug-In component retrieves the submissions from the source module and your ViewGrid component displays them. This is one of many examples of using the Plug-In component in Unqork. The completed configuration looks like this in Express View: [![A static image displaying the Express View dashboard populated with end-user submission data.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol_dashboard_building_dashboard_01_thumb_0_0(2).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/sol%20dashboard%20building%20dashboard%2001(1).jpg?sv=2026-02-06&spr=https&st=2026-11-09T16%3A59%3A08Z&se=2026-11-09T17%3A59%3A08Z&sr=c&sp=r&sig=hANbqYivygB%2FSOd4P6r6m3VUvMriGem8Z0UCgmEw1PI%3D) ## Structure of a Plug-In Component's Data Each row of the table stores as an array in the Unqork database. 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. The DevTools Console helps you securely store, build, test, and deploy your software. Personal Identifiable Information (PII) is any representation of information that permits the identity of an individual to whom the information applies to be reasonably inferred by either direct or indirect means. 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. An array is a type of object that stores one or more data types. Data types supported in arrays include numbers, strings, and objects. Enter inputs components and actions you want the component to perform.. Base64 is an encoding and decoding technique used to convert binary data to an ASCII (American Standard for Information Interchange) text format. A naming convention for computer programming. Use camelCase for Property IDs, for example: newUser, lastName, & rdoButton. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. Extensible Markup Language (XML) is markup language that lets you define and store data in a shareable way. 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. 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 . 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.