Changelog

3.1.26 2026-05-19

Added

  • Add submissionEditToken to tighten submission editing requests.
  • Add missing Dutch translations for frontend JS strings.

Fixed

  • Fix sandboxed variable access for Formie object templates.

3.1.25 2026-05-14

Changed

  • Improve Payment handling for webhook-providers, and add extra logging.
  • Bump stripe/stripe-php.

Fixed

  • Fix GoCardless payments never completing the redirect flow or creating a mandate charge; the return URL now completes the flow, creates the payment, and polling/webhooks update status as before.

3.1.24 2026-05-10

Added

  • Add SubmissionsController:: EVENT_BEFORE_SUBMISSION_REQUEST_FORM event.

Fixed

  • Fix an issue with Hidden fields and evaluating Twig.
  • Fix a twig error when managing spam actions in a submission.
  • Fix Date/Time and date/time values and integration mapping values.
  • Fix asset permissions for rich text fields.

3.1.23 2026-05-03

Changed

  • Bump verbb/auth to allow firebase/php-jwt 7.x.

Fixed

  • Fix an issue with Attio when mapping to multi-select fields.
  • Fix an incompatibility with symfony/expression-language and contains.

3.1.22 2026-04-30

Added

  • Add support for “Redirect Entry” setting to be hyperlinked.
  • Add plugin setting to control the default order of the forms list in the submissions element index sidebar.
  • Add missing translations for the form builder.

Changed

  • Improve Address Country handling for exports and integrations.
  • Improve handling of JS modules and re-binding for multiple forms.
  • Loosen symfony/expression-language dependency.
  • Only build notification field summaries when {allFields}/etc appear, and harden globals/siteOverrides iteration.

Fixed

  • Fix a rendering issue when craft.formie.renderFormCss() was used, causing Formie’s JS not to work correctly.
  • Fix an issue with data loss for synced fields, specifically for sub-fields.
  • Fix integration cache and connection status.
  • Fix Mollie payment summary not showing in submission edit screen in control panel.
  • Fix an error with inner field validation (server-side) for Repeater fields.
  • Fix Base CSS not rendering variable-based styles correctly due to lack of CSS Variables.
  • Fix Friendly Captcha when initialized multiple times.

3.1.21 2026-04-16

Added

  • Add email variable to email notification templates, exposing the composed Craft mail message (including parsed subject).
  • Add missing translations for the form builder.

Fixed

  • Fix Date field normalization for single-value fields (like Year-only, etc).
  • Fix entry element integration field mapping for legacy IDs and nested groups.

3.1.20 2026-04-11

Added

  • Add PaymentSuccessRedirectEvent to manage the redirect for some payment providers.
  • Add optional “Paste as Plain Text” setting for Multi-Line Text fields using the front-end rich text editor.
  • Add support for cleanPaste for Tiptap rich text fields.
  • Add Dotdigital::EVENT_MODIFY_ADDRESS_BOOKS event.
  • Add note to DotDigital Address Book regarding List.
  • Add “Form” conditions for Form element source conditions.

Changed

  • Improve client-side handling of conditional page logic.

Fixed

  • Fix payment webhook redirects not allowing dynamic variables in the URL.
  • Fix an error when redirecting payments via webhooks.
  • Fix an issue for GoCardless and Mollie when their respective payment fields are hidden.
  • Fix Craft BaseRelationField check so entry integrations decode relation IDs from JSON strings.
  • Fix captchas and payments not working correctly in some cases, when combined, when additional client-side action was required.
  • Fix Captcha.eu front-end refresh handler for success.
  • Fix an issues with synced fields and shared content handling.
  • Fix an issue with Captcha.eu integration.
  • Fix Salesforce integration Date/Time values.
  • Fix GraphQL mutations leaking schema details.
  • Fix statuses not persisting correctly on first installation on new environments.

3.1.19 2026-03-28

Added

  • Add support for non-public asset uploading with HubSpot forms.
  • Add GraphQL variable support for CaptchaEu.

Fixed

  • Fix an issue with page-level conditions not treating conditionally hidden fields correctly in some cases.
  • Fix Table fields and their inner field required state for validation.
  • Fix encoding of < and > characters in field values.

3.1.18 2026-03-24

Fixed

  • Fix options-fields (particularly Checkboxes) settings their defaults when an empty value is submitted.
  • Fix field normalizer for some removed properties.
  • Fix an error for options-based fields not properly handling their value for dynamic Payment field amounts.
  • Fix Repeater field conditions evaluations not working with the correct serialized field values.
  • Fix visuals for single-option limited Phone fields.
  • Fix Stripe Submissions::EVENT_AFTER_SUBMISSION triggered on the wrong class.
  • Fix an error with Craft 5.8 and Forms/Submissions element fields.

3.1.17 2026-03-15

Added

  • Add status support for Freeform 5 submission migration.
  • Add “Block Free Email Providers” setting to Email fields.
  • Add the —update-title command argument to resave/submissions controller command.

Changed

  • Update Flatpickr UI to reflect Time Format settings (particularly for AM/PM).
  • Remove debug customer for Paddle.
  • Remove debug customer for Paddle.

Fixed

  • Fix Repeater field conditions evaluations not working with the correct serialized field values.
  • Fix an error with Stripe requests and invalid token handling.
  • Fix lack of support for scriptAttributes with Table/Repeater <script> elements.
  • Fix an issue with formie/gc/prune-data-retention-submissions to finding all available submissions.
  • Fix an error when saving field layouts for complex fields that might contain closures.
  • Fix ampersand encoding in field values.
  • Fix Forms and Submissions element fields not allowing hyperlink to elements.
  • Fix Forms and Submissions element fields allowing invalid view modes.
  • Fix handling of plugin checks for fields that require plugins (Commerce).
  • Fix an error when saving field layouts for complex fields that might contain closures.
  • Fix Freeform 5 migration not honoring current submission titles.
  • Fix an error when calling Submission::getValues().

3.1.16 2026-03-03

Added

  • Add support for Friendly Captcha v2 (opt-in).

Changed

  • Update ElementSelect Model from DOM nodes and respect DOM order.
  • Update Opayo API endpoints to align with latest API changes.

Fixed

  • Fix Group and Repeater email templates not filtering out conditionally-hidden inner fields.
  • Fix Repeater field conditions evaluations not working with the correct serialized field values.
  • Fix Group field conditions evaluations not working with the correct serialized field values.
  • Fix Date fields not populating their value correctly for conditions for some display types (inputs/dropdowns).
  • Fix an error for client-side validation not showing inline errors.
  • Fix showing “Public URL” as an Email Notification Value for File Upload fields when allowPublicVolumes was false.
  • Fix an error when trying to use element select modals within field edit and other Vue-based modals.
  • Fix an error during form plugin migrations where a backup could fail.
  • Fix an issue with Summary fields not always generating a valid handle.
  • Fix an issue with Section fields not always generating a valid handle.
  • Fix “Advanced” and “Templates” tabs for Email Notifications not working correctly when setting per-form user permissions.

3.1.15 2026-02-18

Changed

  • Updated Summary field AJAX requests to use escape values.
  • Bump verbb/auth.

3.1.14 2026-02-18

Changed

  • Updated Summary field AJAX requests to use submission UIDs.

3.1.13 2026-02-14

Fixed

  • Fix lack of sanitization of File Upload files, where the Upload Location subpath contained variables.

3.1.12 2026-02-13

Changed

  • Bump verbb/auth.
  • Update Phone number values sent to integrations to use E164 format over International.
  • Update Freshdesk “Phone” values to use international formatting.

Fixed

  • Fix Turnstile timeout issues with validation and submission state.
  • Fix an error when saving Web Request integrations.
  • Fix client-side validation for multi-page forms where validation become “live” before the final page submit.

3.1.11 2026-02-07

Added

  • Add CSRF_TOKEN to unload exception for front-end forms.
  • Add data-form-handle to <form> tag.
  • Add beforeInit for Phone field’s intl-tel-input JS library.

Changed

  • Bump verbb/auth.
  • Remove voku/anti-xss dependancy, and switch to HTMLPurifier.
  • Change user-related variables to always use the Submission’s “collected user” rather than the currently logged-in user.

Fixed

  • Fix session-based page management for the front-end not respecting the sessionKey render option.
  • Fix Phone field front-end not respecting countries set via Countries::EVENT_MODIFY_PHONE_COUNTRIES.
  • Fix Table field not acting correctly when set to “required”.
  • Fix Web Request integrations not setting the correct URL when migrated from previous Formie Webhook integration.
  • Fix session storage checks for web-driven Queue jobs.

3.1.10 2026-01-28

Fixed

  • Fix a Twig error introduced in Craft 5.9+ for some fields.
  • Fix an error for Freshdesk tickets.

3.1.9 2026-01-23

Added

  • Add allowPublicVolumes plugin setting to allow only showing private (non-public URL) asset volumes for File Upload fields.
  • Add extra log output when failing garbage collection jobs for submissions.

