This guide walks you through building a UI module that exports submission data from Unqork in bulk. The module handles the full sequence: starting the export job, checking its status, and generating a download link, all from a single button click.
Download the example module bundle to use as a starting point. After importing, replace every placeholder before using the module:
Placeholder | Appears in | Replace with. |
|---|---|---|
|
| The resource ID of the Data Model or module containing the records to export. |
Prerequisites
Creator or Express Administrator access to your workspace.
The resource ID of the Data Model or module containing the records to export.
Familiarity with the Plug-In, Decisions, and Button components.
Module Overview
Organize the module into three field groups: for initialization logic, for the Creator-facing UI, and for the backend Plug-In component sequence.
Name | Key | Component | Purpose |
|---|---|---|---|
On-Load Initializer |
| Initializer | Triggers on page load. |
Export Button |
| Button | Starts the export sequence. |
Refresh Button |
| Button | Lets the user check job status manually; enabled when a job is running. |
Error Initializer |
| Initializer | Sets the response field to indicate failure. |
Generate Export |
| Plug-In | Calls the Export endpoint to start the job. |
Get Job Status |
| Plug-In | Checks export progress using the job ID. |
Check Status Rule |
| Decisions | Shows a status message and triggers the download link when complete. |
Get Download Link |
| Plug-In | Calls the Download-Link endpoint to get a signed download URL. |
File Count |
| Number | Hidden; controls |
The example Property IDs in this guide use a
pluginprefix (for example,pluginExport) for clarity. The platform default for Plug-In components isplug— see Property ID Naming Conventions.
How to read settings tables
The tables below describe each configurable option as it shows in the 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
Set Up the Field Groups
Create three field groups in the module to keep components organized.
Field Group | Contains |
|---|---|
| The on-load Initializer that fires when the page renders. |
| The buttons and any visible HTML the user interacts with. |
| All Plug-In components, Decisions logic, Initializers, and hidden fields. |
Create the Supporting Fields
Add the following fields to fgConfig. These fields carry data between components throughout the export and download sequence.
Property ID | Component | Default | Purpose |
|---|---|---|---|
| Hidden | — | Stores the export job ID returned by |
| Hidden | — | Stores the current job status returned by |
| Hidden | — | Stores the file location from the completed export job. |
| Hidden | — | Stores the signed download URL returned by |
| Hidden | — | Set to |
| Number |
| Controls |
Configure initOnload
The initOnload Initializer component fires when the module first loads and serves as the module's entry point. It has no outputs and no connections to other components.
Add an Initializer component to
fgOnLoad.Configure the following settings:
Setting
Value
Property ID
initOnloadTrigger Type
New Submission
Configure btnExport
The btnExport Button component starts the export sequence. When a Creator clicks it, it triggers the pluginExport Plug-In component.
Add a Button component to
fgUI.Configure the following settings:
Setting
Value
Property ID
btnExportLabel
Export RecordsAction
Event
Under Triggers, set the On Click drop-down to
pluginExport.
Configure btnRefresh
The btnRefresh Button component lets the Creator manually re-check job status. It triggers the pluginGetJobDetails Plug-In component on click, and the ruleCheckStatus Decisions component enables it a job is running. It starts disabled.
Add a second Button component to
fgUI.Configure the following settings:
Setting
Value
Property ID
btnRefreshLabel
RefreshAction
Event
Initial State
Disabled
Under Triggers, set the On Click drop-down to
pluginGetJobDetails.
Configure initError
The initError Initializer component sets the response field to Fail when something goes wrong. All three Plug-In components reference it as their error handler.
Add an Initializer component to
fgConfig.Configure the following settings:
Setting
Value
Property ID
initErrorTrigger Type
Manual
Configure the Outputs:
#
Property ID
Type
Value
1
responseValue
Fail
Configure pluginExport
The pluginExport Plug-In component starts the bulk export job. It is triggered by the btnExport Button component. On success, it triggers the pluginGetJobDetails Plug-In component to begin polling for job status.
Add a Plug-In component to
fgConfig.Configure the following settings:
Setting
Value
Property ID
pluginExportTrigger Type
Manual
Endpoint URL
https://{environment}.unqork.io/fbu/uapi/bulkOperations/exportMethod
POST
Configure the Inputs:
#
Property ID
Value
1
resourceIdThe Data Model ID or module ID containing the records to export
2
nameA descriptive label for the operation
3
fileFormat'CSV'(uppercase)4
exportFullRecord'false'(Unqork recommendsfalseto export thedataobject)5
numberOfFilesToGeneratenumFilesToGen(reads from the hidden Number field; defaults to1)6
targetRecordType'ALL'(uppercase; or'ACTIVE'or'ARCHIVED')Configure the Outputs:
#
Property ID
Value
1
jobIdidUnder Triggers, set the Post Trigger drop-down to
pluginGetJobDetailsand the Error Handler drop-down toinitError.
To filter by date range, add
dateFieldToFilterOn,dateFieldStartToFilterOn, anddateFieldEndToFilterOnto the Inputs. See Bulk Data Operations for all available parameters.
Configure pluginGetJobDetails
The pluginGetJobDetails Plug-In component checks the status of the export job. It is triggered by the pluginExport Plug-In component on success, and by the btnRefresh Button component when the Creator clicks it manually. On completion, it triggers the ruleCheckStatus Decisions component.
Add a Plug-In component to
fgConfigafterpluginExport.Configure the following settings:
Setting
Value
Property ID
pluginGetJobDetailsTrigger Type
Manual
Endpoint URL
https://{environment}.unqork.io/fbu/uapi/bulkOperations/jobs/{{data.jobId}}Method
Configure the Outputs:
#
Property ID
Value
1
statusdata.status2
exportLocationdata.steps[0].files[0].destination.locationUnder Triggers, set the Post Trigger drop-down to
ruleCheckStatus.
All BDO endpoints in this module use the
bulkOperationspath (camelCase, no hyphen).
Configure ruleCheckStatus
The ruleCheckStatus Decisions component reads the job status written by the pluginGetJobDetails Plug-In component and triggers a pop-up message to the Creator. It enables the btnRefresh Button component a job is running and triggers the pluginGetDownloadLink Plug-In component automatically when the job reaches completed.
Add a Decisions component to
fgConfigafterpluginGetJobDetails.Configure the following settings:
Setting
Value
Property ID
ruleCheckStatusTrigger Type
Manual
Configure the Inputs:
#
Property ID
Alias
Type
1
jobIdAExact
2
statusExact
Configure the Outputs:
#
Property ID
Type
1
btnRefreshDisabled
2
fgUIPop Message
3
pluginGetDownloadLinkTrigger
Add row per job status in the Decision grid:
Status
Refresh Button (
btnRefresh_disabled)Pop Message (
fgUI_popMessage)Download Trigger (
pluginGetDownloadLink_trigger)created=IF(LEN(A)>0,'no','yes')Export started.inProgress=IF(LEN(A)>0,'no','yes')Export in progress.completed=IF(LEN(A)>0,'no','yes')Export complete. Generating download link.GOpartiallyCompleted=IF(LEN(A)>0,'no','yes')Export partially complete.canceled=IF(LEN(A)>0,'no','yes')Export canceled.failed=IF(LEN(A)>0,'no','yes')Export failed.The formula in the disabled column uses
A(thejobIdalias); the button enables when a job ID is present.
Configure pluginGetDownloadLink
The pluginGetDownloadLink Plug-In component generates a signed URL for downloading the exported file. It is triggered by the ruleCheckStatus Decisions component when the job status reaches completed, and writes the result to the downloadLink field.
Add a Plug-In component to
fgConfigafterruleCheckStatus.Configure the following settings:
Setting
Value
Property ID
pluginGetDownloadLinkTrigger Type
Manual
Endpoint URL
https://{environment}.unqork.io/fbu/uapi/bulkOperations/downloadLinkMethod
POST
Configure the Inputs:
#
Property ID
Value
1
fileLocationexportLocationConfigure the Outputs:
#
Property ID
Value
1
downloadLinkdownloadLinkUnder Triggers, set the Error Handler drop-down to
initError.
Test the Module
Open the module in Preview.
Click Export Records.
Click Refresh until the pop-up message reads
Export complete. Generating download link.Open the submission using the platform's submission inspection method. See Debugger for how to access submission data from Express View.
Locate the
downloadLinkfield value. It contains a relative path in the format/files/{fileId}.Construct the full download URL by prepending
https://{environment}.unqork.io/apito the path (for example,https://qa22.unqork.io/api/files/6abe94956afacf4d485c59a2).The URL must include
/api/between the environment domain and/files/. Navigating to/files/directly returns a bad route.Paste the full URL into a browser. The file should begin downloading.
Changelog
Date | Change. |
|---|---|
2026-10-01 | Converted all Inputs/Outputs to UI-matching tables with # column; Decisions grid documented with column header labels (EN-8164). |
2026-10-01 | Converted field group list to table; added connection sentences to each Configure section; reformatted configuration steps as numbered lists (EN-8164). |
2026-10-01 | Updated Export and Download-Link URLs to |
2026-09-30 | Initial publication (EN-8164). |