> For the complete documentation index, see [llms.txt](https://docs.heisenware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.heisenware.com/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets.md).

# Input widgets

The App Builder provides a diverse range of input widgets designed to gather data from app users. This collected input can be subsequently processed and/or stored using application logic. Input widgets are closely aligned with [function input](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/data-processing/functions/inputs.md), as they commonly transmit captured data and other properties to a linked function.

## Input widgets

The following input widgets are available:

* [Form](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/form.md): Can capture various types of data and provides the data in an object.
* [File upload](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/file-upload-wip.md): Allows uploading images, PDF, and CSV files.
* [Photo](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/photo-wip.md): Allows taking pictures and uploading them.
* [Signature](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/signature-wip.md): Allows user to sign.
* [Barcode / QR-Code scan](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/barcode-qr-code-wip.md): Allows scanning barcodes and QR-codes.
* [Document scan](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets/document-scan-wip.md): Allows scanning documents.

## Pass input to application logic

Captured input data in the UI must be passed to one or more [functions](/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/data-processing/functions.md) in the application logic for processing or storage. To enable this data transfer, an input widget must be linked with the input box of a function. It's important to note that input widgets have the flexibility to be linked with multiple functions simultaneously.&#x20;

### Link widget and function

To link an input widget with an input box:

1. Select an input widget in the UI editor.
2. Drag and drop the input box of a function onto the selected widget.

When the link is established, the input box indicates it with stating the property to be passed. For example, this can be `formData`.

Click the `x` next to the text to unlink an input widget from an input box.&#x20;

### Properties

Most input widgets only offer a main data property. However, some input widgets can pass additional data properties or behavior properties to the application logic. To change the property to be passed to the application logic:

1. Link widget and function as explained above.
2. Click on the property in the linked input box to open a list of available properties.
3. Select the desired property from the list.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.heisenware.com/~/changes/eYCCpn9cCBKOYnZA6a8f/building-apps/ui-widgets-and-elements/input-widgets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