Changed

  • Improve client-side validation when using “live” validation mode (as the user types).
  • Improve Date field sub-field cleanup when toggling between display types.
  • Improve Name field sub-field cleanup when toggling between multi-name and single-name displays.
  • When pruning spam submissions in garbage collection, submissions are now hard-deleted.

Fixed

  • Fix form usage site/element table order.
  • Fix client-side validation using click events to evaluate.
  • Fix field handles not generating correctly when deleting and adding fields at the same time with the same handle.
  • Fix Date fields with default values not showing correctly in the form builder for various displayTypes.
  • Fix Formie 2 migation for Date fields for display type Dropdowns and Inputs not respecting their previously enabled sub-fields for date/time.
  • Fix Date field Dropdowns and Inputs display types not showing enabled sub-fields correctly in the form builder.
  • Fix Formie 2 migration for Date fields not working correctly for Inputs or Dropdowns.
  • Fix an error for integrations used across multiple forms, where different forms enabled different data objects, and mapping lost.
  • Fix Date/Time Dropdown Year validation.
  • Fix Date with Text Inputs submission after 3.1.7.
  • Fix field conditions not working correctly for content encrypted fields.
  • Fix incorrect handling of integration connected state.
  • Fix pruning spam submissions not working correctly.
  • Fix lack of success checks for garbage collection console commands.

3.1.8 2026-01-15

Fixed

  • Fix memory limits for garbage collection tasks.
  • Fix lack of console output for garbage collection tasks.
  • Fix an error when using Date/Time fields and populating or setting default values for calendar displays.
  • Fix an error handling email notification “from” values when also setting a “from name”.
  • Fix Make the url encoding keep the ampersand unencoded.

3.1.7 2026-01-13

Added

  • Add FieldValueInterface for model classes that represent the value of a field.
  • Add enableJsEvents and jsGtmEventOptions to PageSettingsInterface for GraphQL.
  • Add support for Formie Address Country to Craft Country field for Element integrations.

Changed

  • Update form import/export to be compatible with tempAssetUploadFs.
  • Change submission behaviour when editing in the control panel when form settings like scheduling is enabled.
  • Element integrations now handle array-like values for relation fields.

Fixed

  • Fix Date/Time fields for Dropdowns or Inputs not having their values treated consistently.
  • Fix compatibility with Craft 5.9+.
  • Fix element fields not showing their correct values in the submissions index in the control panel.
  • Fix an error with File Upload fields with Feed Me.
  • Fix unload warning for Snaptcha.
  • Fix an error where “From” email notification values weren’t always properly parsed.
  • Fix conditional logic handling for Repeater fields.
  • Fix an error with Date fields in Repeater fields failing Year restriction validation.
  • Fix number input fields in the form builder for Firefox.
  • Fix an error where “From” email notification values weren’t always properly parsed.
  • Fix Opayo and Moneris iframe event handling registration.
  • Fix an error for Opayo billing name mapping.
  • Fix overflow for IP Address values (particularly v6) when editing a submission in the control panel.
  • Fix Pardot integration JSON/XML responses.
  • Fix Pardot CRM base API URL.
  • Fix Zoho CRM base API URL.
  • Fix Pardot API scope.
  • Fix cache-handling for integration connections.
  • Fix deprecation error for log() calls.
  • Fix an error using OopSpam.

3.1.6 2025-11-29

Added

  • Add onFormieValidateError JS event for client-side error handling.
  • Add isNewSubmission argument to GraphQL mutation for submissions.
  • Add debug logging for reCAPTCHA responses.

Changed

  • Webhook-based payment integrations (Mollie, GoCardless) now properly fire integrations and notifications.
  • Improve front-end JS event management, to better deal with accidental multiple initialization of Formie’s JS in some setups.
  • Question captcha protects against validation when no questions are set.
  • Captchas for GraphQL mutations now don’t require a mandatory variables parameter to be named the same as their input type.

Fixed

  • Fix handling of integration settings when connecting.
  • Fix Date (Time-only) fields and validation handling.
  • Fix an issue with event-binding for front-end JS.
  • Fix an import form issue when updating an existing form, where notifications weren’t being treated correctly.
  • Fix Payment fields displaying in Summary field content by default.
  • Fix Date/Time fields not using min/max values for native date input for non-Flatpickr.
  • Fix synced fields overriding the required attribute.
  • Fix Name Prefix field not showing its value correctly in email notifications.
  • Fix Name Prefix field values not getting properly translated.
  • Fix an error for integrations used across multiple forms, where different forms enabled different data objects, and mapping lost.
  • Fix email notifications containing .env variables as conditions not working correctly.
  • Fix isNewSubmission flag for GraphQL mutations for submissions, causing multiple notifications to be sent when conditions exist and were met.
  • Fix mapping issues for Pipedrive Leads.
  • Fix an error with Ortto and fetching lists.
  • Fix HubSpot CRM integration handling of multi File Upload field values.
  • Fix HubSpot field mapping for form company fields.
  • Fix an error with handling Date field values (for date-picker fields) when in the control panel.
  • Fix Formie 2 email notification migration for fields used in conditions.
  • Fix an issue with Date fields, where the availableDaysOfWeek may not be typed correctly in some instances.
  • Fix an issue with ReCAPTCHA Enterprise validation.
  • Fix a 3DS processing issue for Moneris and Opayo in some setups.
  • Fix an error when programatically changing the available countries to a Countries field.
  • Fix Opayo, Stripe and Paddle Payment integrations incorrectly setting the Billing Address value for payments.
  • Fix some missing properties for Date fields when querying via GQL.
  • Fix some complex fields not having their error messages set when editing a submission in the control panel.
  • Fix fetching an email signature controller action using CSRF verification when it doesn’t need to.

3.1.5 2025-11-06

Added

  • Add support for Name field values to be normalized properly when switching between single or multiple fields.
  • Add handling for multi-site refresh-token front-end requests.
  • Add support for File Upload fields to have uploaded asset IDs returned in submission data for Ajax, and improve handling for Ajax forms.
  • Add dateDate and dateTime sub-field options to Theme Config for Date/Time field calendar display types.
  • Add “Payment Status” column to Submissions element index.

Changed

  • Improve support for Submissions and querying/ordering via custom fields.
  • Allow Name fields to be sortable for Submissions in the control panel.
  • Update Sender Email Marketing integration to latest API.
  • Client side validation is now in true “live” mode after an initial submit.
  • HTML fields now default to not showing their content in email notifications.
  • Date/Time fields with Flatpickr now use Craft’s default date/time picker when editing a submission in the control panel.
  • Improve CSRF token refreshing for multiple forms, particularly for new cookie sessions.
  • Update conditional logic evaluation in JS to default to input events when handling evaluation for most controls.
  • Update Date field templates to use proper Twig coercion.
  • Update EmailOctopus integration for V2 API.

Fixed

  • Fix an error when querying/ordering Name fields by their submission value.
  • Fix an error when using raw variables in email notifications for some fields.
  • Fix a Formie 3 and Events plugin 3 migration incompatibility.
  • Fix “is not empty” server-side conditional logic.
  • Fix client-side validation using aria-describedby and not aria-errormessage for accessible error messages.
  • Fix Question captcha not working correctly for invalid submissions for Ajax forms.
  • Fix Hubspot integration handling when dealing with “Submission Date” value mapped to Date fields in Hubspot.
  • Fix HTML field not showing content in email notifications.
  • Fix an error for File Upload fields contained within a Group or Repeater for Ajax forms.
  • Fix UI for “Mark as Complete” setting when editing a submission in the control panel.
  • Fix an error when trying to find nested field content for submissions.
  • Fix an issue for nested fields or sub-fields not passing parent field render options.
  • Fix “Upload Location” setting for File Upload field not being required.
  • Fix an issue with new Recipient fields and the “Email Value” setting.
  • Fix visual overflow issue for submission status dropdown in the control panel when editing a submission with a long status name.
  • Fix Snaptcha Captcha support for Ajax forms.
  • Fix a reactivity issue with Table field Default row values.
  • Fix an issue for element integrations, when mapping from Formie Date/Time field to Craft Time field.
  • Fix “is not empty” server-side conditional logic.
  • Fix an error with JS conditional logic for some fields.
  • Fix an issue with Table fields when setting their Default Values.
  • Fix an error when handling conditionally-hidden fields within Group fields, which also contained conditions.
  • Fix some email notification values not receiving raw values correctly.
  • Fix an error when saving submissions from the front-end anonymously.
  • Fix deprecation notice for Question captcha.
  • Fix lack of navigation for File Upload fields when editing submissions via the control panel.
  • Fix AM/PM handling for Date fields (Dropdown and Inputs).
  • Fix CSRF handling for multi-site installs with sub-directory setups.
  • Fix email notification conditional emails not being case-insensitive for matched emails.
  • Fix Date/Time field and Year dropdown offset negative values.
  • Fix Recipients field values not working correctly for some variables when needing raw values.
  • Fix Zapier integration response handling.
  • Fix serialization of element fields for integrations causing an infinite loop.
  • Fix Categories field sources not showing correctly.

