--- title: "Plug-In Component" slug: "plug-in-component" tags: ["module-builder", "module-builder-components"] status: "update" updated: 2026-10-26T19:35:40Z published: 2026-10-26T19:35:40Z 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 The Plug-In component connects a module to another system. It sends a request to that system's API and stores the response in module fields. Creators use the component to look up records, send data, or upload files. Creators configure the component by choosing a service, mapping module fields to the request and response, and setting triggers that control when it runs. > **How to read settings tables** > > > The tables below describe each configurable option as it displays in the UnqorkAI platform. Values are formatted as follows: `inline code` — a value to type exactly as shown | **Bold** — a value selected from a drop-down, radio button, tab, or choice chip | **ON**/**OFF** — toggle state | ✓ — checkbox checked | ☐ — checkbox unchecked ## General Settings | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Property ID | `key` | Text input | `plug` | The unique identifier for this component instance. | | Canvas Label Text | `label` | Text input | — | Identifies the component on the Module Builder canvas. Does not display. | ## Data Settings ### Service Type | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Service Type | `serviceType` | Drop-down | **Unqork** | Sets the type of service the component calls. Options include: **Unqork** for internal Unqork APIs, or **External** for services configured in Services Administration. | ### Service Configuration The available service selector depends on the **Service Type** selection. | Setting | Field | Type | Default | Description | | --- | --- | --- | --- | --- | | Internal Services | `unqorkApi` | Service selector | — | Selects the Unqork internal API service and endpoint to call. Visible when **Service Type** is **Unqork**. See [Internal Services](/unqorkai/docs/internal-services) for the full list of available services. | | External Services | `service` | Service selector | — | Selects the external service and endpoint to call. Visible when **Service Type** is **External**. | ### Endpoint | Field | Description | | --- | --- | | **Data Source URL** | The API endpoint URL. Auto-populated when a service is selected. | | **Request Type** | Sets the HTTP method for the API call. Options include: **Get**, **Patch**, **Post**, **Put**, **Delete**. See [HTTP Request Types](/unqorkai/docs/api-reference#http-request-types). | | **Content Type** | Sets how the request body is structured. Visible when **Request Type** is **Post**, **Put**, or **Patch**. [See Content Type Options.](/unqorkai/docs/plug-in-component#content-type-options) | | ↳ | **Alternative Multipart Sub-Type (Services)** | Specifies the multipart sub-type for the request (for example, `related` or `mixed`). Indicates that each part is an alternative version of the same content. Visible when **Service Type** is **External** and **Content Type** is **Multipart Request**. | | **Promote Object/Array to Top Level** | When set to **ON**, this setting sends one object or array from the inputs as the request body. When **OFF**, the body holds all inputs. Visible when **Request Type** is **Post**, **Put**, or **Patch** and **Content Type** is **Standard Request** or **Binary Request**. | | ↳ | **Object/Array Key** | The **Mapping** value of the input to promote to the top level of the request body. Visible when **Promote Object/Array to Top Level** is **ON**. | #### Content Type Options - **Standard Request** (default): Sends the inputs as a JSON object. - **Binary Request**: Sends the file's contents as the request body. Use this option when the endpoint expects the file itself instead of JSON or multipart data. - **Multipart Request**: Sends multiple data types, like text values and files, in a single request. To send a file with **Binary Request**: 1. Map the file to one input. The value must be an uploaded file or a Base64 data URI. If the input holds a URL to the file, select **Resolve Base64** so the component retrieves the file first. 2. Set **Promote Object/Array to Top Level** to **ON**. 3. Enter the input's **Mapping** value in **Object/Array Key**. The request's Content-Type header matches the type of the file or data URI. ### Inputs Defines the data sent to the API. Each row maps a module field to an API input parameter. | Column | Field | Type | Description | | --- | --- | --- | --- | | Property ID | `id` | Property ID | The module field to send as input. | | Mapping | `mapping` | Text input | The API parameter name that receives this field's value. | | Required | `required` | ☐/✓ | When checked, this setting marks the input as required for the API call. | | Exclude | `exclude` | ☐/✓ | When checked, this setting excludes this field from the request body. | | Header | `header` | ☐/✓ | When checked, this setting sends this value as an HTTP request header instead of in the body. | | Resolve Base64 | `resolveBase64` | ☐/✓ | When checked, this setting resolves the value as a Base64-encoded string before sending. | | Optional | `optional` | ☐/✓ | When checked, this setting marks the input as optional, letting the API call proceed without it. | ### Outputs Defines how the API response is mapped back to module fields. | Column | Field | Type | Description | | --- | --- | --- | --- | | Property ID | `id` | Property ID | The module field to populate with the response value. | | Mapping | `mapping` | Text input | The property in the API response that holds the output value. | | Option | `option` | Drop-down | Sets how the output value is applied (for example, set value, append). | | Header | `header` | ☐/✓ | When checked, this setting reads the value from an HTTP response header instead of the body. | ## Actions Settings | Field | Description | | --- | --- | | **Trigger Type** | Sets when the component executes. • **Manual**: Waits to be triggered by another component. • **Watch**: Fires when any input field changes. | | **Concurrent Trigger** | Triggers another component concurrently while the Plug-In component is executing. | | **Post Trigger** | Triggers a component after the API call completes successfully. | | **Error Trigger** | Triggers a component when the API call returns an error. | | **Set Timeout** | Maximum time in milliseconds before the API call times out. Accepts values between 0 and 300,000 milliseconds (ms). | | **Number of Retries** | Number of times to retry the API call on failure. Accepts values between 0 and 10. | | ↳ | **Set Retry Delay** | Time in milliseconds to wait between retry attempts. Accepts values between 0 and 10,000 milliseconds (ms). Visible when **Number of Retries** is greater than 0. | | **Disable Execution** | Prevents the component from executing when triggered. | ## Advanced Settings | Field | Description | | --- | --- | | **Set Debounce** | Sets the delay before executing after being triggered, in milliseconds (ms). Useful when multiple components trigger simultaneously. | | **Show Modal Dialog While Running** | Displays a modal with status text while the API call is in progress. | | ↳ | **Processing Title** | The modal heading shown while the API call is running. Visible when **Show Modal Dialog While Running** is **ON**. | | **Processing Message** | The modal body text shown while the API call is running. Visible when **Show Modal Dialog While Running** is **ON**. | | **Completion Title** | The modal heading shown when the API call completes. Visible when **Show Modal Dialog While Running** is **ON**. | | **Error Message** | The modal text shown when the API call fails. Visible when **Show Modal Dialog While Running** is **ON**. | | **Show Page Loading Spinner While Running** | Displays a full-page loading spinner while the API call is in progress. | | **Assign Values if They Are Null or Empty String** | Sets output fields even when the API response value is null or an empty string. | | **Only Set Variables** | Updates only the fields defined in the Outputs table instead of the entire response object. | | **Convert XML Response to JSON** | Converts an XML API response to JSON before processing outputs. | | **Expect Binary Response** | Processes the response as binary data. The output contains `contentType`, `contentDisposition`, and `contents` keys. | | **Required Property Path in Response** | Logs a console error if the specified property path is not present in the API response. | | **Enable Server Side Pagination** | Sends a single page of data at a time. Recommended for large datasets and when using the List Submissions for Dashboard service. | | ↳ | **Results Per Page** | The number of results returned per page. Visible when **Enable Server Side Pagination** is **ON**. | | **Synchronous Processing** | Runs the component instead of running in parallel with other components. | | **Flatten to Single Record Result** | Extracts nested data and flattens it into a single record object. | | **Assign All Values Returned to Form** | Writes all values returned by the API directly to the module data object. | | **Use 'data' Value from Response** | Reads the `data` key from the response object as the result. Turn OFF to use the full response. | | **Include Cookies on Cross-Site Requests** | Sends cookies with cross-site API requests. Required for some authentication scenarios. | | **Disable Formula** | Sends raw string values in inputs without resolving formulas. | --- **Changelog** | Date | Change | | --- | --- | | 2026-10-26 | Removed the 0 to 500 ms range from the Set Debounce description. | | 2026-10-14 | Added Content Type, Promote Object/Array to Top Level, and Object/Array Key settings to Endpoint, including Binary Request setup steps. Converted tables with sub-settings to hierarchy tables and moved Alternative Multipart Sub-Type under Content Type. | | 2026-09-16 | Added Alternative Multipart Sub-Type setting to Service Configuration. | | — | Initial publication. | 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. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. 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 . A definition 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. An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. A URL (uniform resource locator) is a unique identifier used to locate a resource on the internet. Also known as a web address. HTTP (Hypertext Transfer Protocol) is an application-layer protocol used to transmit hypermedia documents like HTML. 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. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. Data types are a classification of data that determines how it is stored and interpreted. Base64 is an encoding and decoding technique used to convert binary data to an ASCII (American Standard for Information Interchange) text format. URI (Uniform Resource Identifier) identifies a resource by name, location, or both. A string is an object that represents a sequence of characters. Strings typically hold data represented in text form. A JavaScript property is a member of an object that associates a key with a value. A JavaScript object is a data structure that stores a collection of properties. Deteremines how the component triggers. The Post Trigger value fires after a component has completed its action. For example, post triggering a component to display the data received from a Plug-In component's API call. The Number data type accepts integer or floating point values. The number data type does not use quotes around numerical values. A modal is a window that appears on top of the content you are currently viewing. Enter outputs components and actions you want the component to perform. Extensible Markup Language (XML) is markup language that lets you define and store data in a shareable way. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases.