---
title: "Input widgets"
slug: "input-widgets"
tags: ["App Editor (Route)", "Widget", "Variable", "Input Widgets", "Variables", "Widgets", "Priority 1"]
updated: 2025-05-29T17:38:20Z
published: 2025-05-29T17:38:20Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Input widgets

Collect data from your users with input Widgets. Each Input Widget supports different types of Variables. All inputs must be tied to the location where their value will be stored.

## Map input widgets to a datasource

Input widgets data can be stored to either variables or Fields in Table Records. The **Datasource** is determines the destination of the input data.

Inputs that are not tied to a datasource will not be selectable when running in the Player.

### Variable

Choose an existing variable, or create a new variable to assign to the input Widget:

![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%282%29.png)

By assigning a Variable to the input, the input value can be referenced throughout the app to build various logic.

### Tulip table record

By assigning your input widget to a Tulip Table Record, you can directly edit a table record. Specify the column of the table record in the dropdown:

![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%283%29.png)

This automatically saves the value of the input widget to the table record.

          NOTE

          

When tied to a Table Record Field, there must be a Record loaded into the Table Record Placeholder.

## Types of input widgets

### Checkbox

Collect True/False values from users. Data can be stored in a Boolean variable *ex. In an audit app, users need to confirm that they have executed a process.*

![checkbox](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2810%29.png)

Read more about checkbox widgets [here](/r230/docs/checkbox-widgets).

### Text

Collect non-numeric data from users. Data can be stored in a text Variable *ex. In a work instruction app, users can add a note in a text field about a defect they found.*

![Text Input](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%289%29.png)

### Multiline

An expanded version of the text input, allowing for a bigger response. Select this widget when the input is a significant amount of text.

![Multiline%20Input%20Widget%20Ex](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Multiline%20Input%20Widget%20Ex.png)

### File

The file input widget is similar to a text input, with the ability to assign the input to a column of a Tulip Table or a Variable. A variable needs to be assigned to the File Input Widget in order to use the data later in the app. ![File Input Widget.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Screen%20Shot%202022-09-20%20at%2011.33.01%20AM.png)

Use the **cloud** button to import a file from your device to the file widget, or enter the file URL directly.

### Number

Collect decimal or whole number input from users. Data can be stored in a Number variable or Integer variable. *ex. At the end of a production run, users need to populate how many parts they finished.* ![Number Input](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%288%29.png)

### Speech-to-text

Users can transcribe voice memos to enter data into applications. This widget works along with other input widgets, (e.g. text, number) *ex: A user audibly describes an issue with a part, which is automatically transcribed as text into a report.* ![speech-to-text widget](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/speech-to-text%20widget.png)

Read more about the speech-to-text widget [here](/r230/docs/speech-to-text-input).

### Single Select

Users can select one value from a list of options. That list can be statically or dynamically set. Data can be stored in any variable type. *ex. When starting a process, users need to select the line they are working on, they need to select from a list of valid values.*

![single select](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2813%29.png)

### Multiselect

Users can select multiple values from a list of options. Data can be stored in an Array of any variable type. *ex. When a defect is found users must select all of the defect types that apply to that part.* ![multiselect](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2814%29.png)

### Date Picker

Collect a date and time from users. Data can be stored in a Datetime variable *ex. Maintenance staff can select the date for the next maintenance order for preventative maintenance on a machine*

![Date Picker](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%287%29.png)

### Image

Display a camera where operators can use the device camera to capture an image. Data can be stored in a Image variable *ex. When a defect is found, users snap a picture of the anomaly* ![image](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2811%29.png)

### Signature

Collect a digital user Signature to verify the accuracy of data. *ex. At the end of a batch mixing process, users need to sign off that the recipe used matches the work order* ![e_sig](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2812%29.png)

Read more about the signature widget [here](/r230/docs/electronic-signature-widgets).

## Configure input widget triggers

Many of the input widgets have an option to configure a trigger to fire when an action occurs. The types of actions and the associated widgets are described below. ![Triggers.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Screen%20Shot%202022-09-20%20at%2011.08.14%20AM.png)

