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