v5.0.0
Warning
If upgrading from Freeform 4, please see the special upgrade guide before proceeding.
Added
- Form Builder
- Fields can be saved as Favorites for quick use in other forms.
- Fields from other forms can be searched and reused in your form.
- A Field Type Manager has been added to the form builder. It allows you to show/hide field types, arrange them into groups, and color code them.
- Created/Updated dates and author information are now stored for each form and visible inside the form builder.
- The Limited Users feature allows you to easily customize the form builder experience for specific users or groups, ensuring that these users are not overwhelmed by advanced settings and prevents them from accidentally breaking your forms or site.
- Configure email notifications in the form builder using complex conditional rules based on field data.
- A wide range of form builder settings can now have default values set for them, and can also be locked to that value. For example, you can force the Tailwind 3 formatting template to be used for every form.
- Fields
- The Group field type allows you to nest multiple fields inside. Additionally, conditional rules can be applied to Group fields.
- Fields being populated with Element or Predefined data can now have the data converted to Custom options so they can be modified, added to, removed, reordered, etc.
- Fields can now be individually encrypted.
- Custom field types are available to be created now.
- Email Notifications
- Configure email notifications in the form builder using complex conditional rules based on field data.
- Integrations
- Captchas now include a setting inside the form builder to force a country code, e.g.
en,de, etc. If left blank, the locale will be auto-detected.
- Captchas now include a setting inside the form builder to force a country code, e.g.
- Templating
- The Template Overrides feature enables modification of attributes for the form, fields, and buttons, as well as overriding field labels, values, and instructions at the template-level.
- The Settings object allows you to access all of the form's settings assigned to it in the form builder, e.g.
form.settings.errorMessage. - The Multipage All Fields formatting template replaces the Bootstrap 5 Multipage All Fields template.
- The
labelsandlabelsAsStringmethods are now available for all option field types. This allows you to choose between displaying option labels instead of values when loading submission data in front end or email notifications. - The
implementsmethod is available to all fields for Twig-friendly implementation checks, e.g.field.implements('options'). - The global
freeformvariable allows shorthand for template queries, e.g.freeform.forminstead ofcraft.freeform.form.
- Stripe Payments
- The Pro edition now includes fresh support for the newer Stripe Payment Element.
- Support for Stripe Link, Apple Pay, Google Pay, PayPal (within Europe), bank payments, deferred payments and many other options.
- Ability to include more than one Stripe payment element field in a form. When used with conditional rules, you can show/hide one Stripe element at a time (e.g. use a dropdown field to allow the user to choose between one-time or recurring payments).
- Surveys & Polls
- The Freeform Surveys & Polls plugin features are now included in the Pro edition of Freeform. Please see the special upgrade guide before proceeding.
Changed
- Control Panel
- The Dashboard and Forms pages have been combined and redesigned.
- The Email Notifications subnav menu item has been renamed to Notifications.
- All settings and references of
behaviourhave been updated tobehavior.
- Form Builder
- Completely redesigned the form builder.
- Settings and other features are now in full-page tabs to allow for lots of room to configure.
- Fields are specific to forms and added by dragging fresh field types into the layout.
- Reorganized all form settings and behaviors into multiple subsections of a unified Settings tab.
- Reorganized Email Marketing, CRM, Element, Stripe, Captcha, POST Forwarding and Google Tag Manager settings into multiple subsections of a unified Integrations tab.
- The Conditional Rules tab has been greatly improved to include a field map along with visual cues, making configuration faster and less confusing.
- Some of the option values for the Duplicate Check (formerly Limit Form Submission Rate) setting have been changed.
- Completely redesigned the form builder.
- Fields
- Fields are now created and specific to each form (vs. being global to all forms).
- Fields can be saved as Favorites or searched upon to be reused in other forms.
- Fields can now be changed to other field types at any point, but be aware that data loss could occur when switching incompatible field types.
- The Checkbox Group field type has been renamed to Checkboxes (and
checkboxesin formatting templates). - The Radio Group field type has been renamed to Radios (and
radiosin formatting templates). - The Select field type has been renamed to Dropdown (and
dropdownin formatting templates). - The field type handles of
cc_details,confirmation,file_drag_and_drop,multiple_select,opinion_scale, andrich_texthave been renamed tocredit-card,confirm,file-dnd,multiple-select,opinion-scale, andrich-text, respectively. - The Dynamic Recipients field type has been replaced with the User Select feature, which provides the ability to assign a notification layer to any Dropdown, Checkboxes, Radios, or Multi-Select field types.
- The Email Marketing/Mailing List special field type has been replaced with the ability to assign the Email Marketing integration to any existing Checkbox or Hidden field. This will also allow you to keep a record in Freeform of whether the mailing list was subscribed to by the user.
- The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
- The Submit and Save & Continue Later buttons are now automatically inserted at the end of each form page.
- The Opinion Scale field type markup for manual templating has been adjusted slightly.
- Email Notifications
- The form builder now has a Notifications tab dedicated to configuring all types of email notifications (except for template-level ones).
- Integrations
- The Element Connections feature is now referred simply to Element integrations.
- Element integrations are now set up in the Freeform settings area and then configured per form.
- Webhook integrations are now configured per form (but still set up initially in the Freeform settings area).
- Integrations with more than one type have been unified with expanded functionality:
- Salesforce Leads and Salesforce Opportunities are now in a single Salesforce integration.
- Pipedrive Leads and Pipedrive Deals are now in a single Pipedrive integration.
- Zoho Leads and Zoho Deals are now in a single Zoho integration.
- Integrations that map to more than one endpoint allow more flexibility when choosing which endpoints to map to.
- The Salesforce integration has been changed to OAuth validation (instead of username/password).
- The Pipedrive integration has been changed to OAuth validation.
- The dotmailer integration has been updated and renamed to Dotdigital.
- All MailingList/mailing_list, etc, references in the code and database have been renamed to EmailMarketing/email_marketing, etc.
- Settings
- The Formatting Templates, Email Templates and Success Templates settings pages have all been combined into a single Template Manager settings page.
- Reorganized and adjusted settings pages.
- The Limit Form Submission Rate setting has been renamed to Duplicate Check. Available options have been revised and renamed for clarity as well.
- Spam Protection
- The Freeform Honeypot and Javascript Test features have been decoupled, overhauled, and set up as integrations. They can now be enabled/disabled and configured per form. The Javascript Test is now a simpler approach that will streamline use with caching or headless implementations.
- The Javascript Enhancement feature has been renamed to Javascript Test.
- Captchas are now stored as integrations, can have multiple configured per site, and can be turned on/off and further configured at the form level inside the form builder, e.g. stricter settings, different behavior, etc.
- The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
- Templating
- The
suppressparameter (for suppressing email notifications and integrations when editing submissions on the front end) has been renamed todisableand has had thedynamicRecipients,submitterNotifications,connectionsparameter names changed touserSelectNotifications,emailFieldNotifications, andelements, respectively. An additionalconditionalNotificationsparameter has been added to account for the new Conditional Notifications feature. - All formatting templates have been updated and improved.
- The Bootstrap 5 Multipage All Fields formatting template has been transitioned to a "Basic" non-Bootstrap version, now called Multipage All Fields.
- Form settings and behaviors can now all be accessed in templates via
freeform.settings.settingName. - The
option.checkedproperty has been updated to an approach that comparesoption.valuetofield.value. - The
disableRecaptchaparameter is nowdisableCaptcha. - All references to
loading(text and/or spinner indicator displayed on the submit button) are nowprocessing. - All references to
spinner(spinner indicator displayed on submit button) are nowprocessingSpinner, etc. - The
limitSubmissionsparameter has been renamed toduplicateCheckand the values have been renamed for clarity. - The
submissionLimitReachedproperty in the Form object has been renamed toduplicate. - All references to
freeform-file-drag-and-dropfor CSS overrides have been updated tofreeform-file-dnd.
- The
- Javascript
- The defaults for
errorClassBanner,errorClassList,errorClassFieldandsuccessClassBannerplugin options for JS overrides have been adjusted tofreeform-form-errors,freeform-errors,freeform-has-errorsandfreeform-form-success, respectively (ff-changed tofreeform-).
- The defaults for
Deprecated
- The PHP Sessions and Database Table options for the Freeform Session Context setting are deprecated and are planned to be removed in Freeform 6. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table in project config.
Removed
- Control Panel
- The Field Manager area (Freeform → Fields) has been removed, as fields are no longer globally shared unless they are saved as Favorites.
- The Dashboard page has been removed in favor of a redesigned Forms page.
- Exporting "shortcuts" from the Dashboard is no longer available with the removal of the Dashboard page, but many other exporting options are available.
- The What's New feature has been removed in favor of using Craft's Announcements feature.
- The Resources area inside the Freeform control panel has been removed.
- The Form Builder Tutorial and Install Demo Banner settings have been removed.
- The Stats widget has been removed as it isn't very relevant anymore.
- The Form Values widget has been removed.
- Settings
- The Access Fields and Manage Fields permissions have been removed as they are no longer applicable.
- The Display Order of Fields in the Form Builder setting has been removed as it is no longer applicable.
- The following Project Config items have been removed due to the improvements to Form Builder defaults:
defaultTemplates- useincludeSampleTemplates: trueunderdefaults:instead.renderFormHtmlInCpViews- usepreviewHtml: trueunderdefaults:instead.twigInHtml- usetwigInHtml: trueunderdefaults:instead.twigInHtmlIsolatedMode. - usetwigIsolation: trueunderdefaults:instead.formattingTemplate- usevalue: basic-light/index.twigunderdefaults:→settings:→general:→formattingTemplate:instead.ajaxByDefault- - usevalue: '1'underdefaults:→settings:→processing:→ajax:instead.
- The
freeformHoneypot,freeformHoneypotEnhancement,customHoneypotName,customErrorMessage,recaptchaBehaviour,recaptchaEnabled,recaptchaErrorMessage,recaptchaKey,recaptchaSecret,recaptchaLazyLoad,recaptchaMinScore,recaptchaSize,recaptchaThemeandrecaptchaTypesettings have been removed from Project Config, as Honeypot and Captchas are stored as integrations now. - The Additional Optional Checks setting for the Update Warnings & Notices feature has been removed.
- The Freeform Session Context setting has been removed. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table deprecated options in project config.
- The
freeform_lockdatabase table has been removed as it is no longer used.
- Templating
- The Bootstrap 3, Bootstrap 4, Bootstrap 5 Multipage All Fields and Tailwind 1 formatting templates have been removed.
- The
overrideValuesparameter for Form queries has been removed. Please use thevalueparameter in the new Template Overrides feature. - The
option.checkedproperty has been removed. Please use and compareoption.valuetofield.value. - The
disableRecaptchatemplate parameter has been removed. Please usedisableCaptchainstead. - The
limitFormSubmissionsproperty has been removed from theformobject. Please useform.settings.limitSubmissionsinstead. - The
freeform/fields/createfield creation console command has been removed as it is no longer applicable. - The following attribute control parameters have been removed and replaced by accessing them via the new
attributesobject:inputClass,submitClass,rowClass,columnClass,labelClass,errorClass,instructionsClass,class,id,name,method, andaction.
- GraphQL
- The
extraPostUrl,extraPostTriggerPhrase,gtmId, andgtmEventNamefields have been removed fromFreeformFormInterfacein GraphQL. Please use the new interface instead (TBD). - The
inputAttributes,labelAttributes,errorAttributes, andinstructionAttributesfields have been removed fromFreeformFormInterfacein GraphQL. Please use theFreeformAttributesInterfaceinstead. - The
hashfield has been removed fromFreeformFieldInterfacein GraphQL as it is no longer relevant.
- The
- Stripe Payments
- The Stripe Payment feature has been removed and replaced by all-new support for the newer Stripe Payment Element.