FormWork supports repeatable fields and groups, including repeatable groups inside other groups. Use them when a respondent needs to enter an unknown number of related items, rather than squeezing each item into a fixed set of numbered fields.
Example: companies and their contacts
A client onboarding form might collect several companies, each with several contacts:
- A repeatable company group contains the company name and registration details.
- Inside each company, a repeatable contact group contains a person’s name and contact details.
- Respondents add as many companies and contacts as they need, within the minimum and maximum you set.
This is an implementation pattern, not a claim that a complete onboarding application is included. You still configure the fields, validation and the review process that follows.
Each item keeps its identity
Every repeated item has its own stable ID. Removing one contact doesn’t renumber the others, so calculations, automation steps and a custom interface keep referring to the same item.
The API represents answers as a flat map of paths to primitive JSON values. A repeated field has a path such as:
line_items[item_a].quantity
A nested field adds a level for each group, such as companies[c1].contacts[p2].email. Follow the exact answer format in the form structure documentation and API reference.
Working with the results
Use the For each step in automations to act on every item, inserting values and templates to show repeated answers in emails and PDFs, and the entry page to read a submission. Conditions and validation still need to be designed for the repeated structure.
Field IDs become part of answer paths, and the builder doesn’t let you change a field’s ID after you add it, so choose IDs carefully. Publish structural changes through drafts and publishing, and test integrations against representative nested answers.
See the data modelling article for the design rationale, or client onboarding for a practical walkthrough.