### Enter key

The Enter Key trigger follows the logic of: when the enter key is pressed, if conditions are met, then perform an action. This option is associated with the text and number input widgets.

### Input change

The Input Change trigger follows the logic of: when input changes, if conditions are met, then perform an action. This option is associated with the checkbox, single select, multiselect, date picker, and image input widgets.

          NOTE

          

In the case of Number and Text input widgets, triggers will fire when users click **Enter**.

Read more about widget triggers [here](/r230/docs/widget-triggers).

## Further Reading

- [Number formatting in widgets](/r230/docs/number-formatting-in-widgets)
- [Conditional formatting](/r230/docs/conditional-formatting)
- [Data validation for input widgets](/r230/docs/data-validation-for-input-widgets)

---

Did you find what you were looking for?

You can also head to [community.tulip.co](https://community.tulip.co) to post your question or see if others have faced a similar question!

**Widgets**

**Widgets**are the elements that make up a specific **App Step.**Widgets can display information to users, collect user input, or trigger app logic.

*Common widgets include: Interactive Tables, Number inputs, Machine attribute widgets, and more.*

**Input Widget**

**Input widgets**are a set of **Widgets**specifically designed for users to enter information. Input widgets must be associated with a location where the user input is stored.

**Variables**

**Variables**are a location to store app information. Variables have a specific type that must match the contents they can store.

Variables are only accessible within a single application and are cleared when the app is restarted or completed.

**Table Record Field**

**Table Record Fields**are single columns within a **Tulip Table.**

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Table%20Record%20Field(1).gif)

**Table Record**

A **Table Record** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from with an App Trigger.

To edit a record it must be loaded into a **Table Record Placeholder.**

**Tulip Player**

**Tulip Player** is the Windows/Mac executable program where users can run Tulip apps. Tulip player allows you to create a more seamless user experience by removing the need for a web browser, and allows increased IT controls.

**Widget**

**Widgets**are the elements that make up a specific **App Step.**Widgets can display information to users, collect user input, or trigger app logic.

*Common widgets include: Interactive Tables, Number inputs, Machine attribute widgets, and more.*

**Variable**

**Variables**are a location to store app information. Variables have a specific type that must match the contents they can store.

Variables are only accessible within a single application and are cleared when the app is restarted or completed.

**Table Record Field**

**Table Record Fields**are single columns within a **Tulip Table.****![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Table%20Record%20Field.gif)**

**Table Record**

A **Table Record** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from with an App Trigger.

To edit a record it must be loaded into a **Table Record Placeholder.**

**Table Record Placeholder**

A **Table Record Placeholder** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from an App Trigger.

**Boolean**

**Boolean's**are a Tulip Datatype. Booleans can have True/False (Yes/No) values.

**Tulip Tables**

**Tulip Tables** are a global location to store your production data. **Tables** are made up of **Records** (rows). A single can be accessed from multiple apps or stations at the same time. ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Tulip%20Tables%20Overview%20-%20Feature%20Overview(1).gif)

**Number**

**Number**is a Tulip Datatype. Numbers can be any positive or negative number. Numbers support decimals.

*ex. -5, 15, 47, 155, 15.2, -12.73*

**Integer**

**Integers**are a Tulip Datatype. Integers can have any whole number.

*ex. -5, 15, 47, 155. **NOT** 15.2, -12.73*

**Array**

**Arrays**are a Tulip Datatype. Arrays are a list of other variables. Every element in an array must be the same type.

Arrays are very useful when managing multiple values that represent the same information.

*ex. The measurements of 10 quality checks can be stored in an Array of Numbers, as opposed to 10 Number variables.*

**Datetime**

**Datetimes**are a Tulip Datatype. Datetimes represent a time in the ISO8601 format.

*ex. 2022-08-31T19:56:16+00:00*

**Image**

**Images**are a Tulip Datatype. Images are a reference to a web-hosted location for all Tulip Images.

**Signatures**

In regulated environments (GxP) getting a user signature to the accuracy of data is critical for process validation. The **E-Sig Widget**allows users to collect user signatures along with associated metadata.
