Migration from Express Forms
If you wish to migrate from Express Forms to Freeform 5, please follow the special instructions below.
Important Notice - May 16, 2024
The Express Forms plugin has been discontinued.
It was originally created as a free and reliable form-building plugin for Craft CMS when other options were limited. It allowed for experimentation and trying different approaches, which was challenging to do with Freeform due to legacy constraints.
Over time, we incorporated new features and improved approaches from Express Forms into Freeform. With the significant rewrite of Freeform 5, we addressed many limitations related to extending and custom module development.
Now, Freeform 5 includes three editions: Express, Lite, and Pro. The Express edition of Freeform is free and suitable for most small sites that only require a simple contact form while offering many additional features and benefits.
What does this mean?
- Express Forms will not have a Craft 5-compatible version.
- Freeform 5 works on both Craft 4 and 5 and includes a migration utility from Express Forms.
- There will be no further updates for Express Forms 2.x, but support and critical bug fixes will continue.
- Customers with a Pro license of Express Forms will receive a free license to Freeform Pro for the transition. If we were unable to reach you, please get in touch with us.
Due to the nature of this update we recommend anyone migrating from Express Forms 2.x to do so carefully in a development environment and follow the special instructions below.
Key Differences
Compared to Express Forms, Freeform 5 offers significantly more features and options. Here are the key differences between the two:
Topic | Express Forms | Freeform 5.x | Required Action |
---|---|---|---|
Plugin EditionsAffects: All | Express Forms offered the following editions:
| Freeform offers the following editions:
| To choose the edition that is right for you, check out the Compare table for a complete breakdown of features for each edition. Please note that a fresh install of Freeform will likely automatically install the free Express edition. You will need to switch editions to enable Lite or Pro. |
Form BuilderAffects: All | The Express Forms form builder was intentionally simple. It offered just enough controls to build and configure your forms. | Everything is at your fingertips in our elegant and intuitive form builder. The Freeform form builder is an all-in-one interface that lets you take control of almost every aspect of your forms. | Be sure to explore and take advantage of all the new options available in Freeform. Check out the Form Builder documentation for a tour of the form builder. |
Field TypesAffects: All | Express Forms offers a very basic set of field types. It's up to you if you want to expand on how those fields look and behave in your template. | Freeform offers an extensive set of field types and the ability to configure them more in-depth directly inside the form builder. | Your fields will be migrated to the same or similar field type in Freeform. If you wish to change any of those fields, you can simply change the field type of these directly inside the form builder. Specifically, the Options field type will be converted to Freeform's Checkboxes field type. If it should be a Dropdown or Radios, you can change it after the migration. Check out the Fields documentation for a complete list of all field types. |
Formatting TemplatesAffects: All | In Express Forms, each form needs to be coded directly into the template page it is being displayed on. | In Freeform you can use sample formatting templates or create your own. The advantage of these are that they can automatically render forms based on how you have layed out the fields and configured them inside the form builder. This also keeps your template code clean since it allows you to create a template once and reuse it for as many forms as you like. | It's possible to manually hard code your forms the way you have been in Express Forms, but we highly encourage you to check out the formatting template feature. Check out the Formatting Templates documentation for more information. |
Spam ProtectionAffects: All | Express Forms only offers a honeypot and reCAPTCHA v2 Checkbox for spam protection. | Freeform offers a wide variety of spam protection features including reCAPTCHA, hCaptcha, Honeypot, Javascript Test and Blocked Keywords, most of which can be configured per form as well. There is also a built-in Spam Folder that allows you to review and retrieve any submissions that were flagged as spam by Freeform. | All spam protection controls and captchas need to be set up again in Freeform. We encourage you to consider upgrading any spam protection as well, e.g. use reCAPTCHA v3 instead of reCAPTCHA v2 Checkbox, add blocked keywords, etc. Check out the Spam Protection documentation for more information. |
IntegrationsAffects: Most | Express Forms offered a small set of common integrations. | Freeform offers a wide variety of integrations, and these are handled a bit differently than Express Forms. Because of this, no integrations are migrated, and will need to be recreated. | The migration from Express Forms will NOT import any integrations. They will need to be set up again in Freeform. This includes CRM, Email Marketing, Captchas, etc. Check out the Integrations documentation for a complete list of all integrations. |
Dynamic RecipientsAffects: Some | To allow users to dynamically choose which admin should receive the email notification, a Dynamic Recipients feature was offered at the template level. | Freeform allows users to select which recipient(s) the form submission should be emailed to using any regular option-based field type that is configured as a User Select field inside the form builder. This allows for much greater power and flexibility, and allows values to be stored correctly in the database. There is also the ability to create Conditional Notifications inside the form builder as well. | The migration from Express Forms will be unable to detect any Dynamic Recipient setups due to them being based directly inside the template, so this will NOT be migrated. Please take advantage of reconfiguring these in Freeform's User Select or Conditional notification options in the form builder. Check out the Email Notifications documentation for more information. |
GraphQLAffects: Few | No support for GraphQL. | Freeform supports querying form layouts and using mutations to create submissions via GraphQL. | Check out the Headless documentation for more information. |
Feature Comparison
Check out the feature comparison table below to help you determine which edition of Freeform is best for your needs.
Express Forms | FF Express | FF Lite | FF Pro | |
---|---|---|---|---|
Price | Free / $49 (Pro) | Free | $99 | $149 |
Compatibility The same 5.x version works on both Craft 5.x and 4.x. | Craft 4.x | Craft 5+, Craft 4+ | Craft 5+, Craft 4+ | Craft 5+, Craft 4+ |
Works on Craft Cloud | ✕ | ✓ | ✓ | ✓ |
Popular Framework Examples | ✓ | ✓ | ✓ | ✓ |
Automated Templating | ✓ | ✓ | ✓ | ✓ |
Intuitive Drag & Drop Form Builder | ✓ (Simplified) | ✓ | ✓ | ✓ |
Customize the display of Field types | ✕ | ✕ | ✕ | ✓ |
Multi-page Forms | ✕ | ✕ | ✓ | ✓ |
Save & Continue Form Later | ✕ | ✕ | ✕ | ✓ |
Conditional Rules Logic | ✕ | ✕ | ✕ | ✓ |
Built-in AJAX | ✕ | ✓ | ✓ | ✓ |
Store, View and Edit Submissions | ✓ | ✓ | ✓ | ✓ |
Field Encryption | ✕ | ✕ | ✕ | ✓ |
Edit Submissions on Front End | ✕ | ✕ | ✕ | ✓ |
GDPR Compliant | ✓ | ✓ | ✓ | ✓ |
Site Filtering for Forms and Submissions | ✕ | ✕ | ✕ | ✓ |
Automatically Purge Submission Data | ✕ | ✕ | ✕ | ✓ |
Automatically Purge Spam Submission Data | ✕ | ✕ | ✓ | ✓ |
Email Notifications | Admin, Email Field, User Select, Template-based | Admin, Email Field, User-Defined, Template-based | Admin, User Select, Email Field, User-Defined, Template-based | Admin, Conditional, User Select, Email Field, User-Defined, Template-based |
Email Alert of Failed Email Notifications | ✕ | ✕ | ✓ | ✓ |
Weekly/Daily Digest Emails | ✕ | ✕ | ✓ | ✓ |
Exporting of Data | Basic CSV | Basic CSV | Basic CSV | Excel, CSV, XML, JSON, Text |
Export Profiles (pre-configured) | ✕ | ✕ | ✕ | ✓ |
Export Email Notifications | ✕ | ✕ | ✕ | ✓ |
Attach Forms to Entries | ✕ | ✕ | ✕ | ✓ |
Attach Submissions to Entries | ✕ | ✕ | ✕ | ✓ |
Number of Forms | Unlimited | 1 | Unlimited | Unlimited |
Number of Fields | Unlimited | Up to 20 | Unlimited | Unlimited |
Custom Statuses | ✕ | ✓ | ✓ | ✓ |
Basic Field Types | ✓ Includes an Options field instead of Dropdown, Checkboxes, Radios | ✓ | ✓ | ✓ |
Premium Field Types | ✕ | ✕ | ✕ | ✓ |
Build Custom Field Types | ✕ | ✓ | ✓ | ✓ |
Populate Fields with Element Data or Predefined Options | ✕ | ✕ | ✓ | ✓ |
Surveys & Polls Reporting | ✕ | ✕ | ✕ | ✓ |
Limited Users (form builder permissions.mdx) | ✕ | ✕ | ✕ | ✓ |
Set Defaults and/or Lock Form Builder Settings | ✕ | ✓ | ✓ | ✓ |
Limit Form to 1 Submission per User | ✕ | ✕ | ✕ | ✓ |
Limit Number of Submissions per Form | ✕ | ✕ | ✕ | ✓ |
Set a Close Date per Form | ✕ | ✕ | ✓ | ✓ |
Automatically Store Logged In User ID on Submissions | ✕ | ✓ | ✓ | ✓ |
Map Submission Data to Craft Elements | ✕ | ✕ | ✕ | ✓ |
Edit Other Craft Elements | ✕ | ✕ | ✕ | ✓ |
Relate Submissions to Craft Elements | ✕ | ✕ | ✕ | ✓ |
Honeypot Test (Spam) | ✓ | ✓ | ✓ | ✓ |
Javascript Test (Spam) | ✕ | ✕ | ✓ | ✓ |
Spam Folder | ✕ | ✓ | ✓ | ✓ |
Spam Blocking | ✕ | ✓ | ✓ | ✓ |
Captchas | reCAPTCHA v2 Checkbox | reCAPTCHA v2 Checkbox | reCAPTCHA v2 Checkbox or Invisible, reCAPTCHA v3, hCaptcha Checkbox or Invisible | reCAPTCHA v2 Checkbox or Invisible, reCAPTCHA v3, hCaptcha Checkbox or Invisible |
Email Marketing Integrations | Mailchimp, Campaign Monitor, Constant Contact (Pro) | ✕ | ✕ | Mailchimp, Campaign Monitor, Constant Contact, ActiveCampaign, Dotdigital, Campaign plugin |
CRM Integrations | Salesforce, HubSpot (Pro) | ✕ | ✕ | Salesforce, Pardot, HubSpot, ActiveCampaign, Pipedrive, Zoho CRM, Keap, Insightly, SharpSpring, Freshdesk |
Webhooks Integrations | ✕ | ✕ | ✕ | Slack, Zapier, generic |
Other Integrations | ✕ | ✕ | ✕ | Google Sheets |
POST Forwarding | ✕ | ✕ | ✕ | ✓ |
GraphQL Support | ✕ | ✕ | ✓ | ✓ |
Stripe Payments | ✕ | ✕ | ✕ | ✓ |
Dashboard Widgets | ✕ | ✕ | ✕ | ✓ |
Important Update Warnings & Notices | ✕ | ✓ | ✓ | ✓ |
Translatable | ✓ | ✓ | ✓ | ✓ |
Rename Plugin | ✓ (Pro) | ✕ | ✕ | ✓ |
Running the Migration
Be sure to back up your site files and database before proceeding.
Install Freeform 5
Install Freeform 5 while on Craft 4 if you haven't already done so.
If you plan to upgrade from Craft 4 to Craft 5, we strongly recommend running this migration while still on Craft 4, as there is no Craft 5-compatible version of Express Forms. Freeform 5 is compatible with both Craft 4 and Craft 5.
Go to the Migration utility
- Go to the Import / Export section in the Freeform control panel.
- In the left column, click on Migrate from Express Forms. It will appear as long as Express Forms is currently installed.
Run the Migration utility
- Go to the Import / Export section in the Freeform control panel.
- In the left column, click on Migrate from Express Forms. It will appear as long as Express Forms is currently installed.
- Select which forms, notification templates and submission sets you'd like to import.
- Choose the behavior the import should observe if it runs into forms and notification templates with the same name in Freeform.
- There currently is no duplicate submission detection options at this point.
Cleanup
There will almost certainly be some amount of cleanup required for every site.
- Review the key differences table above and make any necessary or recommended changes.
- Review and update all Freeform settings, submission data and forms in the form builder.
- Review and update your templates and formatting templates (if you have any custom ones) and ensure that everything works correctly and any necessary updates are made.