Released Jan 20, 2022
Fixed Freeform migration and Confirmation fields not migrating correctly
Fixed Recipients field not using the correct "real" values for email notifications and integrations
Fixed Phone field with country dropdown enabled triggering unload warnings
Released Jan 17, 2022
Fixed when querying submissions on deleted forms.
Fixed Agree fields when used as conditions, not evaluating correctly.
Fixed HubSpot form integration not allowing the
EVENT_BEFORE_SEND_PAYLOAD event to update payload values.
Fixed Recipients field not being able to use the "Pre-Populate Value" setting.
Fixed Phone & Date fields not being prepared for integrations correctly.
Fixed country code dropdown not saving correctly for a Phone field, when using
Fixed email notifications sending PDF attachments when not enabled, when sending test emails.
Fixed an error when previewing email notifications containing a File Upload field.
Fixed an error when importing a form with an invalid
Fixed Checkboxes field when using
Refactor Recipients field handling, simplifying functionality and fully testing.
populateFormValues() not working correctly when passing in the handle of a form.
Fixed Categories field not saving its value correctly (due to how Craft's own Categories field works) when categories has a level greater than 1.
Fixed option fields (Radio, Checkboxes, Dropdown) not having their default values set properly.
Fixed element fields not having their default value set properly.
Released Jan 08, 2022
getFieldById() methods for nested field rows.
Reduce the maximum width of signature images in email notifications.
getFieldMappingValues() method for integrations, to ensure "opt-in" field works consistently.
Fixed being unable to map to sub-fields (Address, Phone, Name) in nesting fields (Repeater, Group) for integrations.
Fixed handling of sub-field fields (Address, Phone, Name) for integrations.
Fixed Table field columns not being set to their correct ID when importing a form.
Fixed form exports not working correctly with Repeater and Group fields.
Fixed (properly) an incompatibility with Craft 3.7.28 (
Released Jan 06, 2022
Fixed an incompatibility with Craft 3.7.28 (
Fixed time-only Date/Time fields not displaying correctly for Dropdown or Inputs display types.
Fixed opt-in field for integrations not resolving to the correct field for fields in a Group/Repeater.
Fixed field conditions not working for pre-populated hidden fields.
Fixed Calculations field not working correctly with Radio Button field values.
Fixed Calculations fields triggering unload warnings when no value had been changed (on init).
Fixed an error for fields not containing their
formId when importing a form.
Fixed missing error translation string for Phone field, for front-end validation.
Fixed an error with the recipients field, for dropdown values not working correctly.
Fixed signature field not working on multi-page, Ajax-based forms or when navigating using page tabs.
Fixed invalid HTML for signature field.
Fixed plain-text fields (Single-Line, Multi-Line, Number, Phone, etc) not having their content escaped properly when used in email notifications.
Released Dec 18, 2021
Added logging for OAuth-based providers when requesting a refresh token.
Fixed field conditions not working for brand-new forms without saving the form first.
Fixed new forms created via stencil.
Fixed summary field not working with Ajax-based forms.
Fixed an error when importing forms with group/repeater fields.
Fixed importing forms, and updating an existing one, submission details would be wiped (due to new fields being created).
Fixed field handles not being truncated to maximum length for database engine.
Fixed an error when exporting submissions containing an empty Table field.
Fixed element integrations when mapping an File Upload field to an Asset field.
Fixed an error during import, due to
dump() being included incorrectly.
anyStatus() submission query param not including spam or incomplete submissions.
Released Dec 12, 2021
Fixed User integrations not sending the correct activation email when using the Password field.
Fixed an error when exporting Table fields with no columns.
Fixed stencils not saving their
defaultStatus correctly in project config.
Fixed sent notification preview not showing when Craft's debug bar was enabled.
Fixed form settings (Appearance/Behaviour) not setting correctly when importing forms.
Fixed required fields not working correctly when exporting forms.
Fixed OAuth-based integrations not authenticating correctly.
Fixed Dynamics CRM instructions.
Fixed an error when submitting a form via Ajax, straight after another submission.
Released Dec 09, 2021
contentHtml to render variables for PDF Templates.
Fixed some integrations (Elements, AWeber, Benchmark, Drop, Sender) not firing correctly.
Fixed a potential error when attaching files to support requests.
Fixed Feed Me error when Commerce wasn't installed.
Fixed an error with Feed Me, when importing into a Phone field.
Fixed a PHP 8 error when editing a form.
Released Dec 08, 2021
Added Calculations field for creating read-only content based on other fields' content. Supports arithmetic, bitwise, comparison, logic, string, array, numeric and ternary operators, and of course being able to reference other fields.
Added Signature field to allow users to sign with their mouse or finger, saving as an image.
Added Password field for a specialised, encrypted field just for password-saving. Of course, no plain-text saving.
Added Summary field, to show a summary of all fields. Commonly used on the last page of a multi-page form.
Added Time-only option to Date fields.
Added "Match Field" field setting to Text, Number, Password and Email fields to enforce validation where two fields need to have the same value.
Added Feed Me support for Submissions.
Added import/export functionality for forms.
Added dedicated support area, so you can submit bug reports and support requests directly to Verbb. Bundles all we need to know about your form.
Added Klaviyo CRM integration.
Added Maximizer CRM integration.
Added Microsoft Dynamics 365 CRM integration.
Added SugarCRM CRM integration.
Added Native Forms support for SharpSpring CRM Integration.
Added Adestra Email Marketing integration.
Added EmailOctopus Email Marketing integration.
Added Klaviyo Email Marketing integration.
Added Loqate Address Provider integration.
Added Recruitee Miscellaneous integration.
Added reCAPTCHA Enterprise captcha support.
Added hCaptcha captcha support.
Added Snaptcha plugin captcha support.
Added conditional recipients option for Email Notifications, allowing you to define what recipients receive an email under what circumstances.
Added support for Element fields to have their values pre-populated via query string.
Added PDF Templates, allowing you to attach a custom PDF to Email Notifications.
Added the ability to set a Google Tag Manager payload for every submit button for forms, within the form builder.
Added statuses to Sent Notifications, along with error messages to identify issues for failed Email Notifications.
Added support for Group and Repeater fields when using
Added Submission snapshots to record and persist template-level field settings changes.
Added "Use my location" setting for Address fields with the Google Places address provider integration.
Added support to add any arbitrary assets to an email notification as an attachment.
Added better link support for rich text fields.
Added indicator in the form builder to show fields configured with conditions.
Added "Allow Multiple" support for element fields when displaying as a dropdown.
Field::getValueAsString() to consolidate how to represent field values as a string value.
Field::getValueAsJson() to consolidate how to represent field values as JSON object.
Field::getValueForExport() to consolidate how to represent field values when exporting through Craft's export.
Field::getValueForIntegration() to consolidate how to represent field values when sending to an integration.
Submission::getValuesForExport() to better consolidate field values for various operations.
Field::EVENT_MODIFY_DEFAULT_VALUE event to allow modification of the default value for fields.
Field::EVENT_MODIFY_VALUE_AS_STRING event for all fields.
Field::EVENT_MODIFY_VALUE_AS_JSON event for all fields.
Field::EVENT_MODIFY_VALUE_FOR_EXPORT event for all fields.
Field::EVENT_MODIFY_VALUE_FOR_INTEGRATION event for all fields.
Field::EVENT_MODIFY_VALUE_FOR_SUMMARY event for all fields.
Integration::EVENT_MODIFY_FIELD_MAPPING_VALUES event for all integrations.
Miscellaneous::EVENT_MODIFY_MISCELLANEOUS_PAYLOAD event for all integrations.
includeDate property for Date fields.
getIsDateTime() methods for Date fields.
pdfTemplateId to Notification model.
Sent notifications are now saved earlier regardless of success, added statuses and records a failed message.
Refactored all fields to better handle and consolidate how their content values are represented for various operations (exports, integrations, dev API).
Integration::EVENT_PARSE_MAPPED_FIELD_VALUE event to
Integration::EVENT_BEFORE_SEND_PAYLOAD to modify the endpoint and method for integrations.
Fixed captchas not showing the correct name in Formie settings.
Fixed an error with Recipients fields, where an option value was changed previously, and no longer valid.
Fixed hidden Recipients fields not being classified as a hidden field.
Fixed Heading fields not being classified as a cosmetic field.
Fixed the save shortcut when saving a submission in the control panel.
Fixed incomplete submissions not being able to have their status updated.
Fixed File upload fields not always having their upload location source/path set.
Fixed checkboxes fields not populating values correctly.
Field::serializeValueForExport() method. Use
Field::defineValueForExport() for setting or
Field::getValueForExport() for getting instead.
Field::serializeValueForWebhook() method. Use
Field::defineValueAsJson() for setting or
Field::getValueAsJson() for getting instead.
Field::serializeValueForIntegration() method. Use
Field::defineValueForIntegration() for setting or
Field::getValueForIntegration() for getting instead.
Field::getFieldMappedValueForIntegration() method. Use
SubmissionExport::EVENT_MODIFY_FIELD_EXPORT event. Use
Submission::getSerializedFieldValuesForIntegration() method. Use
Submission::EVENT_MODIFY_FIELD_VALUE_FOR_INTEGRATION event. Use
Released Dec 06, 2021
Added "Scroll To Top" appearance setting for forms.
fui-subfield-fieldset class to subfield-supporting field templates.
force option for
populateFormValues() to accept a submission or form object.
Update Copper CRM API endpoint.
Update an error with Copper CRM.
Update gray colour palette for front-end theme to "cool gray" for more neutral grays.
Memoize current submission for performance.
Cleanup and normalise
btn CSS variables.
Fixed loading captchas when editing a submission in the control panel.
Fixed an error when duplicating a form without user permissions to manage form settings.
Fixed GraphQL queries for form integration settings not parsing .env variables, and containing unnecessary data.
Fixed GraphQL queries for
redirectEntry not resolving the correct site for an entry.
Fixed when triggering integrations manually for a submission, integration settings weren't properly prepped.
Fixed when re-triggering a submission, reloading the page when an error occurred.
Fixed redirect error when saving Settings > Sent Notifications.
Released Nov 27, 2021
submissionCount to GraphQL queries for forms and submissions.
Fixed invalid conditional logic results when "Enable Conditions" was enabled, but no conditional logic provided.
Fixed a validation error when passing in
pageIndex with an empty value for submissions.
Fixed debug tags for ActiveCampaign being incorrectly sent.
Fixed an error when trying to save a submission in the control panel when "Collect User" was enabled.
Fixed element fields not showing correctly when previewing email notifications.
Fixed an error when previewing Group or Repeater fields in email notifications.
Released Nov 23, 2021
volumeHandle for GraphQL queries for FIle Upload fields.
Added more variables to
Fixed Group and Repeater fields not serializing correctly for Webhook integrations.
Emails::EVENT_BEFORE_SEND_MAIL event not allowing modification of the email property.
Fixed element fields not having a properly configure element query when querying via GraphQL.
Fixed conditions using an empty string not evaluating correctly.
Fixed a JS error when viewing the submissions index in Craft 3.6.x.
Fixed page condition typings for GraphQL.
Revert GraphQL changes made in 1.4.24 causing errors when querying page conditions.
Fixed "All Fields" in email notification content showing conditionally hidden fields.
Released Nov 14, 2021
Added Pardot CRM Integration.
Added more CSS variables for global
fui- variables, instead of relying on SCSS variables.
Added type checks to
submit endpoint to protect against invalid submission requests, preventing bad payload data.
Added additional validation to captchas when comparing request payloads for valid submissions, preventing bad payload data.
guzzlehttp/oauth-subscriber:^0.6.0 dependancy to work with
EVENT_BEFORE_SUBMISSION_REQUEST is now cancelable, to allow submissions to be marked as invalid.
Fixed querying forms and submissions via GraphQL when only the "View All" permission is set.
EVENT_BEFORE_SUBMISSION_REQUEST event not persisting submission errors correctly.
Fixed Google Sheets integration not requesting a refresh token for OAuth handshake.
Fixed the "Redirect URI" for integrations not taking into account the
usePathInfo config setting.
Fixed File Upload fields not always returning the URL for assets for Integrations.
Released Nov 06, 2021
formie/submissions/api action endpoint to handle cross-domain submissions using CORS.
Added server-side validation for File Upload fields and enforcing min/max file sizes.
enableGatsbyCompatibility config option. Enabling it has a side-effect of changing the
fields property name on the Form GraphQL type to
File Upload fields now completely replaces uploaded files when re-uploading new files into the field.
Fixed Number fields enforcing min/max values when "Limit Numbers" was disabled and values were entered for min/max limits.
Fixed not logging fatal errors when rendering custom email templates for fields.
Fixed an error when trying to delete submissions, where the owner form was also deleted and had an invalid field layout.
Fixed some trashed submissions not showing in the submissions element index.
Fixed trashed submissions not resolving to the correct form, if one still exists.
Fixed deleted incomplete and spam submissions not appearing in the submissions element index.
Fixed Tag fields incorrectly always saving the first available tag for a submission.
Fixed Hidden fields not always having the default value set on submission.
Fixed an error when using a Hidden field within a Group field.
Fixed a reactive issue when trying to edit a page name in the form builder.
Fixed validation error for File Upload fields, when navigating back to a previous page in a multi-form, page reload form.
Fixed server-side validation for File Upload fields and enforcing total number of files.
Fixed overflow tabs not working, when editing a submission in the control panel.
Fixed Date field (dropdown and inputs) incorrectly saving timezone information when editing submission through the control panel.
Fixed user permissions to
forms/refresh-tokens controller action.
Fixed an error when failing to save a form occurs.
Released Oct 30, 2021
Add support for editing the user of a submission, when editing or creating a submission in the control panel.
Fix hidden fields not having dynamically-set values persisted.
Fix boolean-configured fields for integrations not being parsed correctly.
Fix conditions evaluator to better handle equality checks for Checkboxes fields and
is not conditions.
Fix potential error where Spam and Incomplete options from the Submissions Index dropdown were missing.
pageIndex param in default templates.
Fix Sprout Forms and Freeform migrations when a default form/email template hasn't been set.
Add missing attributes to
PageSettingsInterface GraphQL interface.
When creating a new submission in the control panel, and collecting the user, assign the current user to the submission.
Only show the "IP Address" when editing a submission, if the form is set to collect IPs.
Fix a PHP 8 issue where
pageIndex wasn't handled correctly when submitting.
Released Oct 22, 2021
Added CSS variables for better/easier customisation of the Formie Theme CSS
Added ability to trigger Integrations when editing a submission.
formie/forms/refresh-tokens to allow captchas to work properly for statically-cached sites.
Added "Show Structure" field setting for Categories fields, to display a "-" character when outputting categories in a - to denote its hierarchy
Added "Structure" as a order by option for Categories fields
Added "Root Category" field setting for Categories field, to control which descendant category to start from during output
Added "Status" column to submissions index
Added lead to notes object for Pipedrive CRM integration
Added note to person, organization and deal objects for Pipedrive CRM integration
Page Tabs now show an error indicator when any of their fields contain errors.
Redirect URLs now automatically include any query string params.
Incomplete submissions now show a "draft" icon in the submissions index.
When multi-page forms contain field errors - on the final page submit, we redirect to the first page with an error for ideal UX.
Fixed GraphQL generator issues in some cases (Gatsby).
Fixed creating new submissions in the control panel not working correctly.
Fixed an error where submissions wouldn't receive the default plugin status.
Fixed Single-line and Multi-line Text fields not working correctly, when limiting via words.
Fixed Multi-line Text fields not enforcing character limits.
Fixed Pipedrive CRM integration with deprecated leads note handling.
Fixed forms always redirecting if the current URL contained a query string.
formie/csrf/* action endpoints. Refer to the updated docs on handling static cached forms.
Released Oct 18, 2021
Fixed an error with Gatsby Helper plugin (typo introduced in 1.4.21).
Released Oct 17, 2021
Added support for submissions to be created via the control panel.
createSubmissions permission for submissions.
Added support for Hidden fields to have their "Custom Value" set to other fields or special variables.
Added "Send Email Notification" function when editing a submission, or from the submission index.
spamEmailNotifications plugin setting to enable email notifications to be sent, even when a submission is marked as spam.
Added tags support to ActiveCampaign Email Marketing integration.
Added date picker options field settings for Date fields.
Added support for UI elements for Form Template fields.
EVENT_MODIFY_TIME_FORMAT events to control the date/time formatting for Date fields.
Added "None" position for error and success message options.
enableCsrfValidationForGuests setting to disable CSRF validation for submissions, specifically for guests.
When adding new values to Dropdown, Radio and Checkboxes fields via the "Bulk Options" utility now appends any options defined, instead of removing any existing options in the field settings.
request() methods from
public to allow third-parties to utilize Guzzle clients and requests for integrations in their own modules and code.
hoa/ruler dependancy, used for conditional logic rules parsing.
cpEditUrl for submissions to include the form handle.
Submissions now always return a default status (according to form defaults).
Fixed an error with Gatsby Helper plugin.
Fixed a PHP deprecation notice with Freeform migration.
Fixed recipients fields not working correctly when populating a hidden field with multiple values.
Fixed prune functions not taking into account timezone and comparing UTC dates correctly.
Fixed an error when trying to create a form with a long title, generating an invalid handle.
Fixed content-change warning when using a default value for a Date field, with Flatpickr enabled.
Fixed client-side validation triggering for hidden fields in some instances (Flatpickr Date fields).
Fixed a JS error when using a Tags field.
Fixed an error when sending the payload for a Webhook integration.
Fixed when using a Checkboxes field with a single value for the Opt-In Field for an integration not working correctly.
Fixed an error with email notifications when emails contain Unicode control characters, unassigned, private use, formatting and surrogate code points.
Fixed when calling
EVENT_DEFINE_RULES of a submission, where a rule contained a field that didn't exist on the owner form.
Released Oct 12, 2021
verify = false to Guzzle requests for Webhook integrations, when
devMode is enabled.
Improved error message when email notification body content returns no content. Some email providers hard-fail when trying to send an empty email.
Fixed Agree fields not working correctly for Email Notification conditions.
Fixed Dropdown fields not working correctly for Email Notification conditions.
Fixed Date fields not working correctly for Email Notification conditions.
Fixed Group and Repeater fields not working correctly for Email Notification conditions.
Fixed Table fields inside a Group field not saving correctly.
Fixed an issue where Group fields, inner fields would receive the incorrect namespace, when validation for the form page failed and page reload enabled.
Fixed an error for the Webhook integration in some cases when an error occurs.
Fixed Tag fields and their
beforeInit options not being applied to Tagify.
Fixed Date fields and their
beforeInit options not being applied to Flatpickr.
relations in POST requests for submissions being always present, when not always needed.
extraFields in POST requests for submissions being always present, when not always needed.
Fixed an error with
endswith field conditions, when dealing with empty values.
Fixed Page Reload forms not evaluating conditions in Group fields, for multi-page forms.
Fixed Group fields not evaluating field conditions correctly when sending email notifications.
Fixed sub-fields within Group fields not working correctly for variable picker, for email notifications.
Fixed when attaching the PDF to an email notification, can sometimes clear the body content of the email.
Fixed Phone number field values sometimes showing
() when a country code wasn't provided.
populateFormValues not working with Phone fields.
Fixed a deprecation when calling
populateFormValues when populating elements fields.
Fixed individual permissions for submissions not working for user permissions.
Fixed Agree fields not using their "Checked/Unchecked Value" values in integrations, when the destination field in the integration allows string text.
Released Sep 30, 2021
Fixed an error when garbage-collecting orphaned fields, where globally-context fields with the same handle would have their content columns removed. This only affects installs where a Formie field and non-Formie field have the same handle and the Formie field has been marked as orphaned (the owner form has been deleted). As such, this should only happen in rare circumstances.
Fixed email fields set to have unique values not working correctly for multi-page forms.
Released Sep 26, 2021
afterInit JS events for Tag fields.
Fixed Date fields (calendar and date picker) not saving time values correctly.
Fixed Email fields with "Unique Value" set throwing an error on Craft 3.7+.
Fixed Date fields throwing an error when used in the submission element index columns.
Fixed Name and Address fields not having their instructions position set correctly for new fields.
Fixed Date fields not always returning a formatted date as a string, when used in integrations.
Fixed Mailchimp email marketing integration not casting phone numbers to the correct type in some instances.
Allow element fields to modify the element query in templates.
Released Sep 17, 2021
onAfterFormieValidate JS events.
Added support for user photo uploading (via File Upload fields), for User element integrations.
Changed reCAPTCHA captchas now use
onFormieCaptchaValidate to hook into validation, allowing third-party handling of validation events for JS.
Fixed placeholder text for Phone field in the form builder, when country dropdown was enabled.
Fixed checkbox fields having their default options set when editing a submission.
Fixed submission titles not generating correctly in some circumstances.
Fixed Recipients dropdown field when an option has no value, not validating correctly.
Released Sep 13, 2021
FORMIE_INTEGRATION_PROXY_REDIRECT env variable for integrations.
Current URL (without Query String) option for hidden fields.
Added ability for hidden fields to set their column type, to assist with capturing large field values.
Changed Freefom migrations for a HTML field to use
hash as the field handle instead of a randomly generated handle.
Changed Freefom migrations for a HTML field to use
HTML as the field name.
Freeform/Sprout Forms migrations now auto-prefix fields that have reserved words as their handle.
Fixed migrated email notifications not respecting the "Default Email Template" plugin setting.
Fixed migrated forms not respecting the "Default Form Template" plugin setting.
Fixed an error when migrating a Freeform form, containing a HTML field.
Fixed Freeform/Sprout Forms migrations when fields contain invalid characters.
Fixed "Undefined variable" error when failed email notifications with attachments throws an error itself.
Fixed an error when running garbage collection on deleted forms.
Fixed an error when trying to migrate "all" Freeform forms.
Fixed Phone field country dropdown throwing an error when a default country was picked, but not included in the "Allowed Countries".
Fixed an error when saving a submission from the command line.
Fixed Checkboxes field not applying default checkboxes.
Released Sep 04, 2021
Added support for user-based variables in email notifications to support the recorded user on the submission when "Collect User" is enabled on forms.
Added option to Mailchimp integration to append tags. (thanks @boundstate).
Added support for Zoho CRM
jsonarray field types.
Element field values used in integrations can now include disabled elements.
Fixed checkbox validation not working correctly when "Validate When Typing" was enabled.
Fixed conditions used in forms triggering the "content changed" unload warning, when nothing has changed.
Fixed element fields when used in conditional rules not working correctly.
Fixed group fields not displaying values correctly, or saving properly in submissions.
populateFormValues() changing the current language for multi-site installs.
Fixed multi-page forms when marked as spam on a page, not being able to finalise submission.
Fixed Phone field country dropdown throwing an error when live validation is set for the form.
Fixed Phone field country dropdown throwing an error when a default country was picked, but not included in the "Allowed Countries".
Fixed some failed queue jobs for integrations storing large amounts of cache data when not needed.
Fixed an error when applying project config, with a stencil with the (incorrect) value of
defaultStatusId = 0.
Fixed table fields in notification emails not rendering correctly when containing time or date columns.
Fixed bouncer.js not processing grouped checkboxes correctly.
Fixed bouncer.js not properly listening to checkbox change events.
Fixed element fields not having their "Label Source" and "Options Order" settings use "Title" as the default for new fields.
Removed conditional handling for fields when editing a submission. Too complicated to handle both front-end fields and Craft fields.
Released Aug 17, 2021
Fixed recipients field values not saving correctly.