Skip to content
Components

Input Components

Collect user input with text fields, dropdowns, checkboxes, and more.

Input Components

Input components let you collect information from users directly within your flows. Every input component stores its value under a key: most use a variableName property, while Segmented Control, Switch, Chip, and Quiz use saveToAttribute. Either way the collected value is available within the current flow and can be saved as a user attribute for future targeting.

All input values collected through these components are available in your flow analytics and can be saved as user attributes for segmentation and targeting.

Required messages

Most input components have a Required toggle. When it is on and the user tries to continue without answering, the flow shows the component's Required Message, which defaults to "Answer this to continue". You can rewrite that message per component, and it is localizable like any other authored string, so translate it alongside your labels and options.

Required Message exists on TextInput, Dropdown, MultiSelect, Checkbox, Segmented Control, RadioGroup, DatePicker, Quiz, Rating, NPS, Emoji Feedback, and Thumbs.

TextInput

A single-line text field for collecting free-form text responses. The Input Type setting adapts the keyboard and, for password, masks the entry.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown above the field.
Placeholdertext"Enter text..."Ghost text shown when the field is empty.
Helper TexttextemptySupporting text shown below the field.
Input TypeselecttextKeyboard and entry mode: text, email, tel, url, password. Stored as inputType.
Variable NametextemptyKey used to store the entered value.
Max LengthnumbernoneMaximum character count.
ValidationtextemptyRegular expression the value must match. Stored as pattern.
RequiredbooleanfalseWhether the field must be filled before proceeding.
Required Messagetext"Answer this to continue"Message shown when Required is on and the field is empty.
DisabledbooleanfalseRender the field as read-only.
Full WidthbooleantrueStretch the field to the width of its container.
Marginspacing16 bottomOuter spacing around the field.
Border Radiusnumber8Corner rounding.
Border Colorcolor#D1D5DBField border color at rest.
Focus Border Colorcolor#3B82F6Border color while the field is focused.
Background Colorcolor#FFFFFFField background color.

TextInput is single-line only. There is no multiline mode, and no font size, text color, or padding properties. For longer-form answers, keep the field short and ask a narrower question, or split the answer across screens.

Use cases

  • Collecting a user's name during onboarding
  • Email address capture for lead generation
  • A referral or promo code, paired with a Validation pattern

A selection component that presents a list of options in a native dropdown/picker interface.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown above the dropdown.
Placeholdertext"Select an option..."Text shown when no option is selected.
OptionstextareaemptyOne option per line. Stored as options.
Variable NametextemptyKey used to store the selected value.
On SelectactionnoneAction fired when the user picks an option.
RequiredbooleanfalseWhether a selection is required.
Required Messagetext"Answer this to continue"Message shown when Required is on and nothing is selected.
DisabledbooleanfalseRender the dropdown as read-only.
Full WidthbooleantrueStretch the dropdown to the width of its container.
Marginspacing16 bottomOuter spacing around the dropdown.
Border Radiusnumber8Corner rounding.

Options is a plain textarea, one option per line, not a structured list editor. Blank lines produce empty options, so keep the list tight.

Option labels are localizable. You can provide translated labels for each language your flow supports.


Checkbox

A single checkbox with a label and an optional description. Use it for one yes/no acknowledgment, not for picking from a list.

Properties

PropertyTypeDefaultDescription
Labeltext"Checkbox label"Text shown next to the box.
DescriptiontextareaemptySupporting text below the label.
SizeselectmediumBox size: small, medium, large. Stored as checkboxSize.
Checked Colorcolor#3B82F6Color of the box when checked.
Variable NametextemptyKey used to store the checked state.
Default CheckedbooleanfalseWhether the box starts checked.
RequiredbooleanfalseWhether the box must be checked before proceeding.
Required Messagetext"Answer this to continue"Message shown when Required is on and the box is unchecked.
DisabledbooleanfalseRender the checkbox as read-only.
Marginspacing12 bottomOuter spacing around the checkbox.

Checkbox holds one boolean value. To let users pick several options from a list, use MultiSelect in checkboxList display mode, or Chip for a compact tag layout.

Use cases

  • Terms and conditions acknowledgment
  • Marketing opt-in
  • A single "remember this" preference

Switch

A toggle for a single on/off preference. Same job as Checkbox, presented as a platform-native switch.

Properties

PropertyTypeDefaultDescription
Labeltext"Enable"Text describing what the switch controls.
DescriptiontextareaemptySupporting text below the label.
LayoutselectspaceBetweenspaceBetween pushes the switch to the far edge; inline keeps it adjacent.
AlignmentselectleftHorizontal alignment: left, center, right. Stored as align.
On Colorcolor#3B82F6Track color when the switch is on.
Label Colorcolor#000000Label text color.
Save to AttributetextemptyUser attribute that stores the on/off value.
Default OnbooleanfalseWhether the switch starts on.
DisabledbooleanfalseRender the switch as read-only.
Marginspacing12 bottomOuter spacing around the switch.

