Embedded forms: repeated multi-page entries
An Embedded form collects repeated entries through a separate child service. Each Add opens a new multi-page entry, and Save and return brings the person back to the parent list. Use it for entries such as qualifications, sites or previous employment that need several pages each.
Build the child before the parent component
- Create the child service in the same library. Add its question/conditional pages and an End Page to finish an entry.
- Match the parent and child's anonymous/sign-in setting.
- Add an Embedded form component to a parent input page and select the child service.
- Set a useful entry label using child answers, and the minimum/maximum counts.
- Test independent entries, Change, Remove and unfinished-entry validation.
Use a repeating Group for a short set of questions on one page. Do not reproduce multi-page entries with a cart, query-string editing loop or copied answer fields.
Embedded form settings reference
| Setting | Property | Default / behaviour |
|---|---|---|
| Child service | embeddedFormId | An existing service ID in the same library, with an End Page. |
| Minimum entries | embeddedFormMin | 0. A number or Liquid returning a whole number from 0 to 1,000. |
| Maximum entries | embeddedFormMax | 25. Whole number from 0 to 1,000, at least the minimum. |
| Entry label | embeddedFormLabel | Liquid evaluated with the child answers, for example {{ degreeTitle }} — {{ university }}. Plain text, up to 200 characters. |
| Add entry button text | embeddedFormAddLabel | Add an entry. |
| Save and return button text | embeddedFormReturnLabel | Save and return to the main form. |
| Include child answers in Response Hub | embeddedFormResponseHub | True. |
| Include child answers in JSON output | embeddedFormJson | False. Opts into expanded child answers at JSON reporting boundaries, not the interactive parent's Liquid context. |
Entry completion and restrictions
The parent requires completed entries and its configured minimum before continuing. Use minimum 1 if at least one entry is required; that does not establish that a particular category of entry exists.
Nested embedded services are supported, but cycles and placing an Embedded form inside a single-page repeating Group are forbidden. Patterns and managed Collection forms cannot be children; managed Collection forms cannot be parents. Children cannot collect a service payment, contain Review actions, or run End Page workflow/post-display actions or submission redirects. A paying parent can include completed child entries.
Use entries in a task list
Put the Embedded form page and its task-ending Check answers or overview page in one contiguous task. For an overview set isTaskOverviewPage="true" and use it as the task's end page. Create the task list after its pages exist. The parent still needs its final End Page and, where relevant, an End task.
Understand the saved data and release
The parent answer holds references such as {formId, submissionId, isClosed, label}. Child answers belong to their own journeys; do not expect entries[0].degreeTitle in parent Liquid.
Deploy children before parents to each real environment and check that embedded forms are enabled there. User view uses current Builder definitions. Test two entries, changing one after creating another, cancelled/confirmed removal, an unfinished entry, child conditional pages, nested repeats and parent task completion.
See Task-list services and Environments and deployments.
Production domains
The child must be available on the parent's service domain in Production. Check both services' custom-domain and cloud-domain access settings as well as matching sign-in modes; deploying the child alone does not guarantee this compatibility.