3.1.4 2025-09-16

Added

  • Add the ability to bulk-edit submission content from the Submissions element index view.
  • Add handling for multi-site refresh-token front-end requests.
  • Add handling for deprecated field warnings when upgrading Formie with HARD_MODE enabled.

Changed

  • Update migration-mode check.
  • Update Element field’s visibility in the form builder when 1-2 sources are available.

Fixed

  • Fix Question captcha not working correctly.
  • Fix support for some Dynamics 365 fields (Memo) not appearing in mapping.
  • Fix an issue for redirect URLs when containing special (valid) characters.
  • Fix handling for Form Usage when linked elements contain fatal errors.
  • Fix an error when saving Element fields with specific elements picked.
  • Fix Categories field not showing sources correctly.

3.1.3 2025-09-02

Added

  • Add onFieldVisible and onFetchSummary JS events for the Summary field.
  • Add setPage to the Formie theme JS to set the page of a form client and server side.
  • Add Countries::EVENT_MODIFY_ADDRESS_COUNTRIES.

Changed

  • Update captcha front-end JS to better handle multi-page and multi-capture scenarios.
  • Update Monday integration to use new Contries service.
  • Changed the Address Country field getCountryOptions() function to no longer be static.
  • Changed the Phone field getCountryOptions() function to no longer be static.
  • Deprecated AddressCountry::EVENT_MODIFY_COUNTRY_OPTIONS event.
  • Renamed verbb\formie\services\Phone to verbb\formie\services\Countries.

Fixed

  • Fix handling of word-count function to better handle special characters in words.
  • Fix File Upload field not working correctly when editing a submission in the control panel.
  • Fix Formie 2.x to 3.x migration for Sub Fields within a Group or Repeater fields not migrating correctly.
  • Fix an issue when trying to filter Checkboxes fields by their submission value or via GraphQL.
  • Fix options fields not having their “Email Notification Value” set correctly.
  • Fix Recipients field throwing an error when used in email notifications for Dropdown display type.
  • Fix an encoding issue for some fields when used in email notifications.
  • Fix Stripe integration setting missing Redirect URI.
  • Fix an error with File Upload and Repeater field combinations, when using min/max row validation.
  • Fix Pipedrive integration not handling updating person records via email correctly.
  • Fix an error for the Monday integration when mapping to Checkbox fields.
  • Fix Entry element integration not working correctly for multiple authors.
  • Fix File Upload fields not working correctly for multi-page Ajax forms.
  • Fix support for Date field validation for Ajax based forms.
  • Fix incorrect handling of default values for Date fields.
  • Fix an error for Monday integration when mapping to a Country field.
  • Fix Name Prefix values in email previews, when customising options.
  • Fix Google Sheets integration.

3.1.2 2025-08-12

Added

  • Add clarification to Salesforce “Use Credentials” setting.
  • Add AddressCountry::EVENT_MODIFY_COUNTRY_OPTIONS event.
  • Add captcha Theme Config key.
  • Add support for multiple authors for Entry element integration.

Changed

  • Update import/export description for forms.
  • Update Summary field for Ajax forms to refresh whenever they are visibly shown.
  • Allow Question captcha HTML to be modified via template overrides.
  • Allow email templates to make use of renderOptions.hideName for field labels in email content.

Fixed

  • Fix HubSpot Form Field Mapping for Ticket fields.
  • Fix an error for User integrations and the address field check.
  • Fix Google Address autocomplete handling of saved/existing values.
  • Fix description for Cloudflare Turnstile captcha integration.
  • Fix migration issue from Formie 2 for integration opt-in field settings.
  • Fix Address Country sub-field not displaying correctly in email notifications.
  • Fix an error when saving an Address field with no auto-complete integration set.
  • Fix handling of some legacy field settings for older Formie installs or outdated stencils.
  • Fix new fields when added to the form builder not having their defaults set correctly.
  • Fix Forms field not working correctly for UIDs.
  • Fix an error for Date fields for display type Dropdowns.
  • Fix type mismatch when processing defaultValue for Date/Time fields.
  • Fix Question captcha rendering issues.
  • Fix an issue with Question captcha form settings and the “Security Question” setting.
  • Fix the Cloudflare Turnstile captcha description.

3.1.1 2025-07-22

Added

  • Add support for element fields’ querying with :notempty: or :empty:.

Fixed

  • Fix incorrect handling of system settings for email notifications on non multi-site installs.
  • Fix some payment integrations being unable to select fields for dynamic amount.
  • Fix extra-small lightswitch visual bug.
  • Fix an error when loading some captcha settings for a form (Friendly Captcha, hCpatcha, reCaptcha, Turnstile).
  • Fix submission querying for Craft 5.8+.

3.1.0 2025-07-22

Added

  • Add Automation, Help Desk and Messaging integration types.
  • Add PlaceKit Address Provider integration.
  • Add n8n Automation integration.
  • Add Make Automation integration.
  • Add IFTTT Automation integration.
  • Add Akismet Captcha integration.
  • Add Captcha.eu Captcha integration.
  • Add CleanTalk Captcha integration.
  • Add OOPSpam Captcha integration.
  • Add Question Captcha integration.
  • Add Attio CRM integration.
  • Add CiviCRM integration.
  • Add Flowlu CRM integration.
  • Add Marketo CRM Integration.
  • Add NoCRM integration.
  • Add Outseta CRM integration.
  • Add Procurios CRM Integration.
  • Add Salesmate CRM integration.
  • Add SuiteCRM CRM Integration.
  • Add Xero CRM Integration.
  • Add Events Element Integration.
  • Add Beehiiv Email Marketing integration.
  • Add CleverReach Email Marketing Integration.
  • Add Customer.io Email Marketing integration.
  • Add Ecomail Email Marketing integration.
  • Add Mailcoach Email Marketing integration.
  • Add Ortto Email Marketing integration.
  • Add Vero Email Marketing integration.
  • Add Front Help Desk Integration.
  • Add Gorgias Help Desk integration.
  • Add Help Scout Help Desk Integration.
  • Add Intercom Help Desk Integration.
  • Add LiveChat Help Desk Integration.
  • Add Zendesk Help Desk integration.
  • Add BPOINT Payment integration.
  • Add Eway Payment integration.
  • Add GoCardless Payment integration.
  • Add Mollie Payment integration.
  • Add Moneris Payment integration.
  • Add Paddle Payment integration.
  • Add Square Payment integration.
  • Add Discord Messaging integration.
  • Add Plivo Messaging integration.
  • Add Telegram Messaging integration.
  • Add Twilio Messaging integration.
  • Add ClickUp Miscellaneous integration.
  • Add Commerce Product Element integration (for single-variant products).
  • Add Ticket object support to HubSpot CRM integration.
  • Add Integration::beforeSaveForm() and Integration::defineClient().
  • Add spam reason for Friendly Captcha when missing client-side token.
  • Add integration front-end JS provider classes as separate exports to include in your own code.
  • Add “is visible” and “is hidden” field conditions.
  • Add parent field information to form builder for conditions.
  • Add the ability to map to “Dependant Fields” for HubSpot integrations.
  • Add the ability to set Address values for User element integrations.
  • Add SharpSpring tracking data when mapping to a native form.
  • Add the ability for Elements fields to set specific elements as available to be picked from.
  • Add support for Date fields to set their Year Range start setting to a negative value to offset from the current year.
  • Add “Progress Value Position” form setting to control where the percentage value for page process sits.
  • Add the ability to mark an incomplete submission as complete in the control panel.
  • Add body variable as alias to contentHtml for email notifications, to be compatible with Craft email templates.
  • Add support for “Layout” setting for Element fields, when displayed as Checkboxes or Radio Buttons.
  • Add outputConsoleMessages plugin setting to prevent CSRF token refresh console.log messages.
  • Add support for form submissions to be limited by IP address.
  • Add JS event modifyAjaxClient to modify the XHR client used for Ajax requests.
  • Add JS event modifyScriptUrl to modify the CDN scripts for Phone and Date Picker libraries.

Changed

  • Re-organise form builder field categories.
  • Rename Webhook integration to Web Request, and add more options for request settings.
  • Move Slack and Telegram to Messaging integrations.
  • Move Freshdesk, Gorgias and Zendesk to Help Desk integrations.
  • Webhook integrations are now Automation integrations.
  • Captcha integrations now no longer pre-select the first available type when editing.
  • Re-order Captcha integrations alphabetically.
  • Integrations can now control any required plugins.
  • Captchas can now opt to validate earlier in the submission process, and prevent submission saving (like a field would).
  • Form integration settings now no longer need to be saved when fetching new data/refreshing data.
  • Improve integration success/fail feedback in the form builder.
  • Integration settings pages have been re-worked with multiple tabs and an external docs link to instructions.
  • Update spam keywords rules to new definition syntax.
  • Update Phone field, no longer using CDN for utils and flag icons, updated look and feel.
  • Update the intl-tel-input package for Phone field validation and handling.
  • Change scroll-to-top behaviour to handle non-top level forms (in modal).
  • Allow Radio Buttons and Checkboxes field option labels to include HTML (safe) or Markdown.
  • Update Checkboxes and Radio Buttons fields to not show invalid label positions to select.
  • Hidden or Disabled fields now have a visual indicator in the form builder.
  • Google Sheets integration can now have their Spreadsheet ID set per-form.

