Question Types

IDEAL Survey supports over 10 question types for any data collection need. Each type is designed for specific use cases, from simple text inputs to complex repeat groups and calculations. Choose the right question type to ensure data quality, improve user experience, and enable powerful features like conditional logic, validation, and cross-survey references.

Text

Single-line text input for short responses. Supports validation with regex patterns and length constraints.

Example uses: Names, identifiers, short answers, contact information

Output format: String

Output example: "Sample text response"

Long Text

Multi-line textarea for detailed responses, comments, or descriptions. Ideal for open-ended questions requiring paragraph-length answers.

Example uses: Feedback, detailed descriptions, notes, observations

Output format: String

Output example: "This is a longer response with multiple sentences..."

Number

Numeric input with advanced constraints. Supports min/max range, integer-only mode, decimal places, step increments, prefix/suffix labels, and can be used in calculations.

Example uses: Quantities, measurements, scores, counts, currency values

Constraints: Min, Max, Step, Integer only, Decimal places, Prefix (e.g. $), Suffix (e.g. kg)

Output format: Number

Output example: 42 or 3.14

Date

Date picker input for collecting date values. Uses the browser's native date picker for a consistent experience.

Example uses: Birth dates, event dates, deadlines, start/end dates

Output format: String (YYYY-MM-DD)

Output example: "2026-03-19"

Single Choice

Select one option from a list. Display as radio buttons, dropdown, or button grid. Options can be static, loaded from CSV, or dynamically populated using {question_name} references to pull answers or options from earlier questions.

Example uses: Categories, yes/no questions, rating scales, status selection

Dynamic options: Use {crops} as an option to pull values from a previous question named "crops"

Output format: String (selected option value)

Output example: "Option A"

Multiple Choice

Select multiple options from a list using checkboxes. Set maximum selections limit if needed. Display as checkboxes, list, or button grid.

Example uses: Multiple selections, preferences, attributes, features

Output format: Array of strings

Output example: ["Option A", "Option C", "Option D"]

Mapping

Drag-and-drop interface to match items from two lists. Perfect for pairing, categorization, or relationship mapping tasks.

Example uses: Match items, assign relationships, categorize elements

Output format: Object with key-value pairs

Output example: { "Item1": "Category A", "Item2": "Category B" }

Table

Grid layout with configurable columns and rows. Cell types include text, number, checkbox, dropdown, and auto-index. Rows can be static (manually defined) or dynamic (driven by a numeric question). Both row labels and column labels support {reference} syntax to dynamically generate entries from previous answers. Comma-separated values in the editor expand into multiple rows or columns.

Example uses: Structured data, comparison matrices, scoring grids, schedules

Column bulk input: Type Apple, Banana, Cherry in the "Column:" field and press Enter to create multiple columns at once

Dynamic columns: Use {crops} as a column label — at fill time, it expands into one column per answer value

Dynamic rows: Use {crops} as a row label — at fill time, it expands into one row per answer value

Number column constraints: Min, Max, Step, Integer only, Decimal places, Prefix, Suffix, Default value (supports references)

Dropdown column options: Use {question_name} as an option to dynamically populate dropdown choices

Output format: 2D array (rows and columns)

Output example: [["A1", "B1"], ["A2", "B2"]]

Repeat Group

Collect multiple instances of the same question set. Respondents can add/remove instances. Supports nested repeat groups (repeat groups inside repeat groups), filtering, aggregation, and advanced referencing. Sub-questions support all question types including tables, mapping, and calculations. Use {.name} (dot-prefix) to reference sibling sub-questions within the same instance.

Example uses: Multiple entries, repeated items, collections, series

Nested groups: Add repeat groups inside repeat groups for multi-level data collection

Sub-question references as options: Use {group_name[*].sub_question} to populate options in other questions from repeat group answers

Output format: Array of objects (each instance contains nested question answers)

Output example: [{ "field1": "value1", "field2": 10 }, { "field1": "value2", "field2": 20 }]

Calculate

Auto-computed field hidden from respondents. Performs arithmetic, conditional logic, and aggregations. Results can be referenced in other questions.

Example uses: Totals, derived values, computed scores, conditional results

Output format: Number or string (depends on calculation)

Output example: 150 or "Eligible"

Note

Display-only text for instructions, explanations, or section headers. No answer is collected. Supports dynamic references to show personalized information. Supports hints/instructions that appear as collapsible guidance below the note.

Example uses: Instructions, explanations, headers, personalized messages

Hints: Add collapsible hints that respondents can expand by clicking "Show hints"

Output format: No output (display only)

Output example: N/A

Group

Organize related questions into a collapsible section with a shared label. Unlike repeat groups, this creates a single instance of grouped questions.

Example uses: Section organization, related questions, logical grouping

Output format: No output (organizational structure only)

Output example: N/A

Marker

Structure markers for begin_group and end_group to create collapsible sections. These are invisible to respondents but organize the survey structure.

Example uses: Section boundaries, collapsible groups, structural organization

Output format: No output (structural marker only)

Output example: N/A