OnboardingSteps and properties

The onboarding system is built around step types.

Each step type represents a specific kind of user interaction (reading, selecting, typing, confirming).

All steps share a common base API, then add their own specific properties.

Common properties (all steps)

Every step supports the following properties:

PropertyDescriptionDefaultRequired
type

Defines which UI component is used. Example: type: "select"

Yes
property

Key used to store the step result in userData. Example: property: "goal" results in userData.goal

Yes
titleMain text displayed at the top of the screenNo
descriptionSecondary text displayed under the titleNo
continue_button_titleOverrides the default "Continue" button text"Continue"No
progress_bar_enabled

Shows or hides the progress bar. Some step types require this to be false

trueNo
back_button_enabledControls whether the user can go back to the previous steptrueNo
backgroundBackground color of the stepNo
display_condition

Controls whether the step is shown, based on previous answers. This is covered in detail in the "Conditional steps" section

No

Step types

Below are all built-in step types and their specific properties.

Welcome step

Used for:

  • App introduction
  • Value proposition
  • First impression screens
PropertyDescriptionRequired
type

Must be "welcome"

Yes
progress_bar_enabled

Must be false

Yes
optionsArray of slides (title, description, image, etc.)No
variantControls visual layoutNo
direct_continueIf true, skips the continue button and advances automaticallyNo

Intermediate step

Used for:

  • Informational screens
  • Explanations
  • Transitions between questions
PropertyDescriptionRequired
type

Must be "intermediate"

Yes
imageImage to display on the stepNo
videoVideo to display on the stepNo
image_positionPosition of the imageNo
image_widthWidth of the imageNo

TextInput step

Used for:

  • Names
  • Free-form input
  • Custom values
PropertyDescriptionRequired
type

Must be "textinput"

Yes
placeholderPlaceholder text for the input fieldYes

Stored data format: string

Example: userData.name → "Alex"

Select step

Used for:

  • Single or multiple choice questions
PropertyDescriptionRequired
type

Must be "select"

Yes
optionsArray of selectable optionsYes
multi_selectEnable multiple selectionNo
icon_sizeSize of icons in optionsNo
icon_positionPosition of icons in optionsNo
padding_verticalVertical padding for optionsNo
resetAllow resetting selectionNo
select_allShow "select all" optionNo

Stored data format: string[]

Example: userData.features → ["tracking", "analytics"]

Statement step

Used for:

  • Yes / No confirmations
  • Commitments
  • Opinion-based questions
PropertyDescriptionRequired
type

Must be "statement"

Yes
imageImage to display on the statement stepYes

Stored data format: "yes" | "no"

Rating step

Used for:

  • Testimonials
  • Social proof
  • Perceived value reinforcement
PropertyDescriptionRequired
type

Must be "rating"

Yes
progress_bar_enabled

Must be false

Yes
optionsArray of rating itemsNo

Loading step

Used for:

  • Simulated processing
  • Personalization moments
  • Transitions before completion
PropertyDescriptionRequired
type

Must be "loading"

Yes
progress_bar_enabled

Must be false

Yes
optionsArray of loading messagesNo
loading_durationDuration of the loading stepNo
testimonialsTestimonials to display during loadingNo

Custom step

Used for:

  • Fully custom UI
  • Advanced logic
  • Special layouts
PropertyDescriptionRequired
type

Must be "custom"

Yes
componentCustom React component to renderYes

Custom steps are covered in detail in the "Custom steps" section.