Data Tables Overview
Store and manage structured data for use across your forms.
Data Tables provide structured data storage that can be referenced by forms and workflows. Use them for dropdown options, lookup values, reference data, and more.
What Are Data Tables?
Data Tables are like spreadsheets within FormWork:
- Columns define the structure (typed fields)
- Rows contain the data (entries)
- References allow access from forms and workflows
Unlike regular forms, data tables are designed for:
- Simpler structure (no nested groups)
- Lookup and reference operations
- Shared data across multiple forms
When to Use Data Tables
Dropdown Options
Manage dropdown lists that:
- Might change over time
- Are shared across forms
- Need to be maintained by non-developers
Example: Product categories, countries, departments
Lookup Values
Reference data for calculations:
- Pricing tiers
- Tax rates by region
- Discount schedules
Reference Data
Store related information:
- Product catalog
- Customer tiers
- Status definitions
Creating a Data Table
From the Dashboard
- Go to your project
- Click Data Tables tab
- Click New Data Table
- Enter a name
- Start adding columns
Adding Columns
Columns are similar to form fields:
- Click Add Column
- Choose column type
- Configure properties
- Save
Available Column Types
| Type | Description |
|---|---|
| Text | Single-line text |
| Number | Numeric values |
| Select | Dropdown selection |
| Toggle | Yes/No values |
| Date | Date values |
Column Properties
| Property | Description |
|---|---|
| Name | Column header |
| ID | Reference identifier |
| Type | Data type |
| Required | Must have value |
| Default | Default value |
Managing Data
Adding Rows
- Click Add Row or use the empty row at bottom
- Fill in cell values
- Data saves automatically
Editing Cells
- Click a cell to edit
- Tab to move between cells
- Enter to confirm and move down
Deleting Rows
- Select row(s) using checkboxes
- Click Delete
- Confirm deletion
Bulk Operations
Import/export for bulk changes:
- Export to CSV
- Edit in spreadsheet
- Import updated data
Data Table Structure
Internal Representation
Data tables are actually forms under the hood:
- Columns = Fields
- Rows = Entries
- Cells = Answers
This means they support:
- Entry IDs
- Timestamps
- The full API
Limitations
Data tables intentionally simplify:
- No nested fields (groups, repeaters)
- No conditional logic
- No validation rules
- No workflows
- No metafields
For complex data, use a regular form.
Referencing Data Tables
From Forms
Use as options data source:
{
"field_type": "select",
"options_data_source": {
"source_reference": "data_table:products.rows",
"label_reference": "name",
"value_reference": "id"
}
}
From Workflows
Look up values:
data_table:pricing[tier={{ entry.answers.tier }}].rate
Filter rows:
data_table:products[category="electronics"]
Best Practices
Naming Conventions
Use clear, consistent names:
product_categoriesnotcategories1pricing_tiersnotprices
Column IDs
Keep IDs stable:
- Use for references
- Changing breaks existing references
- Use underscores, lowercase
Data Maintenance
- Regularly review and clean data
- Document what each table is for
- Limit who can edit critical tables
Performance
- Keep tables focused (not too many columns)
- Archive unused rows
- Use specific columns in references