Switch has a Required option. Turn it on when the user has to make the choice explicitly rather than accepting the default.

Use cases

  • Push notification or email preferences
  • Feature opt-in during onboarding
  • Unit or mode preferences that default sensibly

RadioGroup

A single-selection component that presents a list of mutually exclusive options. RadioGroup is one of the most powerful input components because it supports conditional branching: each option can route the user to a different screen.

Properties

PropertyTypeDefaultDescription
Group Labeltext"Select an option"Text shown above the options. Stored as label.
OptionstextareaemptyOne option per line.
OrientationselectverticalStack options vertically or lay them out horizontally.
Selected Colorcolor#3B82F6Color of the selected radio indicator.
Variable NametextemptyKey used to store the selected value.
On SelectactionnoneAction fired when the user picks an option.
RequiredbooleanfalseWhether a selection is required.
Required Messagetext"Answer this to continue"Message shown when Required is on and nothing is selected.
DisabledbooleanfalseRender the group as read-only.
Marginspacing16 bottomOuter spacing around the group.

Branching

RadioGroup selections can drive the flow path. In the flow graph editor, create a branch node connected to the screen containing the RadioGroup. Map each option value to a target screen:

  • Option "Beginner" leads to Screen A (introductory content)
  • Option "Advanced" leads to Screen B (power-user features)
  • Option "Just browsing" leads to Screen C (quick tour)

This creates genuinely personalized journeys without requiring separate flows.


Quiz

The richest choice component, and the one purpose-built for onboarding question screens and branching. Quiz renders option cards in five different styles, can filter a long option list with a search field, and takes per-option configuration rather than a flat list of strings.

Properties

PropertyTypeDefaultDescription
Questiontextarea"Your question?"The question shown above the options. This is the component's main content field.
StyleselectlistOption layout: list, grid, imageChoice, emoji, scale. Stored as variant.
OptionsarrayemptyThe options, each configured individually rather than as one line of text.
SearchablebooleanfalseShow a search field above the options for filtering long lists.
Search Placeholdertext"Search…"Ghost text in the search field. Only used when Searchable is on.
No Results Texttext"No matches"Shown when a search matches no options.
Columnsnumber2Number of columns, for the grid and imageChoice styles.
Selected Colorcolor#3B82F6Highlight color of a selected option.
Allow MultiplebooleanfalseLet the user pick more than one option.
Max Selectionsnumber0Cap on selections when Allow Multiple is on. 0 means no cap. Stored as maxSelect.
Save to AttributetextemptyUser attribute that stores the answer.
RequiredbooleantrueWhether an answer is required. Note this defaults to on, unlike other inputs.
Required Messagetext"Answer this to continue"Message shown when the user tries to continue without answering.
Marginspacing16 bottomOuter spacing around the quiz.

Quiz is the component to reach for on personalization screens ("What is your goal?", "How experienced are you?"). Because the answer is stored as a user attribute, it can drive a branch node in the flow graph and stay available for targeting later flows.

Use cases

  • Goal and motivation questions during onboarding
  • Visual pickers with imageChoice or emoji styles
  • Long lists such as country or interest selection, with Searchable on

Segmented Control

A single-select control with two layouts. The default segmented layout is a compact tab strip; the stacked layout renders each option as a full-width card with an icon, title, and description, ideal for goal pickers and onboarding choices.

Properties

PropertyTypeDefaultDescription
OptionstextareaemptyOne option per line as value|label, or value|label|description|icon for stacked cards.
LayoutselectsegmentedSegmented (tab strip) or Stacked (full-width cards).
Save to AttributetextemptyUser attribute that stores the selected value.
Default ValuetextemptyValue of the initially selected option. Leave empty for no pre-selection.
RequiredbooleanfalseBlock the screen's Continue button until an option is selected. Only applies to the stacked layout (a tab strip always has one active tab).
Required Messagetext"Answer this to continue"Message shown when Required is on and nothing is selected.
Selected Colorcolor#FFFFFFSelected segment color (segmented layout).
Track Colorcolor#E5E7EBBackground track color (segmented layout).
Text Colorcolor#111827Option label color.
Marginspacing16 bottomOuter spacing around the control.

