Multiple Choice
Present a list of text options for the respondent to choose from. Supports single-select, multi-select, "Other" free-text, randomization, and alphabetical ordering.

Type identifier: multiple_choice
Properties
| Property | Type | Description | Default |
|---|---|---|---|
choices | Choice[] | Array of choice options. Each choice has an id, label, and optional imageUrl. | [] |
allowMultiple | boolean | Allow the respondent to select more than one option. | false |
allowOther | boolean | Show an "Other" option with a free-text input where the respondent can type a custom answer. | false |
randomize | boolean | Randomize the order of choices each time the question is displayed. | false |
alphabeticalOrder | boolean | Sort choices alphabetically. Ignored if randomize is enabled (randomize takes precedence). | false |
Choice Object
Each choice in the choices array has:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this choice. Used in logic jumps and scoring. |
label | string | The display text for the choice. |
imageUrl | string | Optional image URL for the choice (not typically used in standard multiple choice; see Picture Choice). |
Validation
If required is true, the respondent must select at least one option before proceeding.
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
When using equals or not_equals, the comparison value is the choice ID. For multi-select questions, equals checks if the value is among the selected items.
Answer Format
- Single select (
allowMultiple: false): A string (the selected choice ID). - Multi-select (
allowMultiple: true): An array of strings (the selected choice IDs).
Quiz Mode Scoring
Multiple Choice is a scorable question type in all quiz modes:
- Knowledge Quiz: Set
correctAnswers(array of correct choice IDs) andcorrectAnswerScore(points per correct answer). - Lead Qualification: Set
choiceScores(mapping of choice ID to point value). - Match Quiz: Set
choiceOutcomes(mapping of choice ID to end screen question IDs).
Keyboard shortcuts are available for choice selection. Respondents can press letter keys (A, B, C, etc.) to select options, which appear as indicators next to each choice.
Dropdown
A dropdown menu for selecting from a list of options. Supports the same configuration as Multiple Choice but displays options in a compact dropdown format.

Type identifier: dropdown
Properties
| Property | Type | Description | Default |
|---|---|---|---|
choices | Choice[] | Array of choice options. | [] |
allowMultiple | boolean | Allow selecting multiple options from the dropdown. | false |
allowOther | boolean | Show an "Other" option with free-text input. | false |
placeholder | string | Placeholder text shown before a selection is made. | None |
randomize | boolean | Randomize the order of choices. | false |
alphabeticalOrder | boolean | Sort choices alphabetically. | false |
Validation
If required is true, the respondent must select at least one option.
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
Answer Format
- Single select: A string (the selected choice ID).
- Multi-select: An array of strings (the selected choice IDs).
Quiz Mode Scoring
Dropdown is a scorable question type. Scoring configuration is identical to Multiple Choice.
Picture Choice
Present image-based options for the respondent to choose from. Each choice displays an image with an optional text label below it.

Type identifier: picture_choice
Properties
| Property | Type | Description | Default |
|---|---|---|---|
choices | Choice[] | Array of choice options. Each choice should have an imageUrl in addition to id and label. | [] |
allowMultiple | boolean | Allow selecting multiple images. | false |
allowOther | boolean | Show an "Other" option with free-text input. | false |
randomize | boolean | Randomize the order of image choices. | false |
alphabeticalOrder | boolean | Sort choices alphabetically by label. | false |
Choice Object (Picture Choice)
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this choice. |
label | string | Text label displayed below the image. |
imageUrl | string | URL of the image to display for this choice. |
Validation
If required is true, the respondent must select at least one image.
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
Answer Format
- Single select: A string (the selected choice ID).
- Multi-select: An array of strings (the selected choice IDs).
Quiz Mode Scoring
Picture Choice is a scorable question type. Scoring configuration is identical to Multiple Choice.
Picture Choice options are displayed in a responsive grid layout. On desktop, images are shown in a multi-column grid; on mobile, they stack vertically.
Yes / No
A simple binary question that presents "Yes" and "No" buttons.

Type identifier: yes_no
Properties
The Yes/No question type has no additional properties beyond the common question properties.
Validation
If required is true, the respondent must click either "Yes" or "No".
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
When using equals, compare against true (Yes) or false (No). String values "true" and "false" are also accepted.
Answer Format
The answer is stored as a boolean (true for Yes, false for No, or null if unanswered).
Quiz Mode Scoring
Yes/No is a scorable question type:
- Knowledge Quiz: Set
correctAnswerswith a single value of"true"or"false". - Lead Qualification: Set
choiceScoreswith keys"true"and"false". - Match Quiz: Set
choiceOutcomeswith keys"true"and"false".
The Yes/No question auto-advances to the next question immediately upon selection. There is no separate "OK" button.
Ranking
Present a list of items for the respondent to arrange in their preferred order by dragging and dropping.