Fixed

  • Fix NestedFieldRow elements not being garbage collected properly for deleted submissions.
  • Fix Date field Year Range offsets not using the current year.
  • Fix Phone field flag in the form builder.
  • Fix Address field’s Autocomplete integration setting not validating correctly.

Deprecated

  • Deprecated Automation::getWebhookUrl(). Use Automation::getEndpointUrl() instead.

Removed

  • Removed “Webhook URL” plugin setting from Webhook integration (still available per-form).
  • Integration docs are no longer provided within Formie, instead visit the docs.

3.0.32 2025-07-18

Added

  • Add the ability to set cssAttributes when rendering form CSS.
  • Add support for proper search index handling for submission fields.
  • Add support for Salesforce integration for Leads, for task creation on duplicate, to use the Lead ID by default.
  • Add warning text for File Upload fields, when uploading to a filesystem with public URLs.

Changed

  • Update English translations.
  • Improve error handling for Dynamics 365 with regards to entity permissions.
  • Update Recaptcha server-side verification to use recaptcha.net for better availability.

Fixed

  • Fix phone field value encryption.
  • Fix cosmetic fields in emails, improve Phone encrypted values in email, and improve sub-field email placeholder values.
  • Fix Submission search handling for cosmetic or long field handles.
  • Fix support for site-specific email settings for email notifications.
  • Fix cosmetic fields not showing in email notifications.
  • Fix typecast of Pipedrive “Owner ID” value.
  • Fix Form element fields using IDs for source settings.
  • Fix cosmetic fields not showing in email notifications.
  • Fix an error for empty encrypted Phone Number fields.
  • Fix an issue with Friendly Captcha for Ajax forms with Start Mode = Auto.
  • Fix Signature field output in emails for multi-site installs.
  • Fix incorrect type for “Submission Date” when mapping to integrations.

3.0.31 2025-07-03

Changed

  • Update front-end validation to show a error state of sub-fields correctly.

Fixed

  • Fix an error for Campaign integration when running via the queue.
  • Fix an error for the Calculations field, when formatting as a number and using non-numeric fields in the formula.
  • Fix an error when trying to determine a submissions status in some instances.
  • Fix some fields not working correctly with content encryption.
  • Fix an error for some fields that contained a supportsNested reference from Formie 2.
  • Fix GraphQL queries for submissions in Craft 5.8+.
  • Fix support for Craft 5.8.

3.0.30 2025-06-18

Added

  • Add “is empty” and “is not empty” to field and notification conditions.
  • Add “Site Name” and “Site Handle” to conditions builders.
  • Add multi-site support for form usage.

Changed

  • Update Google Places Address Provider to remove deprecated google.maps.places.Autocomplete component.
  • Update submission logging to use info rather than error category, to prevent error handlers from picking up form validation errors.
  • Improve performance of exporting submissions.
  • Submit buttons on the front-end for forms now get a data-loading attribute set when clicked.
  • Improve scroll-to-error behaviour for some browsers/front-end setups.

Fixed

  • Fix an error when running integrations with no Guzzle client.
  • Fix an error for variable tag rich text nodes in some instances.
  • Fix an error for Entry Element integrations and defaultAuthorId when set from a Stencil.
  • Fix Calculations field parsing Markdown content.
  • Fix Single and Multi Line field character/word limits server-side logic to better handle HTML.
  • Fix submission titles and special characters.
  • Fix element chips and quick-edit handling for Submission and Form elements in the control panel.
  • Fix limit and decimals missing from Number field GraphQL queries.
  • Fix an error for Feed Me feeds.
  • Fix legacy section/type for Entry element integration.

3.0.29 2025-06-05

Added

  • Add trace logging to element integration failures.

Fixed

  • Fix “back” button in some instances where session data tracking the current page of a form isn’t handled correctly.
  • Fix Recaptcha success logging.
  • Fix an error when running element integrations via the queue.
  • Fix a client-side validation error for required values when including whitespace characters.
  • Fix legacy section/type for Entry element integration.
  • Fix Integration::log() deprecation error notice.
  • Fix an error for Element integrations when mapping a Formie options field to a Craft options field.

3.0.28 2025-05-20

Added

  • Add support for Freeform 5 Group field in migration.
  • Add extra logging for reCaptcha failures.
  • Add more payload context for failed queue jobs.
  • Add endpoint and method to payload property for failed queue jobs for context.
  • Add German translation for Signature Field.
  • Add code to countryOptions property for Phone fields in GraphQL.

Fixed

  • Fix an error with some Payment field providers when resubmitting the form after payment.
  • Fix an issue for Payment fields when a client-side error occured.
  • Fix Date field handling of min/max dates on statically caches sites when using offsets.
  • Fix an error validating minimum words limit for Multi-Line and Single-Line text fields.
  • Fix Freeform 5 migration and Hidden fields.
  • Fix an error with Freeform/Sprout Forms migrations and submission statuses.
  • Fix an error for Element integrations when mapping a Formie options field to a Craft options field.
  • Fix new installs not having the default plugin data set.
  • Fix Checkboxes field missing limitOptions, min, max, toggleCheckbox and toggleCheckboxLabel properties in GraphQL queries.
  • Fix Freeform 5 migration for HTML and Rich Text fields.
  • Fix incorrect handling of serializing failed queue jobs.
  • Fix Calculations field parsing Markdown content.
  • Fix an error parsing Calculations fields’ formula containing decimals.
  • Fix an error with Pipedrive, when only enabling Leads.

3.0.27 2025-04-29

Changed

  • Update Salesforce CRM integration attachment handling.
  • Ensure full errors are logged for integrations. (thanks @boboldehampsink).

Fixed

  • Fix a timezone issue with Date fields when setting a min/max date relative to today.
  • Fix PDF handling for Craft Cloud.
  • Fix StringHelper::cleanString handling.
  • Fix JavaScript errors when managing theme config classes.
  • Fix an error for payment fields when removing alert classes via Theme Config.
  • Fix typo with RegisterDateTimeFormatOptionsEvent. (thanks @jamesmacwhite).
  • Fix an issue when using conditions to filter submissions.
  • Fix an error on Craft Cloud when a failed queue job’s payload couldn’t be updated on a queue job.
  • Fix Formie 2 migration where form titles could be null in some circumstances.
  • Fix an error with User element integration when activating users.
  • Fix issue with custom Lead fields in Copper. (thanks @antcooper).
  • Fix an error when upgrading to Craft 5 and the m250315_131608_unlimited_authors Craft migration.

3.0.26 2025-04-22

Fixed

  • Fix parsing of email notification content and HTML.
  • Fix 1CRM integration not querying existing data objects correctly.
  • Fix an error when viewing submissions in element fields for Craft 5.7+.
  • Fix an error with submissionsBehaviour.

3.0.25 2025-04-16

Added

  • Add craft.formie.setRenderVariables().

Changed

  • Update JavaScript Captcha to use render variables for script attributes.
  • Change “Default Submissions State” setting to accept multiple values for states.
  • Change “Recent Submissions” dashboard widget table layout to list for better visual layout.

Fixed

  • Fix lightswitch UI for Craft 5.7+

3.0.24 2025-04-11

Fixed

  • Fix support for Craft 5.7+.

3.0.23 2025-04-11

Added

  • Add extra logging to Opayo payment failures.
  • Add the ability to assign a Campaign to a Contact/Lead/Account in Salesforce.
  • Add support for filtering submissions by fields in the control panel.
  • Add the ability for HTML fields to reference render options via Twig in their content.
  • Add the ability to provide submission query arguments for fields, for GraphQL.
  • Add Field::EVENT_MODIFY_VALUE_FOR_VARIABLE.
  • Add the ability to set the permissions of newly-created forms for users that have limited form access.

Change

  • Improve performance of submission editing screen in the control panel.
  • Improve performance of submissions element index in the control panel.
  • Improve field layout error output for nested fields and failed validation, which now references the page handle, field handle and any parent field handle.
  • Update deprecated log() function.
  • Move Field::getValueForVariable to Field::defineValueForVariable.

Fixed

  • Fix submissionEndpoint GraphQL property.
  • Fix an error for Phone fields, when initializing the form’s JS multiple times.
  • Fix payment field race condition when initializing form JS multiple times with conditions.
  • Fix an error with Opayo and billing email.
  • Fix an XSS vulnerability for importing forms with manipulated field content.
  • Fix an XSS vulnerability for email notification content.
  • Fix support for Craft 5.7+.
  • Fix submission titles displaying incorrectly when referencing some fields in their content.
  • Fix Agree field not rendering its empty value correctly in email notifications.
  • Fix email notifications not rendering empty valued fields correctly.
  • Fix Pardot integration not working correctly. (thanks @mirego).
  • Fix sub-field fields not having their label correctly set in some instances when upgrading to Formie 3.
  • Fix an error with Summary and Section fields for Formie 3 upgrades.
  • Fix large field settings throwing an error (particularly for Formie 3 upgrades).