The stacked layout adds card styling: Card Background (#FFFFFF), Card Border (#ECECEE), Selected Card Background (#F1F8F5), and Selected Card Border (#1F8A5B).

Use cases

  • "What do you want to do?" goal selection
  • Plan or billing-period toggles (Monthly / Yearly)
  • Unit or preference switches (lb / kg)

MultiSelect

A multi-selection component. It renders either as tappable chips or as a list of checkboxes, controlled by Display Mode.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown above the options.
Placeholdertext"Select options..."Text shown when nothing is selected.
OptionstextareaemptyOne option per line.
Display Modeselectchipschips for tappable tags, checkboxList for a vertical list of checkboxes.
Chip Colorcolor#3B82F6Chip color. This is the only chip color property on MultiSelect.
Variable NametextemptyKey used to store the array of selected values.
Min Selectionsnumber0Minimum selections required. 0 means no minimum.
Max Selectionsnumber0Maximum selections allowed. 0 means no maximum.
RequiredbooleanfalseWhether at least one option must be selected.
Required Messagetext"Answer this to continue"Message shown when Required is on and nothing is selected.
DisabledbooleanfalseRender the options as read-only.
Full WidthbooleantrueStretch the component to the width of its container.
Border Radiusnumber8Corner rounding.
Marginspacing16 bottomOuter spacing around the component.

There is one chip color, not a set. MultiSelect has no separate chip background, chip text color, chip border radius, or gap properties.

Use cases

  • "What are you interested in?" topic selectors
  • Feature discovery preferences
  • Multi-category filtering

Chip

A compact row of tappable tags. Chip is lighter than MultiSelect: no label and no placeholder, just the tags and how they wrap.

Properties

PropertyTypeDefaultDescription
ChipstextareaemptyOne chip per line. Stored as options.
AlignmentselectleftAlign the chips left or center. Stored as justify.
Allow MultiplebooleantrueLet the user select more than one chip.
Selected Colorcolor#3B82F6Color of a selected chip.
Chip Colorcolor#F3F4F6Color of an unselected chip.
Save to AttributetextemptyUser attribute that stores the selection.
Marginspacing16 bottomOuter spacing around the chip row.

Chip has a Required option but no min or max selection limits. If you need to require a specific number of choices, use MultiSelect or Quiz instead.

Use cases

  • Interest or tag pickers where an answer is optional
  • Quick filters inside a longer screen
  • Compact secondary questions alongside a primary input

Slider

A numeric range slider for collecting a value within a defined minimum and maximum.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown above the slider.
Variable NametextemptyKey used to store the selected value.
Minimumnumber0Minimum slider value.
Maximumnumber100Maximum slider value.
Stepnumber1Increment step size.
Default Valuenumber50Initial slider position, the midpoint of the default range.
Show ValuebooleantrueDisplay the current value alongside the slider.
Track Colorcolor#E5E7EBColor of the unfilled slider track.
Active Colorcolor#3B82F6Color of the filled portion of the track. Stored as activeColor.
DisabledbooleanfalseRender the slider as read-only.
Marginspacing16 bottomOuter spacing around the slider.

The thumb is not separately themable. Active Color styles the filled track, and there is no thumb color property.

Use cases

  • Budget or price range selection
  • Satisfaction level measurement
  • Frequency or intensity preferences

Stepper

A discrete number stepper: a label and a minus / value / plus control. The minus and plus buttons step the value by a fixed amount between a minimum and maximum, and each disables at its bound. Use it when a precise whole number matters more than a quick drag, such as age, height, or quantity.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown to the left of the control.
UnittextemptySuffix appended after the value (e.g. yr, lb, kg).
Minimumnumber0Minimum value.
Maximumnumber100Maximum value.
Stepnumber1Increment per tap.
Default Valuenumber0Initial value, clamped into the min / max range.
Save to AttributetextemptyUser attribute that stores the selected value.
DisabledbooleanfalseRender the control as read-only.
Text Colorcolor#16181BLabel and value color.
Button Backgroundcolor#F4F5F7Background of the minus / plus buttons.
Button Icon Colorcolor#16181BColor of the minus / plus glyphs.
Marginspacing0Outer spacing around the control.

Use cases

  • Age, height, or weight during onboarding
  • Quantity selection
  • Goal targets that need an exact number

DatePicker

A date selection component that opens the native platform date picker.

Properties

PropertyTypeDefaultDescription
LabeltextemptyText shown above the field.
Placeholdertext"Select date..."Text shown before a date is selected.
Variable NametextemptyKey used to store the selected date.
Min DatetextemptyEarliest selectable date.
Max DatetextemptyLatest selectable date.
RequiredbooleanfalseWhether a date is required before proceeding.
Required Messagetext"Answer this to continue"Message shown when Required is on and no date is selected.
DisabledbooleanfalseRender the field as read-only.
Full WidthbooleantrueStretch the field to the width of its container.
Marginspacing16 bottomOuter spacing around the field.

DatePicker renders the platform's native picker, so its display format and styling follow the device. There are no date format, background color, text color, or border radius properties.

Use cases

  • Birthday collection during onboarding
  • Event scheduling within flows
  • Subscription or trial date preferences

On this page