Added
- Add a configurable field palette for the form builder, with drag-and-drop group and field organisation, per-field enable/disable, and optional palette label overrides. Replaces the legacy Disabled Field Types settings checkboxes. (#2209)
- Add a stock Form Preview slide-out in the form builder, rendering the current form with Formie’s default templates, CSS, and JavaScript. (#370)
- Add synced-field support for stencils, preserving shared definition links when creating new forms from a stencil. (#1677, #1734)
- Add stencil scopes so developers can ship starter forms in project config while content editors can create and manage their own stencils in the control panel. (#2814)
- Add project stencils (stored in
formie.stencilsproject config) alongside regular database-backed stencils, with handles unique across both scopes. - Add the
formie-accessStencilspermission for managing stencils in the control panel. - Add read-only viewing of project stencils when admin changes are disabled, with Save a copy to create an editable stencil.
- Add a Type column to the stencils index, showing Project for project stencils only.
- Add Form Groups for control panel organisation. (#1039, #662)
- Add a dedicated Settings → Defaults control panel page for form, field, and notification defaults. (#863)
- Add structured
formDefaults,fieldDefaults, andnotificationDefaultsplugin settings, applied when new forms, fields, and notifications are created. - Add
supportedDefaults()and schema extraction for field-type defaults, with Date, File Upload, Phone, Agree, Single-Line Text, Multi-Line Text, Email, Number, Hidden, Radio, Checkboxes, and element fields (Entries, Categories, Users, Tags, Products, Variants) as supported field types. - Add Field Defaults developer documentation for third-party field authors.
- Add schema-driven form and notification defaults extracted from the form builder and notification schemas, including a PDF template default for new notifications.
- Add captcha integration defaults for new forms and stencils via
integrationDefaults. - Add a migration to move legacy
defaultFileUploadVolume,defaultDateDisplayType,defaultDateValueOption, anddefaultDateTimesettings intofieldDefaults. - Track and display who created and last updated a form in the form builder Settings tab footer and as optional forms index columns. (Discussion #2342)
- Add submission UID to the control panel submission sidebar and as an optional submissions index column. (#2404)
- Add an Autocomplete setting to single-line and multi-line text fields in the form builder Settings tab, with a searchable list of HTML autocomplete tokens. (Discussion #2764)
- Document using
{env:FORMIE_*}environment variable tokens in notification recipient fields. (#2676) - Add an opt-in setting to disable the submit button until the current page passes validation. (#1514)
- Add a page setting to place the submit button at the end of the last field row. (#2542)
- Add regression tests for required File Upload fields submitted via GraphQL with base64 file data. (#1130)
- Add control panel submission field condition behaviour with plugin and per-form settings to follow, collapse, or ignore front-end field and page conditions when editing submissions. (#2435)
Changed
- Replace Settings → Fields disabled-field checkboxes with the new field palette editor.
- Move stencil management from Settings to Formie → Stencils, including create, edit, and index routes under
formie/stencils/*. Legacyformie/settings/stencils/*URLs redirect to the new paths. - Change Save as stencil from the form builder to always create an editable, database-backed stencil.
Fixed
- Fix legacy upgrade migrations failing on fresh Craft 5 installs that never had Craft’s
contentorformie_tokenstables. - Fix form usage counts and the form builder Usage tab omitting entries on disabled Craft sites. (#2612)
- Fix the form builder Usage tab not listing elements that reference a form on non-primary sites, including when Craft stores a relation without a specific
sourceSiteId. (#2695) - Prompt for confirmation when closing a field settings overlay with Escape (or backdrop/header close) only when the field has unsaved changes. Untouched new fields close immediately. (#2219)
- Fix dropdown field options not saving in the form builder when no default option is selected. (#2795)
- Validate literal email addresses in notification recipient settings so invalid addresses are caught when saving notifications. (#2712)
- Skip notification email attachments when the asset file cannot be read, instead of failing the entire send. (#2626)
- Fix replacing a deleted field with a new field using the same handle requiring a two-step save in the form builder. (#1854)
- Fix submit button conditions not applying on the front end. (#2568)
- Fix checkbox fields saving their default option values when explicitly unchecked on submit. (#2457)
- Fix missing page-list validation indicators in the form builder when a form has no pages. (#2786)
- Add a default country setting for Google Places address auto-complete fields. (#2721)
- Fix email notification preview failing when a recipient setting references a non-email field. (#2537)
- Add a configurable maximum email attachment size, and validate notification attach assets in the form builder. (#2697)
- Fix file upload validation allowing extensions such as
.jfifthat Craft cannot save as assets. (#2716) - Fix the Dutch translation mapping
AutotoAutomatisch, which incorrectly changed checkbox labels and values meaning “car”. (#2636) - Generate translatable date picker placeholders from the configured date and time formats when no custom placeholder is set. (#2464)
- Fix File Upload fields failing on submit when no upload location is set, by requiring the setting in the form builder and falling back to the plugin default volume when configured. (#2597)
- Fix Ajax and multi-page File Upload fields losing their uploaded-file summary after step navigation or when editing existing submissions. (#2742, #1856, #1910)
- Fix File Upload fields inside Repeater or Group fields not initializing upload persistence for nested inputs. (#1448)