3.0.22 2025-03-27

Added

  • Add Submission Date to some field mapping controls.
  • Add support for Recipients field to set the “Email Notification Value”.
  • Add back Field::EVENT_MODIFY_VALUE_FOR_EMAIL events to modify the value used in Email Notifications.
  • Add SubmissionEvent::forceRedirect option for events to force a redirect on form submission.
  • Add Form::setRedirectEntry().
  • Add the ability to pass arguments to templateJs for GraphQL queries to control JS initialization.

Changed

  • Improve performance of form usage for large sites and content structures.
  • Improve Submission export performance, by removing eager-loading non Formie fields.
  • Update Field::defineValueForEmail to return the raw value for the field, rather than the string-representation of the value.
  • Updated Feed Me integration for submissions to list forms in alphabetical order.
  • Update GraphQL resolvers to use ElementCollection correctly.

Fixed

  • Fix some errors with Submissions widget for invalid dates and weekStartDay user settings.
  • Fix an error when importing a form, made from an export from the Forms element index.
  • Fix HubSpot GDPR processing when not enabled.
  • Fix an issue with Iterable integration field mapping.
  • Fix some fields not having their default values set correctly.
  • Fix an error when importing a Formie 2.x export.
  • Fix an issue where the row’s empty state wasn’t updated for nested or sub-fields using conditions.
  • Fix an error when trying to query Form Template fields for a form with GraphQL.
  • Fix Nested Fields not having their summary field values reporting correctly (value as string, json, exports, summary).
  • Fix Stripe dynamic amount not processing currency values.
  • Fix providerSettings when querying Payment fields in GraphQL.
  • Fix an error with Payment fields when viewing a submission in the control panel in some instances.
  • Fix a race condition for Repeater fields when set to use a minimum number of instances.
  • Fix Feed Me being able to map to cosmetic fields.
  • Fix an error for Feed Me when mapping to element fields.
  • Fix a display error when only “Fields” tab is available for editing, when editing a form.
  • Fix an issue where a form’s UID could be out of sync.
  • Fix redirect override when setting via the EVENT_AFTER_SUBMISSION_REQUEST event.
  • Fix an error where fields and rows were being incorrectly filtered when rendering a form multiple times.
  • Fix when new Forms are created from a Stencil, their enabled captchas not being respected.

Removed

  • Remove unused “Column Type” setting from Hidden fields.

3.0.21 2025-03-04

Added

  • Add “Message Type” to Iterable CRM integration.
  • Add the ability for IntegrationField’s to contain static data in their definitions.
  • Add support for Table field to use id or name values when defining a row schema.
  • Add “Attach File Uploads” for all data objects for Salesforce integration.

Changed

  • Improve Hubspot GDPR handling for marketing and processing options.
  • Update Monday integration instructions.

Fixed

  • Fix Agree field not allowing null value as an empty state indicator.
  • Fix Agree field markup to match correct accessibility guidelines.
  • Fix Hubspot GDPR handling.
  • Fix Monday integration connection requests.
  • Fix an error when applying Formie-related project config when uninstalled.
  • Fix Phone number fields flag icons in the form builder.
  • Fix form usage throwing errors in some instances.
  • Fix an error determining the default status for a submission, if none are set.
  • Fix an error with Email Notifications when no valid fields could be found to be included in the email content.
  • Fix Form Template setting not persisting for Stencils.
  • Fix an error for captchas not rendering if the captcha placeholder was visually obscured.
  • Fix Address and Multi-Name fields not working correctly when populating their field content.
  • Fix Calculations field variables not being set correctly, when referencing other fields.
  • Fix handling for some integrations where session data isn’t being persisted when connecting via OAuth.
  • Fix server-side error messages for Repeater fields.
  • Fix an error for File Upload fields with GraphQL, when min/max size limits were set.
  • Fix a display issue for forms with multiple payment fields with the same integration.
  • Fix payment summary display when editing a submission for Craft 5.6+.
  • Fix multiple Payment fields not validating correctly when re-initializing the fields’ JS.
  • Fix Phone Number server-side validation error.
  • Fix an error with Stripe payments for subscriptions when including a payment receipt.

3.0.20 2025-02-02

Added

  • Add Submission::getFormHandle().

Changed

  • Refactor queue jobs to provide better feedback on errors and logging data.
  • Improve queue job feedback on error to include the payload being sent.

Fixed

  • Fix an error with Group and Repeater fields with required File Upload fields on multi-page Ajax forms.
  • Fix Group and Repeater fields not respecting “Include in Email Notifications” setting and conditionally hidden fields in email notifications.
  • Remove incorrect Campaign = Kampagne German translation for the Campaign plugin.
  • Fix Single-Line text fields in the control panel not showing limit details correctly.
  • Fix Multi-Line text fields in the control panel not showing limit details correctly.
  • Fix new email notifications not having the conditions logic set correctly.
  • Fix email notification queue job causing an infinite loop in some scenarios, and provide better logging feedback.
  • Fix an error in Craft 5.6+ where fields’ queryCondition() function wasn’t being called.
  • Fix some sidebar elements not displaying correctly when editing submissions in the control panel on Craft 5.6+.

3.0.19 2025-01-24

Changed

  • The intl-tel-input for Phone number fields no longer lazy-loads it’s utilities script.
  • Update intl-tel-input for the latest number validation handling.
  • Fields in email notification content, when referenced via their variable tag now no longer show their “no response” placeholder text. These still exist for grouped content like “All Fields”.

Fixed

  • Fix incorrectly bundled intl-tel-input version.
  • Fix some string content not being escaped properly.
  • Fix Freeform 5 migration for success behaviour.
  • Fix default value for Date field not being set correctly.
  • Fix File Upload handling for some database engines (MariaDB).
  • Fix an error with Entry element integrations when updating values.
  • Fix email notifications table when columns contained long variable tags.
  • Fix incorrect logic when calling Notifications::getFormNotificationByHandle().

3.0.18 2025-01-17

Added

  • Add support for inline CSS for some string content (Multi-Line Rich Text content).
  • Add Variables::EVENT_PARSE_VARIABLES to allow you to parse custom registered variables.

Fixed

  • Fix reCAPTCHA Enterprise and score validation.
  • Fix Dropdown and Input Date fields not saving correctly.
  • Fix content errors with File Upload fields and MariaDB installs.
  • Fix TableInput Vue component not respecting initialValue values.
  • Fix a migration from Formie 2 for Email fields with Blocked Domains setting.

3.0.17 2025-01-13

Added

  • Add contentType to email attachments.
  • Add theme config options for Table field inner field inputs.
  • Add Element::EVENT_MODIFY_ELEMENT_MATCH event to control behaviour for Element integrations and matching an existing element.
  • Add filterIntegrationMapping plugin setting to opt out of automatic filtering of integration mapping values.

Changed

  • Table field column templates are now split into separate files for easier overriding.
  • Improve JS source map filesize.

Fixed

  • Fix signature field image matching on existing field, in some instances.
  • Fix email notifications not correctly saving conditional recipients.
  • Fix an error with migrating forms from Freeform 5.
  • Fix Freeform 5 migration for some invalid field handles.
  • Fix Freeform migration console commands.
  • Fix some special unicode characters being stripped out of some text values for text-based fields.
  • Fix Date fields and the “Available Days” setting not working correctly.
  • Fix Entry element integration “Update Element Mapping” values being blank.
  • Fix an error when setting a form template with required fields and validation handling.
  • Fix a Formie 2 migration error for Calculation fields.
  • Fix an error with some OAuth integrations and refresh token scopes..
  • Fix Stencils incorrectly saving nested field layout data for sub-fields.
  • Fix Entry element integration “Update Element Mapping” values.
  • Fix Date fields (Simple) not providing the correct variable picker token for email notifications.
  • Fix email notification “Send Test Email” button visual issue.
  • Fix an error with Entry element integrations.
  • Fix an issue with multi-page forms with session management in some browsers.
  • Fix Formie 2 > 3 migration not retaining Form Template custom field values for forms.

3.0.16 2024-12-27

Added

  • Add context property for integrations to record extra data at submission time.
  • Add support for Pardot tracking cookies for Form Handler.
  • Add support for field conditions to use non-field conditions such as status.

Fixed

  • Fix any serialized MissingField classes not being converted back when the field is no longer missing.
  • Fix an error importing forms and nested fields not retaining their submission content.
  • Fix Dropdown and Checkboxes not validating correctly when in a nested field.
  • Fix Db::prepareForJsonColumn deprecation and handling.
  • Fix an error with Usage tab when Formie forms are referenced in a Neo block.
  • Fix Freeform 4/5 migration. (thanks @ThomasDeMarez).

