Table
A structured grid field for capturing tabular data with configurable columns.
Overview
The Table field renders an editable data grid where respondents can add rows of structured data. Each column is configured with a name and an input type. Supported column types: text, email, phone, number, textarea, select, multi_select, checkbox, radio, date, rating, range, rich_text_input, media, map, and calculated. Respondents can add, edit, and delete rows directly in the grid.
This field is useful for collecting line-item data such as expense reports, inventory lists, work history timelines, or any scenario where the number of entries is variable but the structure is fixed.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| label | string | — | Human-readable label shown above the field or step heading. |
| required | boolean | false | When true, the form cannot submit without a value. |
| isHidden | boolean | false | Hides the field from respondents (may still store defaults). |
| isDisabled | boolean | false | Renders the field read-only. |
| instruction | string | undefined | Help text shown below the label (not the same as placeholder). |
| tableColumns | TableColumn[] | [] | Column definitions: id, label, type, options?, formula?, etc. |
| minRows | number | 1 | Minimum number of rows that must be filled. |
| maxRows | number | undefined | Maximum number of rows allowed. |
| addRowLabel | string | "Add Row" | Label for the add-row button. |
JSON Schema
{
"id": "work_experience",
"type": "table",
"label": "Work Experience",
"required": true,
"minItems": 1,
"maxItems": 10,
"tableColumns": [
{ "id": "company", "label": "Company", "type": "text", "required": true },
{ "id": "role", "label": "Job Title", "type": "text", "required": true },
{ "id": "start_date", "label": "Start Date", "type": "date", "required": true },
{ "id": "end_date", "label": "End Date", "type": "date", "required": false },
{ "id": "rating", "label": "Satisfaction","type": "rating", "ratingMax": 5 }
]
}Common Use Cases
- Expense line items with vendor, receipt date, currency, and amount columns
- Inventory counts where each SKU row shares the same field structure
- Conference schedules listing speakers, titles, durations, or rooms uniformly
- Monthly KPI trackers entered side-by-side for quick managerial review
- Volunteer signup sheets where each shift row repeats the same qualifiers