Almost every form you'll build in ActiveManage starts from a datastore — the platform auto-generates an HTML form by introspecting the datastore's fields. From there you can layer in conditional logic, custom validation, custom field types, and reusable rules to get exactly the experience you need.
The forms engine is one of the platform's most heavily-used features because every place a user inputs data ultimately renders as a form. Get comfortable with the engine and you'll be building rich, validated, branching forms without ever writing HTML.
What the forms engine gives you
Out of the box, every datastore comes with:
- Auto-generated New/Edit forms for every datastore, with no per-form template work needed.
- 50+ field types covering text, numbers, dates, files, signatures, geolocation, AJAX search, repeatable groups, and more.
- Conditional Forms — show/hide entire field groups based on a parent field's value.
- Custom Form Rules — fine-grained show/hide/required logic between any pair of fields.
- Dynamic Add Fields — repeatable sub-forms for one-to-many data (line items, multiple contacts, etc.).
- Custom validation rules attached to fields.
- User Input Views — multi-stage forms with approval workflows on top of the auto-generated form.
- API exposure — every form's underlying datastore is reachable via the API with the same validation applied.
Where forms live in the admin panel
Most form configuration is on the datastore itself — fields are added there. Beyond that, several form-specific admin areas exist under the Architect Panel → Forms category:
- Conditional Forms — reusable conditional field-group definitions.
- Custom Forms — bespoke form layouts when the auto-generated one isn't right.
- Dynamic Add Fields — repeatable sub-form definitions.
- Line Item Builders — specialised repeatable rows for invoice or order line items.
- User Input Views — multi-stage approval forms (with its own section in these docs).
How a form is composed
An ActiveManage form is made up of three kinds of building block:
1. Standard datastore fields
The bulk of every form — one input per field on the underlying datastore. The field's Field Type determines exactly what's rendered. See the Datastore Field Types section for a dedicated article on each.
2. Conditional fragments
Conditional Form fields render a dropdown where each option reveals its own sub-fields. Use them whenever the relevant set of inputs depends on a top-level pick ("Is Auto-Renew on?" → reveals an Auto-Renew Date when Yes).
3. Repeatable groups
Dynamic Add Fields and Line Item Builders render groups that the user can repeat — one for each address, contact, line item, etc. The platform handles adding, removing, and reordering rows.
Three real-world form layouts
Example 1: Simple contact capture
One datastore (contacts) with fields for name, email, phone, message. The auto-generated form is exactly right — no conditional logic, no repeatable sections, just five fields rendered in order. Done in 10 minutes.
Example 2: Multi-step purchase request
One datastore (purchase requests). A Conditional Form field at the top picks the request type (Office Supplies / IT Hardware / Software License) and each option reveals a different set of follow-on fields. A Line Item Builder at the bottom lets the requester add multiple items with quantity and unit price. Total cost auto-computed.
Example 3: Multi-stage approval workflow
One datastore (leave applications). The form is rendered as a User Input View — the requester fills in the basics at stage 1, the line manager reviews and approves at stage 2, HR records the leave at stage 3. Different fields are visible at each stage; different actions are available; different emails fire at each transition.

Tip: Start with the simplest form that works. The auto-generated form for a datastore is often good enough on its own — add Conditional Forms only when you genuinely need branching, add Dynamic Add Fields only when you need repeatable sub-groups. Resist the temptation to over-design; you can always add complexity later.


