Multi-select field

Use multi_select when you want respondents to choose several options from a dropdown. Its submission value is an array of strings.

Configuration

NameTypeRequiredDefaultDescription
optionsstring[]Yes—Choices shown in the dropdown.
maxSelectionsintegerNoNo limitMaximum choices a respondent can pick. Must be from 1 to 1000.
scoringnumber[]NoEvery option scores 0One score per option, in the same order as options.
capacity(integer | null)[]NoNo limitOne entry per option: an integer from 0 to 999,999, or null for no limit. Sets the maximum responses each option accepts across submissions.
randomizebooleanNofalseSet to true to show each respondent the options in a different order.

For shared field properties such as name, label, and required, see Shared field properties.

Validation respondents see

  • If the field is required and nothing is selected, the respondent cannot continue.
  • When the selection limit is reached, the remaining options cannot be picked. An answer above maxSelections blocks the page and is rejected again at submit.
  • An option that has reached its capacity cannot be picked.

Submission value

The answer is stored as a string[]. For example, choosing Slack and Linear produces ["Slack", "Linear"].

defaultValue is ignored for multi_select. If the respondent skips a page through form logic, choices made on that page are dropped before the submission is stored. For multi-answer fields, scoring sums the scores of the unique selections.

Example

{ "type": "multi_select", "name": "tools_used", "label": "Which tools does your team use?", "options": ["Slack", "Notion", "Linear", "Figma", "GitHub"], "maxSelections": 3, "scoring": [1, 0, 2, 1, 2], "capacity": [null, 50, 100, null, 200], "randomize": true, "required": true }