Skip to main content
multiple_select renders a list of checkboxes. The user can select any number of options — zero, one, or many. Use it when multiple answers are valid. Submission value type: string[] (array of selected value strings)

Field properties

PropertyTypeRequiredDescription
idstringYesUnique identifier within the form. Becomes the key in submission data.
type"multiple_select"YesMust be multiple_select.
labelstring | LocaleMapYesLabel shown above the checkboxes.
optionsOption[]YesThe list of choices. See below.
searchablebooleanNoAdds a text filter above the checkboxes. Useful for long option lists.
validatorsValidator[]NoValidation rules applied before the section is submitted.
visible_whenstringNoJS expression; field is shown when truthy, hidden otherwise. Hidden fields are excluded from submission data.

Options

Simple format — value and label are the same string:
options:
  - JavaScript
  - TypeScript
  - Python
  - Go
Structured format — explicit value stored; label displayed:
options:
  - value: js
    label: JavaScript
  - value: ts
    label: TypeScript
  - value: py
    label: Python
Structured with LocaleMap — translated labels:
options:
  - value: js
    label:
      en: JavaScript
      es: JavaScript
  - value: ts
    label:
      en: TypeScript
      es: TypeScript
  - value: py
    label:
      en: Python
      es: Python
The value is what gets stored in submission.data. The label is what the user sees.

Validators

required

At least one option must be selected.
validators:
  - required
Default error message: This field is required.

type: min

Minimum number of selections.
validators:
  - type: min
    value: 2
    message: Please select at least 2 skills.
PropertyTypeRequiredDescription
valuenumberYesMinimum number of options that must be selected.
messagestring | LocaleMapNoError shown when too few options are selected.
Default error message: Must select at least {value} options.

type: max

Maximum number of selections.
validators:
  - type: max
    value: 3
    message: Please select no more than 3 skills.
PropertyTypeRequiredDescription
valuenumberYesMaximum number of options that can be selected.
messagestring | LocaleMapNoError shown when too many options are selected.
Default error message: Must select no more than {value} options.
Validators run in the browser before each section is submitted. They enforce UX constraints, not security guarantees. If you need server-side validation, implement it in your webhook receiver.

Full example

A skills selection field with search enabled, requiring between 1 and 3 selections:
version: 1
title: Skills assessment
sections:
  - id: main
    title: Tell us about your skills
    fields:
      - id: skills
        type: multiple_select
        label: Which of these do you work with?
        searchable: true
        options:
          - value: js
            label: JavaScript
          - value: ts
            label: TypeScript
          - value: py
            label: Python
          - value: go
            label: Go
          - value: rust
            label: Rust
          - value: java
            label: Java
          - value: cs
            label: C#
          - value: cpp
            label: C++
        validators:
          - required
          - type: min
            value: 1
            message: Please select at least one skill.
          - type: max
            value: 3
            message: Please select no more than 3 skills.
    next: done