Smart Components are placed and configured in Module Builder the same way as any standard component. The settings panel is driven by what the component declares in its interface, not authored per usage.
Placing a Smart Component
Smart Components appear in the component tray under a Component Library section in Config View. Select a component from the tray to place it on the canvas.
Each Smart Component on the canvas is visually differentiated from standard Unqork components. The type (UI, Logic, or Query) and component name are visible at a glance.
Settings Panel
Selecting a Smart Component on the canvas opens the settings panel. The standard tabs (Notes, Tags, Permissions) work the same way as any other component. See Component General Settings. The sections below cover the Smart Component-specific settings.
Below the Property ID field, a row of actions lets Creators open the component in the editor directly from the module.
Block Settings
Every Smart Component on the canvas has one set of block-level settings, regardless of how many components are composed inside it. These settings define how the block integrates with the rest of the module.
| Setting | Description |
|---|---|
| Property ID | The block's identifier in Unqork. Other components reference this ID and actions target it. Components inside the Smart Component do not automatically use this Property ID; each component's data is wired independently. |
| Store Data in Database | When set to ON, data stored under the Property ID persists with the submission. |
| Theme | The visual theme applied to the block as a whole. |
| Block Appearance | Presentation settings that apply to the entire block. |
Permissions are also block-level. The Permissions tab controls access to the block as a whole. It is not possible to set permissions per component inside. If a component needs different permissions from the rest of the block, it must be its own Smart Component block with its own Property ID.
Configuring Input Values
The General tab displays one field for each input the component declares. Every field accepts one of the following:
- Static value: A fixed value set directly in the field.
- Reference: A pointer to another component's value on the module. Select the reference toggle on the field and choose the source component.
The available fields and their types are set by the component's interface. Adding or removing fields requires editing the component definition through the Build Agent.
Wiring Logic Components
Logic Smart Components have no visual presence on the canvas. They run in sequence with other components and return output data when triggered.
After configuring the input values, wire the component's output triggers to pass results to other components on the module. Each trigger corresponds to an output the component declares.
Wiring Query Components
Query Smart Components work like a Plug-In component. The settings panel includes the following fields.
| Field | Description |
|---|---|
| Target | The component that receives the query results. |
| Post Trigger | The component triggered after the query completes successfully. |
| Error Trigger | The component triggered the query fails. |
The settings panel also includes a Query Pipeline section, which displays a read-only view of the query's generated definition. This is for reference only. Editing the query happens through the Build Agent in the Smart Component Library.
The query runs when triggered. It never runs automatically. Wire the post-trigger to pass results to other components on the module.
Targeting from Other Components
Unqork can only see and act on the block, not the components inside it. When a Decisions component, Initializer component, or another component targets a Smart Component by Property ID, it is targeting the block as a whole.
Actions applied to a Smart Component (hide, show, clear, ) apply to the entire block. Individual components inside cannot be named, hidden, triggered, or targeted from outside the block. If a piece of logic must target a specific component independently, that component must be its own Smart Component block with its own Property ID.
Setting a value works differently from other actions. Setting a value on a Smart Component writes to submission data at the specified location; it does not act on the block directly. Whether anything changes visually depends on whether a component inside is reading from that same data location. The write always succeeds; the visual response depends on what is listening.
Editing the Component Definition
The action row below the Property ID field includes the following:
| Action | What it does |
|---|---|
| Edit Base | Opens the shared component in the Smart Component Library. Changes affect every module using this component. |
| Edit | Opens a private Smart Component in its own editor. Changes affect this module only. |
| Add to Library | Promotes a private Smart Component to the shared library, where it becomes available to all modules in the environment. |
To change a component's logic, interface, or output, open it through the Build Agent from the component editor.
Changelog
| Date | Change |
|---|---|
| 2026-07-29 | Added Block Settings section and Targeting from Other Components section (EN-7975). |
| 2026-07-28 | Initial draft (EN-7975). |