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 validation for integers or decimals. Supports range constraints (min/max) and can be used in calculations.

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

Output format: Number

Output example: 42 or 3.14

Single Choice

Select one option from a list. Display as radio buttons, dropdown, or button grid. Options can be static or dynamically loaded from previous questions or external sources.

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

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 rows and columns for structured data entry. Each cell can be text, number, or choice type. Supports dynamic row/column generation.

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

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 filtering, aggregation, and advanced referencing.

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

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.

Example uses: Instructions, explanations, headers, personalized messages

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