Core Concepts
Understand the fundamental concepts and terminology used in FormWork.
Before diving deep into FormWork, it’s helpful to understand the core concepts and how they relate to each other.
Hierarchy Overview
FormWork organizes data in a clear hierarchy:
Account
└── Projects
└── Forms
├── Form Versions
│ ├── Pages
│ │ └── Fields
│ └── Workflows
└── Entries
└── Answers
Accounts
An Account is the top-level container for all your FormWork data. It represents your organization or team.
- Each account has its own users and permissions
- Billing is managed at the account level
- API keys are scoped to accounts
Projects
Projects help you organize related forms together.
- Group forms by department, client, or purpose
- Control access at the project level
- Keep your workspace organized
Forms
A Form is the core entity in FormWork. Each form can have multiple versions and collects entries (submissions).
Form Types
FormWork supports three types of forms:
- Normal Forms - Standard forms for collecting data
- Data Tables - Structured data stores (like a spreadsheet)
- Metafields Forms - Internal fields attached to normal forms
Form Versions
FormWork uses versioning to manage changes to your forms safely.
Version States
- Draft - Work in progress, not visible to users
- Published - The current live version
- Archived - Previous versions kept for reference
How Versioning Works
- When you edit a form, you work on a draft version
- Publishing creates a new live version
- Existing entries retain their original version
- New entries use the published version
This ensures you can make changes without affecting in-progress submissions.
Pages
Forms can have multiple Pages to organize fields into logical steps.
- Create multi-step forms for better user experience
- Show progress indicators
- Navigate between pages
Fields
Fields are the building blocks of your forms. FormWork offers 20+ field types organized into categories:
Atomic Fields
Single-value inputs like text, email, number, date, select, etc.
Templated Fields
Pre-configured field groups like Name (first, middle, last) and Address.
Container Fields
Fields that contain other fields, like Groups.
Content Fields
Display-only elements like headings, paragraphs, and images.
Entries
An Entry represents a single form submission.
Entry States
- Draft - In-progress, not yet submitted
- Complete - Successfully submitted
- Processing - Being processed by workflows
- Error - Workflow encountered an error
Answers
Each entry contains Answers - the values submitted for each field.
Answers are stored in a flat map structure using Answer Paths:
"name" → "John Smith"
"email" → "[email protected]"
"address.street" → "123 Main St"
"address.city" → "New York"
"items[abc123].name" → "Widget"
"items[abc123].quantity" → 5
The path format supports:
- Simple fields:
field_id - Nested fields:
group_id.field_id - Repeater instances:
repeater_id[instance_id].field_id
Workflows
Workflows automate actions when certain events occur.
Triggers
Events that start a workflow:
- Form submitted
- Answer updated
- Entry created
- Button clicked
- API request received
- And more
Steps
Actions that execute in sequence:
- Calculate values
- Update fields
- Send emails
- Make API requests
- Create/update/delete entries
- Loop over collections
Connections
Steps connect via paths like next, true, false, or error to create branching logic.
References
FormWork uses a reference system to access data dynamically across the platform.
Reference format: source:identifier.path
Examples:
entry:current.answers.email- Current entry’s email answerform:abc123.fields.name- A form’s field definitiondata_table:products[sku="ABC"].price- Lookup from a data tableworkflow:step1.outputs.result- Output from a workflow step
References enable:
- Dynamic field defaults
- Conditional logic based on other values
- Workflow calculations and data access
- Data table lookups
Data Tables
Data Tables are structured data stores within FormWork.
Use cases:
- Dropdown option lists
- Lookup tables for calculations
- Reference data (countries, categories, products)
Data tables support:
- Multiple columns with typed data
- Row-level data storage
- Reference from forms and workflows
Metafields
Metafields are internal fields attached to a form for admin purposes.
- Not visible to form respondents
- Used for internal notes, status tracking, computed values
- Stored in a separate linked form
- Can trigger their own workflows