Input Widgets
Input widgets are the primary tools for capturing data from your users and their devices. They range from single-purpose components like a signature pad to the powerful, all-in-one form widget. The data collected by these widgets can be passed directly to your backend logic for processing, storage, or analysis.
Categorization by main usage
We categorize widgets based on their primary purpose. However, some widgets are versatile; for example, a form (an input widget) can display data, while a data grid (a display widget) can be used for data input. Always check the specific properties of a widget to see its full range of capabilities.
Available input widgets
You can find the following input widgets in the toolbar. Each has its own specific configuration and data properties:
Barcode/QR-code scan: Uses the device camera to scan and decode common barcode and QR-code formats.
File upload: Allows users to upload files (e.g., images, PDFs, CSVs) from their device directly into your application.
Form: A highly configurable widget for creating complex data entry screens with various field types, grouping, and logic-based validation.
Photo: Lets users take pictures with their device's camera and upload them into the app session.
Signature: Captures handwritten signatures as images—ideal for digital work orders or sign-offs.
Connecting to backend logic (data binding)
Input widgets send and receive data via the Flow Builder.
How to link
You link widgets by dragging the logic to the UI:
Drag a part of a function (input, output, or modifier) and drop it onto the widget.
A menu will appear on the function block; pick the specific widget property you want to link.
Interaction types
To function input: The widget sends user-entered data (e.g.,
formData) to a function.From function output / from modifier: A function sends data back to the widget to update its state. For example, you can link a function's output to a form's
clearproperty. When the flow reaches that output, the form is instantly reset.
Automatic data isolation (multi-tenancy)
Heisenware handles multi-tenancy of your apps for you automatically. Any data captured from an input widget is isolated per user and session.
Isolated by default: If User A and User B use the same form, their data never mixes.
Session persistence: As data moves through a flow, it remains tied to that specific user session.
User reference: If you need to explicitly reference the current user ID in your logic, use the
$USERvariable. This returns the user's email address (for authenticated apps) or a unique session string (for public apps).
Last updated
Was this helpful?