Heratio Help Center article. Category: Labels & Forms.
Forms Builder
User Guide
Create custom metadata entry forms tailored to your repository, collection type, or level of description using a visual drag-and-drop builder.
Overview
Key Features
- WHAT YOU CAN DO
-
- Create custom form templates
-
- Drag-and-drop field builder
-
- Multiple field types (text, date, select, etc.)
-
- Assign forms to repositories or description levels
-
- Clone and customize existing templates
-
- Import/export templates as JSON
-
- Pre-built templates (ISAD-G, Dublin Core, etc.)
-
- Form preview before deployment
-
- Draft auto-save functionality
How to Access
Dashboard Overview
The dashboard shows key statistics and quick links:
Statistics Cards
| 15 | 8 | 3 | 127 | |||
|---|---|---|---|---|---|---|
| Total | Active | Pending | Submissions | |||
| Templates | Assignments | Drafts | (30 days) |
Quick Links
- Templates - Create and manage form templates
- Assignments - Assign templates to repositories and levels
- Library - Browse pre-built templates
Managing Templates
Viewing Templates
Go to Admin > Form Templates > Templates
You will see a list of all templates:
| Name | Type | Fields | Status | Actions |
|---|---|---|---|---|
| ISAD-G | information_ | 8 | Active | Edit |
| Minimal | object | Settings | ||
| Clone | ||||
| Export | ||||
| Dublin | information_ | 15 | Active | Edit |
| Core | object | Settings | ||
| Clone | ||||
| Export |
Creating a New Template
- Click New Template
- Fill in the details:
- Name: A descriptive name (e.g., "Photo Collection Form")
- Description: Brief description of the form's purpose
- Form Type: Select the record type
- Information Object
- Accession
- Actor
- Repository
- Custom
- Layout: Single page or tabbed
- Click Create
- You will be taken to the Form Builder
Form Builder
The drag-and-drop interface for designing forms.
Layout
Adding Fields
Method 1: Drag and Drop
- Drag a field type from the left palette
- Drop it onto the form canvas
- The field appears in the form
Method 2: Heratio Fields
- Use pre-configured Heratio fields from the bottom palette
- These automatically map to the correct database fields
Field Types
| Type | Description | Use For |
|---|---|---|
| Text | Single-line text input | Titles, identifiers, names |
| Text Area | Multi-line text input | Short descriptions |
| Rich Text | Text editor with formatting | Scope and content, notes |
| Date | Single date picker | Specific dates |
| Date Range | Start and end dates | Date ranges (1990-2000) |
| Dropdown | Select one option | Level of description |
| Multi-Select | Select multiple options | Languages, subjects |
| Autocomplete | Type-ahead search | Creators, repositories |
| Checkbox | Yes/No toggle | Boolean options |
| Radio | Select one from list | Mutually exclusive options |
| File Upload | Attach files | Supporting documents |
| Heading | Section title | Organize form sections |
| Divider | Visual separator | Group related fields |
Editing Field Properties
- Click on a field in the canvas
- The properties panel shows on the right:
- FIELD PROPERTIES
- Label:
- [Title ]
- Field Name:
- [title ]
- (internal identifier)
- Help Text:
- [Enter the title of the ]
- [record ]
- Placeholder:
- [e.g., Meeting minutes ]
- Default Value:
- [ ]
- Required
- Read Only
- [Save Field]
Reordering Fields
- Click and hold the grip handle on a field
- Drag to the new position
- Drop to place
- Order is saved automatically
Deleting Fields
- Click the trash icon on a field
- Confirm deletion
- Field is removed from the form
Form Assignments
Assign templates to specific contexts so the right form appears for the right records.
How Assignment Works
Creating an Assignment
- Go to Admin > Form Templates > Assignments
- Click New Assignment
- Configure:
- CREATE ASSIGNMENT
- Template:
- [Photo Collection Form v]
- Repository:
- [Historical Society v]
- (leave blank for all)
- Level of Description:
- [Item v]
- (leave blank for all)
- Collection (optional):
- [ v]
- Priority: [100]
- (higher = more important)
- Apply to child records
- [Create Assignment]
Assignment Examples
| Scenario | Configuration |
|---|---|
| Default form for all records | No repository, no level |
| Form for specific repository | Select repository only |
| Form for Item level records | Select "Item" level only |
| Photo form for museum photos | Repository: Museum, Level: Item |
| Custom form for one collection | Select specific collection |
Template Library
Pre-built templates ready to use.
Available Templates
| Template | Description | Fields |
|---|---|---|
| ISAD-G Minimal | Essential ISAD(G) fields only | 8 |
| ISAD-G Full | Complete ISAD(G) with all 26 elements | 26 |
| Dublin Core Simple | Dublin Core 15 core elements | 15 |
| Accession Standard | Standard accession registration | 15 |
| Photo Collection Item | Specialized for photographs | 19 |
Using Library Templates
- Go to Admin > Form Templates > Library
- Browse available templates
- Click Install on desired template
- Template is added to your system
- Optionally clone and customize
Form Preview
Test how your form will look before deployment.
Previewing a Template
- From the Form Builder, click Preview
- See the form as users will see it:
Template Information Panel
The preview also shows:
- Template name and type
- Total field count
- Required vs optional fields
- Active/inactive status
Import and Export
Share templates between systems or create backups.
Exporting a Template
- Find the template in the list
- Click the Export (download) icon
- A JSON file downloads to your computer
Importing a Template
- Go to Admin > Form Templates
- Click Import
- Select your JSON file
- Optionally rename the template
- Click Import
- Template is created with all fields
CLI Export/Import
# Export a single template to file
php artisan ahg:forms-export --template-id=1 --output=my-template.json
# Export all templates of a given type
php artisan ahg:forms-export --type=information_object --output=io-forms.json
# Import templates from file
php artisan ahg:forms-import --file=my-template.json
# Import, auto-renaming to "<original> (imported)" to avoid name collisions
php artisan ahg:forms-import --file=template.json --rename
Auto-Save and Drafts
Forms automatically save work in progress.
How Auto-Save Works
Recovering a Draft
- Navigate to the record you were editing
- If a draft exists, you'll see a prompt:
- DRAFT FOUND
- A draft was saved on
- 2026-01-30 at 14:32
- [Restore Draft] [Discard]
- Click Restore Draft to continue editing
- Click Discard to start fresh
Listing Templates
Form templates are managed from the web UI at Admin > Form Templates
(/admin/formTemplates). The listing shows every template grouped by type, with
its field count, version, and whether it is a built-in [SYSTEM] template.
Open a template to view its fields, or the Assignments tab to see where it
applies. Use the type filter to narrow to a single entity type (for example
information_object).
Example Listing
=== Form Templates ===
Found 5 templates:
INFORMATION_OBJECT:
#1: ISAD-G Minimal [SYSTEM]
Fields: 8 | Version: 1
Minimal ISAD(G) compliant form
#2: ISAD-G Full [SYSTEM]
Fields: 26 | Version: 1
Complete ISAD(G) form with all elements
#3: Dublin Core Simple [SYSTEM]
Fields: 15 | Version: 1
#4: Photo Collection Item [SYSTEM]
Fields: 19 | Version: 1
ACCESSION:
#5: Accession Standard [SYSTEM]
Fields: 15 | Version: 1
Best Practices
Template Design
| DO | DON'T |
|---|---|
| Start with library templates | Create forms from scratch |
| when possible | unnecessarily |
| Group related fields with | Put all fields in one long |
| sections and tabs | form without organization |
| Mark only essential fields | Make every field required |
| as required | |
| Provide helpful help text | Leave help text empty |
| Use descriptive field names | Use generic names like |
| (photographer, date_taken) | (field1, field2) |
| Test with preview before | Deploy without testing |
| deployment |
Assignments
| DO | DON'T |
|---|---|
| Create specific assignments | Create many overlapping |
| for special cases | assignments |
| Use priority to control | Assume assignment order |
| which form wins | is predictable |
| Set a default template | Leave records without |
| as fallback | an applicable template |
Troubleshooting
Form Not Appearing
- Check assignment exists - Is there an assignment for this context?
- Check assignment is active - Is the assignment enabled?
- Check template is active - Is the template enabled?
- Check priority - Is another template taking precedence?
Fields Not Saving
- Check required fields - Are all required fields filled?
- Check validation - Does the data meet validation rules?
- Clear cache - Run
php artisan optimize:clear
Import Fails
- Check JSON format - Is the file valid JSON?
- Check file size - Large files may timeout
- Check permissions - Does the web server have write access?
Field Type Reference
Text Input
- Use for: Short text (titles, names, identifiers)
- Options: Placeholder, default value, max length
Text Area
- Use for: Longer text without formatting
- Options: Placeholder, rows, max length
Rich Text
- Use for: Formatted text (scope and content, notes)
- Options: Toolbar configuration
Date
- Use for: Single dates
- Options: Format, min/max date
Date Range
- Use for: Date spans (1990-2000)
- Options: Format, labels for start/end
Select (Dropdown)
- Use for: Choose one from list
- Options: List of options, default value
Multi-Select
- Use for: Choose multiple from list
- Options: List of options, min/max selections
Autocomplete
- Use for: Type-ahead search (actors, subjects)
- Options: Source (taxonomy, actor, repository)
Checkbox
- Use for: Yes/No options
- Options: Default checked state
Radio Buttons
- Use for: Choose one from visible options
- Options: List of options
File Upload
- Use for: Attach documents
- Options: Allowed types, max size
Heading
- Use for: Section titles
- Options: Level (h3, h4, h5)
Divider
- Use for: Visual separation
- Options: None
Need Help?
Contact your system administrator if you experience issues with the Forms Builder.
Part of the Heratio AHG Framework