User support for every feature
Matches the Filament visual designer, public Livewire page, and submission inbox in v2.0.3. Items marked PRO require Form Builder Pro.
Builder UI
- Create wizard: 3-step flow — choose blank or template, pick a gallery template (Core + Pro), land on the visual designer.
- Visual designer: Drag-drop 3-panel layout (pages + palette / canvas / inspector) on the edit page.
- Content blocks (Core): heading, paragraph, divider, spacer, banner, image, video, footer, button, section container.
- Content blocks (Pro): social links, button group, custom HTML.
- Page chrome: header and footer slots repeat on every public page (Core blocks in header/footer zones).
- Thank you (Core): Card layout with editable blocks.
- Thank you (Pro): Review Card (hero, CTA band) and Connect / campaign layout (social cards, website button, auto-redirect).
- List: name + public path, layout badge, published icon, entries count, Open / Clone (Pro) / Edit / Delete.
- View form: public URL, schematic preview, analytics charts (Pro), submissions relation.
Settings fields
| Field | Behavior |
|---|---|
| Name | Required. Can auto-fill slug and public path. |
| Slug | Internal unique identifier (alpha-dash). |
| Public path | URL segment after the prefix. Unique; conflicts hashed. |
| Layout | single (Core) / wizard / tabs / pages / accordion (Pro). Live — changes section add/delete rules. |
| Description | Shown on the public page under the title. |
| Default label position | above, inline, below, inside (placeholder). |
| Published | Off = hidden from public URL. |
| Active | Off = also excluded from published scope. |
| Success message | Default: “Thanks — your response has been recorded.” |
| Redirect after submit | Must be a URL. Shown as a Continue link after success, not an automatic HTTP redirect. |
| Notify emails | Tags of addresses stored on the form (Pro). Package does not send mail — listen to FormSubmitted in the host. |
Layouts
| Layout | When to use | Validation | Sample seed |
|---|---|---|---|
| Single page | Short contact forms | All fields on submit | Contact Us — /forms/contact-us |
| Wizard | Multi-step with a progress bar | Current step on Next; all on last Submit | Event Registration |
| Tabs | Related groups without gating | All on Submit | Job Application |
| Pages | Surveys that should save drafts between screens | Same gates as wizard; “Save and continue” | Customer Feedback |
| Accordion | Collapsible sections on one screen | All on Submit | Pro template gallery |
Labels, overrides, and width
- Default label position on the form; each field can override.
- above — label then control (default).
- inline — CSS row layout on the public field.
- below — control then label.
- inside — no outer label; placeholder becomes the label text if placeholder is empty.
- Label override — runtime display label without changing the stored schema label (used by the public renderer, Filament preview, validation attributes, and submission display).
- Width — 1–12 of the grid; 12 is full, 6 is half. Always full width on small screens.
Field types
Same keys as Dynamic Fields when that package is present. Fallback list is in config.
| Type | Public control | Admin preview (Filament) | Validation default |
|---|---|---|---|
| text | text input (blur) | TextInput | string |
| email (blur) | email TextInput | ||
| phone | tel | tel TextInput | string |
| url | url | url TextInput | url |
| number | number | numeric TextInput | numeric |
| textarea | textarea; rows from meta (default 4) | Textarea or RichEditor if meta.use_editor | string |
| select | native select | Select | string; needs options |
| radio | radio group | Radio | needs options |
| multi_select | select multiple | Select multiple searchable | array |
| tags | text input, comma-separated (stored as array) | TagsInput with option suggestions | array |
| date | date | DatePicker | date |
| datetime | datetime-local | DateTimePicker | date |
| boolean / toggle | checkbox + label | Toggle | boolean |
| file | file input; optional multiple; “Uploading…” | FileUpload on form-builder disk | array |
Extra Laravel rules (TagsInput on the field) are merged uniquely. Conditional visibility uses meta.visible_when_field, visible_when_operator (empty / equals / not_equals; default equals), and visible_when_value (unused for empty) in the designer and on public forms. Equals/not-equal compare normalized scalars (booleans, tags, multi-select arrays). Empty treats null, blank strings, empty arrays, and false toggles as blank. Hidden fields are omitted from the DOM and skip required validation.
Option colors imported from Dynamic Fields are stored on schema options and painted on public tag badges, radio swatches, and select options (hex or named theme colors).
Public forms
- Self-contained CSS in the public layout (12-column grid, mobile stack).
- Progress bar + “Step N of M” for wizard and pages.
- Tab pills call
goToStep; jumping forward validates the current tab first (same as Next). Backward jumps stay free. - Only published+active forms; match on
base_pathorslug. - Logged-in users are stored on
user_idwhen Auth is present.
File uploads
- Livewire
WithFileUploads. Toggle Allow multiple files on the field (meta.multiple). - Stored under
form-submissions/{form_id}onFORM_BUILDER_FILE_DISK(defaultpublic). - Config
max_size_kbis 5120; Livewire’s own upload limits also apply (livewire.php/ php.ini). - Not Spatie Media Library (unlike Dynamic Fields file fields).
- Exports list original file names separated by semicolons.
Input masking PRO
Per-field masks on text, phone, and number types (not date/datetime pickers). Set meta.input_mask in the inspector:
- phone — formats as you type, e.g.
(555) 123-4567 - date —
MM/DD/YYYY - time —
HH:MM - currency —
$0.00
Public forms load a small mask script; stored values are the masked strings visitors entered.
Thank-you layouts
| Layout | Tier | Highlights |
|---|---|---|
| Card | Core | Default success message + editable content blocks |
| Review Card | Pro | Hero icon/image, header band, review CTA button, submit-another link |
| Connect | Pro | Campaign page with social link cards, website button, optional auto-redirect |
Exports
- CSV — Core; native
fputcsv. - XLSX — Pro; SpreadsheetML Excel.
- PDF — Pro; printable submission export.
- Headers: id, uuid, form, status, created_at, then each field name (or union of keys if exporting mixed forms).
- Arrays become comma-separated; file arrays become names joined with
;. - Audit log action
exportwith format, filename, count.
Submissions inbox
- Preview column: first two answered fields as an excerpt.
- UUID copyable, hidden by default.
- Analytics charts on the list and form view page (Pro).
- Empty state: “Publish the form and share its public URL…”
Import from custom fields PRO
Developer API copies definitions into the form schema (see Workflows). After import, edit the form in the builder as usual — it is a one-way snapshot.