3.0.15 2024-12-17

Added

  • Add more comprehensive logging for user element integration.
  • Provide Freeform 4 and Freeform 5 migrations.
  • Add “Site” to conditions builders.

Changed

  • Update Freeform migration to support Freeform 5+.

Fixed

  • Fix not restoring trashed stencils when applying from project config.
  • Fix form export not exporting number values correctly.
  • Fix email notification file attachments not working correctly in some instances with sub-paths configured.
  • Fix an error with client-side validation not clearing validation errors when rectified for some HTML elements.
  • Fix an error with Pardot integration and requests.
  • Fix an error when submissions had invalid content.
  • Fix not restoring trashed stencils when applying from project config.
  • Fix dynamic field settings not being applied to fields when editing a submission.
  • Fix a validation error for Name fields in some languages where the Prefix options contained duplicate labels.
  • Fix Name fields not validating correctly when saving for single-name fields.
  • Fix an error when cloning some fields.
  • Fix an issue when pre-populating Group or Repeater fields.
  • Fix globally-enabled captchas not being enabled for new forms.
  • Fix File Upload fields not working correctly in multi-page forms, in some cases.
  • Fix an error for Checkboxes fields when using numeric values for options.
  • Fix conditions not handling numbers correctly when evaluating conditions.
  • Fix Date field’s default value not working correctly when set to Today’s date.
  • Fix Date::displayType missing from Date field’s GraphQL schema.
  • Fix an error when querying Table fields in some cases.
  • Fix MissingField instances being included in GraphQL responses in some cases.
  • Fix Captcha integrations not firing validateCustom() JS event.

3.0.14 2024-12-03

Fixed

  • Fix User and Entry element integration settings migration.
  • Fix an error during Formie 2 migration.

3.0.13 2024-12-02

Added

  • Add the ability to change the storage behaviour of forms, rather than rely on sessions.

Fixed

  • Fix an error when saving integration settings for forms.
  • Fix User element integrations not using UIDs for the target groups.
  • Fix Entry element integrations not using UIDs for the target entry type.
  • Fix an issue with User element integration and the “Send Activation Email” setting.
  • Fix checkbox select fields field settings not retaining their value.
  • Fix some missing translations.
  • Fix Nested and Sub fields not showing the correct field label for validation.
  • Fix plain-text variable pickers not working for multi-Name and Address fields.
  • Fix asset bundle path when editing submissions in the control panel for Craft Cloud compatibility.
  • Fix an error when deleting notifications.
  • Fix status indicator for disabled notifications.
  • Fix 'Required Field Indicator' template value.
  • Fix being unable to query submissions by an Elements field.
  • Fix element field sources not containing an “All” option, if their element sources have been modifed through events elsewhere in Craft.

Removed

  • Remove references to relatedTo for Forms and Submissions.

3.0.12 2024-11-16

Fixed

  • Fix an error for form usage, when dealing with nested entries.

3.0.11 2024-11-15

Fixed

  • Fix an error for form usage, when dealing with nested entries.
  • Fix a Craft 5.5 migration compatibility issue.
  • Fix user permissions for form access in the control panel.

3.0.10 2024-11-13

Added

  • Add the ability for Payment integration classes to modify the settings of the Payment field.
  • Add Field::modifyFieldSettings().
  • Add the ability to use Twig in style attribute for Theme Config.

Changed

  • Update proxy URL for some integrations.

Fixed

  • Fix duplicated API Key setting for Google Places.
  • Fix Iterable integrations when not mapping custom fields.
  • Fix reactivity of integration field mapping for forms.
  • Fix some integrations causing post_max_size and input_max_vars issues on Craft Cloud.
  • Fix inactive or pending users showing in users field.
  • Fix an error when migrating Freeform forms for a specific handle via the CLI.
  • Fix data-repeater-row-id attribute for Repeater field rows.
  • Fix Phone field not being mappable for Feed Me.
  • Fix an error with Elements fields.
  • Fix a Craft 5.5 compatibility issue.
  • Fix an error during Craft 5 migration.
  • Fix an error when setting the default value on an element field.
  • Fix Date dropdown and input fields not validating correctly.
  • Fix an error when ordering forms via the Page Count value.
  • Fix Date/Time field values in the submission index.
  • Fix Stripe offsite payments not redirecting correctly after callback.
  • Fix element fields and their default value throwing an error.
  • Fix element select fields not working correctly in some field/notification settings.
  • Fix Stripe not retaining some appearance settings.
  • Fix field validation including some handles that aren’t reserved.
  • Fix deprecation warning when adding an existing field.
  • Fix Formie 3 migration for payment fields.
  • Fix an error with Calculations fields when using a ternary operator expression.
  • Fix custom Name field Prefix values not showing in email notifications.
  • Fix cosmetic fields showing in email notifications.
  • Fix Address Country sub-field not working correctly for email notifications.
  • Fix an error when migrating Freeform forms for a specific handle via the CLI.
  • Fix “Default Date Display Type” setting.
  • Fix “Default File Upload Volume” plugin setting.
  • Fix single Name fields not showing their required indicator.
  • Fix an error when migrating Group and Repeater field content from Formie 2.

3.0.9 2024-10-20

Added

  • Add data-repeater-row-id attribute to Repeater field rows.
  • Add Data Center setting for Zoho CRM Integration.
  • Add attachment support for File Upload fields for Salesforce Case objects.
  • Add templateCss and templateJs for GraphQL.
  • Add Rendering::EVENT_MODIFY_FRONT_END_JS_TRANSLATIONS event.

Fixed

  • Fix reCaptcha Enterprise flagging spam in certain situations.
  • Fix an error with Sent Notifications, when called too early before a dateCrated has been set.
  • Fix Address field Country sub field not working with conditions.
  • Fix an error when migrating from Formie 2 for Postgres for some integrations.
  • Fix Stripe payment error/success messages not working with resetClasses.
  • Fix an error when trying to submit a form without Stripe.js being ready.
  • Fix an error with Email Notification subject and special characters.
  • Fix reCaptcha Enterprise flagging spam in certain situations.
  • Fix option-fields (Checkboxes, Dropdown, Radio) not working correctly for GraphQL.
  • Fix File Upload fields not working in integrations correctly.
  • Fix Single-Line and Multi-Line Text fields when limiting values, not being translated consistently client-side.
  • Fix Number input client-side validation strings not being translated.
  • Fix an error when using templateHtml for GraphQL.
  • Fix Date field preview for Date Picker/Calendar when an inner field is marked as required.
  • Fix some fields being able to be marked as required, when they shouldn’t.
  • Fix Datepicker/Calendar Date fields not working correctly in a Repeater.
  • Fix some session errors on Craft Cloud. (thanks @timkelty).

3.0.8 2024-10-09

Added

  • Add Iterable Email Marketing integration.
  • Add Iterable CRM integration.
  • Add separate dropdown in Submissions index view in the control panel for state (all, complete, incomplete, spam), rather than bundle with status.

Changed

  • Update “All Submissions Behaviour” to select-list to pick a specific collection of submissions to show for any source.

Fixed

  • Fix toggling the enabled state of integrations not updating in the sidebar.
  • Fix an error when previewing email notifications with Element fields in Postgres.
  • Fix Signature field support for Group fields when accessing their image remotely.
  • Fix an error when editing a Stencil with integrations enabled.
  • Fix an error saving date picker Date fields in the control panel.
  • Fix an error when parsing Date field values.
  • Fix an error when using a Calculations field in combination with a Group field.
  • Fix an error when using Calculations field values for payment field amounts.
  • Fix Date fields not working correctly for variable-picker values.
  • Fix payment field reference not working correctly.
  • Fix Date fields (for date pickers) not showing correctly when editing a submission in the control panel.
  • Fix an error when editing stencils with invalid (deprecated) data.
  • Fix element fields not working correctly for disabled elements.
  • Fix an error when previewing email notifications with Element fields in Postgres.
  • Fix form settings not being set correctly when duplicating a form.
  • Fix an error for Submissions dashboard widget.
  • Fix Signature field support for Group fields when accessing their image remotely.
  • Fix element fields not working correctly for disabled elements.
  • Fix Salesforce integration and some fields being shown as required, when they aren’t.
  • Fix an error when editing a Stencil with integrations enabled.

3.0.7 2024-09-14

Added

  • Added Integration::getSettingsHtmlVariables() and Integration::getFormSettingsHtmlVariables().
  • Added support for all CRM integrations to only fetch data objects for ones that are enabled in the form builder integration settings.
  • Added Dutch translations. (thanks @jeroenlammerts).

Changed

  • Updated Password field autocomplete attribute.
  • Improve Integration form instructions translations to remove duplicate translation strings.
  • Improve Integration settings instructions translations to remove duplicate translation strings.
  • Update integration descriptions to be dynamic for better translation.
  • Days and Months predefined options now use Craft’s locale helpers for consistency.
  • Country and State predefined options now use commerceguys/addressing for consistency.
  • Fields now toggle a data-field-has-error attribute on inputs when client-side validation occurs.