Type identifier: ranking
Properties
| Property | Type | Description | Default |
|---|---|---|---|
choices | Choice[] | Array of items to rank. Each has an id and label. | [] |
Validation
If required is true, the respondent must submit a ranking (all items must be in a defined order).
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
Answer Format
The answer is stored as an array of strings (choice IDs in the respondent's ranked order, from first to last).
["choice_3", "choice_1", "choice_2"]
The ranking field uses drag-and-drop interaction. On mobile devices, respondents can use touch gestures to reorder items.
Matrix
A grid-based question type where respondents rate multiple items (rows) across multiple categories (columns). Each row-column intersection is a selectable option.

Type identifier: matrix
Properties
| Property | Type | Description | Default |
|---|---|---|---|
rows | string[] | Array of row labels (the items being rated). | [] |
columns | string[] | Array of column labels (the rating categories). | [] |
randomizeRows | boolean | Randomize the order of rows. | false |
randomizeColumns | boolean | Randomize the order of columns. | false |
Validation
If required is true, the respondent must select one option per row.
Logic Jump Operators
equals, not_equals, is_answered, is_not_answered
Answer Format
The answer is stored as an object (Record<string, string>) mapping each row label to the selected column label:
{
"Product Quality": "Excellent",
"Customer Service": "Good",
"Value for Money": "Average"
}
Matrix questions display as a responsive grid on desktop and adapt to a stacked format on mobile devices for better usability. Both rows and columns support independent randomization.
List
Collectez plusieurs entrées de même nature. Une Liste contient soit de simples éléments texte (saisissez et appuyez sur Entrée, ou touchez Ajouter), soit des éléments composites répétés — des entrées structurées construites à partir d'un composite réutilisable, comme l'ajout d'un nombre quelconque de membres de conseil à une seule question.
Type identifier: list
Properties
| Property | Type | Description | Default |
|---|---|---|---|
itemType | string | string pour de simples éléments texte, composite pour des instances de composite répétables. | string |
compositeId | string | Le composite référencé (éléments composites uniquement). Défini via le sélecteur. | — |
itemPlaceholder | string | Texte indicatif pour le champ de saisie de l'entrée (éléments texte). | — |
addButtonLabel | string | Étiquette personnalisée du bouton Ajouter dans les deux modes d'élément. | — |
minItems | number | Nombre minimum d'éléments requis pour envoyer. | — |
maxItems | number | Nombre maximum d'éléments. Plafond strict de 100. | 100 |
itemRegex | string | Format de validation par élément (éléments texte). | — |
itemRegexError | string | Message d'erreur affiché lorsque le format échoue. | — |
itemMinLength | number | Nombre minimum de caractères par élément (éléments texte). | — |
itemMaxLength | number | Nombre maximum de caractères par élément (éléments texte). | — |
allowDuplicates | boolean | Autoriser l'ajout deux fois du même élément texte (éléments texte). | true |
allowReorder | boolean | Permettre aux répondants de glisser les éléments pour les réordonner (éléments texte). | true |
defaultItems | string[] | Éléments pré-remplis au premier chargement de la question (éléments texte, formulaires web). | [] |
displayMode | string | Façon dont une entrée composite repliée s'affiche : compact (résumé sur une ligne) ou card (étiquette + valeur de chaque champ). | compact |
compactFields | string[] | Identifiants de sous-champs, dans l'ordre, affichés dans le résumé compact replié. Par défaut, le premier champ du composite. | — |
Validation
Si required est vrai, au moins un élément doit être ajouté. minItems / maxItems sont vérifiés à l'envoi ; les règles de format et de longueur par élément (éléments texte) sont vérifiées au fur et à mesure de l'ajout de chaque élément.
Logic Jump Operators
list_count_equals, list_count_greater_than, list_count_less_than, contains, not_contains, is_answered, is_not_answered
Les opérateurs de comptage se comparent au nombre d'éléments dans la réponse.
Answer Format
- Éléments texte : un tableau de chaînes.
- Éléments composites : un tableau d'objets, chacun indexé par l'identifiant de sous-champ :
[
{ "sub_first_name": "Ada", "sub_email": "ada@example.com" },
{ "sub_first_name": "Grace", "sub_email": "grace@example.com" }
]
Chaque élément composite est aussi enregistré comme une entrée de composite autonome — voir le guide Composites pour la vue Entrées inter-formulaires et les modes d'affichage repliés.