Fixed

  • Fixed an error when creating forms where a default Form Template had required fields.
  • Fixed an error when fetching Signature field image.
  • Fixed an issue when using "Validate when typing” and resetting classes via Theme Config.
  • Fixed element fields not always populating the correct site-specific element when viewing a submission in the control panel.
  • Fixed querying submissions for nested field, via their nested field values.
  • Fixed Submission queries not working correctly for custom fields.

Removed

  • Removed FieldInterface::subFieldLabelPosition for GraphQL (use a proper field fragment).

3.0.6 2024-09-07

Added

  • Added “Start Mode” setting to Friendly Captcha.
  • Added the ability to set scriptAttributes and jsAttributes for <script> tags that Formie uses.
  • Added the ability for craft.formie.renderJs to set JS attributes for scripts.
  • Added onFormieCustomValidate JavaScript event.
  • Added renderOptions.customInputs to allow custom hidden input content to be inserted into a form.

Changed

  • Changed Phone input autocomplete from tel-national to tel to ensure valid autocomplete value.

Fixed

  • Fixed an issue for Stripe and Opayo 3DS handling in combination with captchas not working correctly.
  • Fixed an error for GraphQL when querying submissions with brand-new Group fields with no content.
  • Fixed an error with Freshdesk integration when handling duplicate contacts.
  • Fixed an error with Salesforce integration when handling duplicate leads.
  • Fixed an error when duplicating forms with nested fields.
  • Fixed integrations enabled indicator.
  • Fixed a JavaScript error when loading Formie’s JS in a module for a Repeater field.
  • Fixed an error validating Repeater sub-fields.
  • Fixed an error when email notifications contained references to field content, and didn’t convert special characters correctly.

3.0.5 2024-08-29

Fixed

  • Fixed an error when parsing variable tokens.

3.0.4 2024-08-29

Added

  • Added “Page URI” and “Page Name” to HubSpot integration for Forms.
  • Added support for Form Template custom field validation for forms.
  • Added compatibility with Craft Link field.

Changed

  • Klaviyo Email Marketing integration now orders lists alphabetically by name.
  • Klaviyo Email Marketing integration now loads more than 10 lists.
  • Improved HubSpot CRM integration for HubSpot Forms, where fields don’t have a label.
  • Dynamics365 system users now no longer include disabled user accounts.
  • Improve Dynamics365 CRM integration to filter system users that are non-application-specific.
  • Updated Dynamics365 CRM Integration and Lookup fields to automatically determine which entities to fetch field values for, rather than a static schema.
  • Payment fields now no longer process if they are set to visibility disabled.
  • Hidden or Disabled fields now have a visual indicator in the form builder.

Fixed

  • Fixed an edge-case with variables, where cached data matched against incorrect submission values.
  • Fixed an error when fetching Summary field HTML.
  • Fixed an error when fetching Signature field image.
  • Fixed an error with Klaviyo CRM integration.
  • Fixed being unable to select the top-level field for a Sub-Field in variable picker fields.
  • Fixed an error when viewing a Submission in the control panel for a Date field with “Calendar: Advanced”.
  • Fixed an error with Date field default value in some cases when saving a form.
  • Fixed Entries fields not being able to select Entry Types as sources.
  • Fixed Formie 2 migration for Sub-Field inner fields, not retaining their settings upon migration.
  • Fixed server-side empty validation for Phone fields.
  • Fixed an issue with Theme Config and disabling HTML elements from rendering not working.
  • Fixed Date field validation.
  • Fixed Dynamics365 CRM integration and lookup fields when referencing custom entities.
  • Fixed field validation for Sub, Group and Repeater fields and their inner fields.
  • Fixed an issue with Dynamics365 CRM integration and Picklist field options.
  • Fixed conditional logic not working correctly for Groups and Repeaters.
  • Ensure view permissions are enforced for “Recent Submissions” dashboard widget.

3.0.3 2024-08-14

Fixed

  • Fix a compatibility issue with nystudio107/craft-plugin-vite 5.0.2.

3.0.2 2024-08-14

Added

  • Added initSubmit JS API function to allow programmatic submissions.
  • Added “Tenant” setting to Microsoft Dynamics 365 CRM integration.

Fixed

  • Fixed an error when refreshing tokens on some installs.
  • Fixed an error when creating nested fields in some cases.
  • Fixed an error rendering element fields.
  • Fixed translations.

3.0.1 2024-08-11

Added

  • Added processSubmit JS API function to allow submission processing to continue if preventing submission via the onBeforeFormieSubmit JS event.
  • Added support for WEBP flag images for Phone fields. Add a .no-webp class in your form to opt-out of this behaviour to fallback to PNG flags.

Fixed

  • Fixed errors when attaching some files to support requests.
  • Fixed Date fields with a default value, or min/max date not having their values normalized correctly.
  • Fixed an error when refreshing tokens via JS, for a non-top-level webroot site.
  • Fixed an error when populating Element fields when also limiting field values.
  • Fixed an error when trying to order Submissions by their title in the control panel.
  • Fixed an error where conditional Email Notifications were being triggered twice for new submissions.
  • Fixed an issue where missing required field values for Nested or Sub-Field fields weren’t being marked as required during validation.
  • Fixed an error where conditional Email Notifications were being triggered twice for new submissions.
  • Fixed some modal button spacing issues.
  • Fixed an error viewing Submissions with Radio Button fields with numeric values in the control panel.

3.0.0 2024-08-06

Breaking Changes

  • Repeater and Group fields values now no longer use elements, just plain arrays. This brings several performance improvements and simplification to these fields.
  • OAuth-based integrations now use the Auth Module to handle authentication under the hood.
  • References to subfield is now subField for various classes.
  • Element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants) now use their public URL in email notifications.
  • Options fields (Checkboxes, Dropdown, Radio) now use their option labels in email notifications.
  • Changed fieldInputContainer to fieldInputWrapper for Theme Config and .fui-input-container class to .fui-input-wrapper for fields.
  • Date fields now no longer use Flatpickr as a date-picker by default.
  • Changed the value returned for Address fields when queried via GraphQL.
  • Change Field’s name to label for GraphQL queries.
  • Change Page’s name to label for GraphQL queries.

Added

  • Added new user interface for sub-field (Address, Date, and Name).
  • Added the ability to re-order sub-fields.
  • Added the ability to edit the full settings of sub-field fields.
  • Added ability to send email notifications or trigger integrations when unmarking a submission as spam.
  • Added the ability to set the control panel or public URL for element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants).
  • Added the ability to set the label or value for options fields (Checkboxes, Dropdown, Radio).
  • Added the ability to override “All Form Fields”, “All Non Empty Fields” and “All Visible Fields” variables with Email Notification templates.
  • Added “Calendar (Simple)” and “Calendar (Advanced)” to Date field display types, replacing “Use Date Picker”.
  • Added CSS Layers support for front-end CSS.
  • Fields moved in and out of Group fields now have their content moved as well.
  • Fields can now be moved to and from Group/Repeater fields.
  • Added “Required Field Indicator” for forms, to either show an asterisk for required fields (default) or show optional for non-required fields.
  • Added the form.setPageSettings() function to override page settings in your Twig templates.
  • Added support for Group and Repeater fields to be added as an existing field, or a synced field in the form builder.
  • Added support for Repeater fields to use conditions (within their own row of fields).
  • Added support for all CRM integrations to only fetch data objects for ones that are enabled in the form builder integration settings.
  • Added keyboard navigation to variable picker dropdown.
  • Added the ability to type { in variable picker components to autocomplete variables.
  • Added handle to Email Notifications that can be accessed directly, instead of by their ID.
  • Added isFinalPage in JSON response for Ajax-based forms.
  • Added “All Submissions Behaviour” plugin setting.
  • Added the ability to store custom data (customSettings) on a Notification, to store extra data against a Notification.
  • Added the ability to modify Notification tabs and field settings (schema) via Notifications::EVENT_MODIFY_NOTIFICATION_SCHEMA.
  • You can now get submission field values via dot-notation for nested values. e.g. submission.getFieldValue('group.text') or submission.getFieldValue('repeater.1.text')
  • You can now query submission field values via dot-notation for nested values. e.g. submission.field('group.text').one() or submission.field('repeater.1.text').one()
  • Integrations can now populate a $context property with arbitrary data that's stored before processing, and accessible in the queue job.
  • Allow craft.formie.renderJs to set JS attributes for scripts.
  • Added data-fui-alert-error and data-fui-alert-success attributes on front-end alerts.
  • Added data-field-label attribute to labels/legends for fields.
  • Added data-validation to fields, to denote what validators to use for the field.
  • Added initRow to Repeater field JS events.
  • Added client-side validation for min/max word/character limit for text fields.
  • Added the current rowId for the data-repeater-row attribute for Repeater fields.
  • Added onFormieLoaded JS event.
  • Added double-clicking a page in the form builder now opens the pages editor.
  • Added “Recipients” to the Email Notifications index table.
  • Added Table node to rich text editor settings (used for numerous form, field and notification settings).
  • Added the ability for Recipients fields to pre-populate the field via their option label.
  • Added verbb\formie\fields\subfields classes to better handle sub-field inner fields.
  • Added NestedField::EVENT_MODIFY_NESTED_FIELD_LAYOUT to modify the field layout of Nested or Sub-Fields.
  • Added verbb\formie\base\CosmeticField class.
  • Added verbb\formie\base\ElementField class.
  • Added verbb\formie\base\MultiNestedField class.
  • Added verbb\formie\base\OptionsField class.
  • Added verbb\formie\base\SingleNestedField class.
  • Added verbb\formie\base\SubField class.
  • Added Field::getValueForVariable() to allow fields to handle logic for variables.
  • Added Field::getValueForCondition() for handling serialization for condition evaluation.
  • Added Field::getValueForEmailPreview() for fields to define their own preview for email notifications.
  • Added Field::fieldKey to represent the handles of a field and any parent field. e.g. group.text or repeater.text.
  • Added Field:: lowerClassName().
  • Added Field::isDisabled.
  • Added Field::enabled to allow you to disable a field.
  • Added Submission::hasStatusChanged() and Submission::hasSpamChanged().

Changed

  • Now requires PHP 8.2.0+.
  • Now requires Craft 5.0.0+.
  • Updated Vue, Vite, Formkit and all JS dependencies to their latest versions.
  • Updated Feed Me integration support for Feed Me 6+.
  • Updated Freeform migration to support Freeform 5+.
  • Submission content no longer have their own content tables. Content is now in a single content column, in your formie_submissions database table.
  • Submissions now have Create/Save/Delete user permissions.
  • Submissions now have separate view and manage user permissions.
  • Sent Notifications now have “All” or per-form user permissions for View/Resend/Delete.
  • Formie::log() is now Formie::info().
  • Integration::log() is now Integration::info().
  • Updated form builder modals and implement better modal accessibility.
  • Switched Stripe payments to use “Payment Web Element”, adding the ability to use non-credit card payments like Apple Pay, AfterPay, etc
  • Revamped front-end validation and removed bouncer.js.
  • Submissions now send any email notifications that have status conditions when a completed submission is saved.
  • Field errors now only show their first error when validation fails.
  • Re-organise validator rules and add client-side match field validator.
  • data-field-handle for fields now includes the full dot-notation “fieldKey” of the field, including any parent. So name.firstName, group.text or repeater.new1.text.
  • Captchas for GraphQL mutations now don’t require a mandatory variables parameter to be named the same as their input type.
  • Querying fields and rows via GraphQL now default to only returned enabled fields.
  • Front-end form JavaScript now waits until the form has entered the viewable area on the page to be initialized.
  • The onFormieInit now fires on every initialization of a form, when it’s visible on the page.
  • Captchas now smartly load whenever they have entered the viewable area on the page. This greatly improves page-load performance when the form is initially hidden (in a modal for example).
  • Sub-fields now extend from the verbb\formie\base\SingleNestedField and inherit many behaviours from Group fields.
  • Phone fields are no longer verbb\formie\base\SubField fields.
  • Sub-field fields now store their field config in their own row in the formie_fields database table, under their own layout (page, row, field).
  • Update GraphQL interfaces for all fields to explicitly define fields to query. Previously these were automatically done via Reflection.
  • Integration field mapping now uses field:fieldHandle syntax for fields.
  • Integration field mapping now uses dot-notation (field:group.text) syntax for nested fields.
  • Conditions (fields, pages, notifications) now uses field:fieldHandle syntax for fields.
  • Conditions (fields, pages, notifications) now uses dot-notation (field:group.text) syntax for nested fields.
  • Submissions element index now show incomplete and spam submissions alongside completed submissions.
  • Changed form Title references to form Name.
  • Changed fieldErrors and fieldError elements from ul and li respectively to div.
  • HubSpot CRM integration now automatically saves the hubspotutk cookie at the time of submission, to be sent with API requests. This means you now no longer need to map a form field to ensure the hubspotutk tracking cookie is sent.
  • nextPageIndex in JSON response for Ajax-based forms now returns null when submitting on the final page to match nextPageId.
  • Update Date field’s availableDaysOfWeek to return an array of strings as opposed to a JSON-encoded array for GraphQL.
  • Email Notification field templates now no longer output a paragraph tag and the field label.
  • Recipients fields values are now included in Email Notification content.
  • Updated the intl-tel-input package for Phone field validation and handling.
  • Date fields now show the required state on the outer label for Calendar and Date Picker display types.
  • Name field values now return the full name including prefix and middle name (if provided).
  • Address Country and Name Prefix fields now use their respective label values for string representations of their value.
  • Adjusted dropzone size for form builder.
  • Update Payment fields to provide a more client-friendly error message when a payment fails.
  • Payment integrations can now have their field templates overridden in Form Templates.
  • Updated email notifications index to show Name and Subject variable previews when used.
  • Improved email notification preview error message.
  • Updated stripe/stripe-php to be compatible with (commerce-stripe)[https://github.com/craftcms/commerce-stripe].
  • Remove Section and Summary fields from rich text editor and variable picker options.
  • Changed craft\fields\data\MultiOptionsFieldData to verbb\formie\fields\data\MultiOptionsFieldData.
  • Changed craft\fields\data\OptionData to verbb\formie\fields\data\OptionData.
  • Changed craft\fields\data\SingleOptionFieldData to verbb\formie\fields\data\SingleOptionFieldData.
  • Changed craft\fields\data\ColorData to verbb\formie\fields\data\ColorData.

Fixed

  • Fixed multiple Tippy.js instances in the form builder when field settings contained multiple “info” elements.
  • Fixed alerts on front-end not respecting theme config.
  • Fixed Commerce fields initializing when Commerce wasn’t installed or classes exist.
  • Fixed text-limit character check for emojis on the front-end.
  • Fixed lack of validation for Date fields and their Default Value when setting to a specific date.
  • Fixed behaviour of field variable tags in Email Notifications, where referencing a single field produced different output compared to when used in consolidated variables (e.g. “All Form Fields”).
  • Fixed lack of client-side validation for min/max Number fields.
  • Fixed lack of server-side validation for min/max Number fields.

Removed

  • Removed currentPageId from JSON response for Ajax-based forms, as it’s no longer necessary.
  • Removed verbb\formie\base\NestedFieldTrait class.
  • Removed verbb\formie\elements\NestedFieldRow class.
  • Removed verbb\formie\elements\dbNestedFieldRowQuery class.
  • Removed verbb\formie\events\FieldPageEvent class.
  • Removed verbb\formie\events\FieldRowEvent class.
  • Removed verbb\formie\events\ModifyEmailFieldUniqueQueryEvent class.
  • Removed verbb\formie\events\OauthTokenEvent class.
  • Removed verbb\formie\events\SyncedFieldEvent class.
  • Removed verbb\formie\events\TokenEvent class.
  • Removed verbb\formie\models\Sync class.
  • Removed verbb\formie\models\SyncField class.
  • Removed verbb\formie\models\Token class.
  • Removed verbb\formie\records\NestedFieldRow class.
  • Removed verbb\formie\records\PageSettings class.
  • Removed verbb\formie\records\Row class.
  • Removed verbb\formie\records\Sync class.
  • Removed verbb\formie\records\SyncField class.
  • Removed verbb\formie\records\Token class.
  • Removed verbb\formie\services\NestedFields class.
  • Removed verbb\formie\services\Syncs class.
  • Removed verbb\formie\services\Tokens class.
  • Removed formie/gc/delete-orphaned-fields console command.
  • Removed formie/gc/prune-syncs console command.
  • Removed formie/gc/prune-content-tables console command.
  • Removed formie/gc/prune-content-table-fields console command.
  • Removed Formie::$plugin->getNestedFields().
  • Removed Formie::$plugin->getSyncs().
  • Removed Formie::$plugin->getTokens().
  • Removed Categories:categoriesQuery variable for Category element field templates.
  • Removed Categories:entriesQuery variable for Entry element field templates.
  • Removed Categories:productsQuery variable for Product element field templates.
  • Removed Categories:usersQuery variable for User element field templates.
  • Removed Categories:variantsQuery variable for Variant element field templates.
  • Removed Syncs::EVENT_BEFORE_SAVE_SYNCED_FIELD event
  • Removed Syncs::EVENT_AFTER_SAVE_SYNCED_FIELD event
  • Removed verbb\formie\events\ModifyFrontEndSubFieldsEvent.

Deprecated

  • Submission::getCustomFields() method has been deprecated. Use Submission::getFields() instead.
  • Field::name attribute has been deprecated. Use Field::label instead.
  • Field::inputHtml() method has been deprecated. Use Field::cpInputHtml() instead.