Plugin Settings
Freeform includes a wide variety of settings that allow you to customize your form management experience. To adjust your settings, click the Settings menu item while in the Freeform plugin, or go to Settings → Plugins → Freeform and click the settings link. These can also be configured within your Craft Project Config file
General Settings
Configure general settings for Freeform.
This page and its settings all become inaccessible when the Craft allowAdminChanges
config setting is set to false
.
Setting | Project Config | Description | Express | Lite | Pro |
---|---|---|---|---|---|
Custom Plugin Name | pluginName: 'Forms' | Override the plugin name by specifying your own here. | ✕ | ✕ | ✓ |
Default view | defaultView: forms | Allows you to specify which Freeform page should be loaded by default when clicking the Freeform navigation link. Options are: Forms (default) and Submissions | ✓ | ✓ | ✓ |
Plugin Badge | badgeType: all | Select the options you'd like to be included in the plugin badge count (when applicable). Options are: Don't Show, Update Notices & Logged Errors (default), Update Notices only, Logged Errors only, Submission Count, Spam Folder Count | ✓ | ✓ | ✓ |
Site-Aware FormsNew in 5.2+, Improved in 5.7+ | sitesEnabled: true | Allows you to optionally enable Site awareness in Freeform to show/hide them for specific Sites and enable translations per site for forms to have unique labels and messages on the front end. | ✕ | ✕ | ✓ |
Queue Job PriorityNew in 5.5.6+ | queuePriority: 20 | Set the queue job priority for background Freeform tasks to determine if they should run with a different priority compared to other jobs. Jobs with a lower priority are executed first. | ✓ | ✓ | ✓ |
Restrict Form options in Form Field Type to User permissions | formFieldShowOnlyAllowedForms: false | Enable this to only show forms the user or group has permissions to manage in the list of options for the Form Element Field Type (relating forms in Entries, etc). | ✓ | ✓ | ✓ |
Remove Newlines from Textareas for Exporting | removeNewlines: true | Enable this to have newlines removed from Textarea fields in submissions when exporting. | ✓ | ✓ | ✓ |
Use Option Labels when Exporting | exportLabels: true | Enable this to have fields with options use the submission's option labels instead of values when exporting. | ✓ | ✓ | ✓ |
Use Field Handles for Headings when Exporting | exportHandlesAsNames: false | Enable this to use field handles as headings instead of field labels when exporting submissions. | ✓ | ✓ | ✓ |
Fill Form Values from the GET Query String | fillWithGet: true | Enable this to be able to fill form field values from a GET query string in URI. To use this feature, make sure that the query in the URI matches the handle of the field(s) in the form, e.g. ?firstName=Bob&myRatingField=3 . | ✓ | ✓ | ✓ |
Enable Search Index Updating on New Submissions | updateSearchIndexes: true | Enable this to have Craft update search indexes whenever a new submission is created. | ✓ | ✓ | ✓ |
Automatically Purge Submission Data | purgableSubmissionAgeInDays: '365' | Enable and specify the number of days after submissions have been submitted for Freeform to begin automatically purging. | ✕ | ✕ | ✓ |
Enabling the Purge Submissions feature and saving this settings page will result in purging feature beginning, and cannot be undone (it may not happen immediately, and may take a couple hours before the next process runs). This process will only run every hour, and only when Freeform is accessed on the front end in templates or in the control panel.
Form Behavior
Configure the front end form behavior.
This page and its settings all become inaccessible when the Craft allowAdminChanges
config setting is set to false
.
Setting | Project Config | Description | Express | Lite | Pro |
---|---|---|---|---|---|
Disable Submit Button on Form Submit | formSubmitDisable: true | Enable this to automatically disable the form's submit button when the user submits the form. This will prevent the form from double-submitting. | ✓ | ✓ | ✓ |
Automatically Scroll to Form on Errors and Multipage forms | autoScrollToErrors: true | Enable this to have Freeform use JS to automatically scroll the page down to the form upon submit when there are errors or the form is continuing to the next page in multipage forms. | ✓ | ✓ | ✓ |
Automatically Scroll to top of the Form on AJAX submit | autoScroll: true | Enable this when using AJAX to have Freeform use JS to automatically scroll the top of the form on submit. This is especially beneficial when you have longer forms and success/error messages at the top of the form become out of sight. | ✓ | ✓ | ✓ |
Remember the Page Order in Multi-page forms | rememberPageSubmitOrder: true | When enabled, Freeform will take into account Conditional Rules page skipping when the user clicks the 'Previous' button on multi-page forms. | N/A | ✓ | ✓ |
Use Queue for Email NotificationsNew in 5.4+ | useQueueForEmailNotifications: true | Use Craft's queue system to trigger emails. Enabling this will speed up submission processing for your users. This depends on either routine traffic to your Craft control panel or implementing a proper queue-processing method that doesn't rely on someone visiting your control panel. | ✓ | ✓ | ✓ |
Use Queue for IntegrationsNew in 5.4+ | useQueueForIntegrations: true | Use Craft's queue system to trigger integrations (CRM and Email Marketing). Enabling this will speed up submission processing for your users. This depends on either routine traffic to your Craft control panel or implementing a proper queue-processing method that doesn't rely on someone visiting your control panel. | ✓ | ✓ | ✓ |
Script Insert Location | scriptInsertLocation: footer | The location of where you want Freeform to insert it's scripts for form and field functionality (such as spam protection and advanced field types). More info Options are:
| ✓ | ✓ | ✓ |
Script Insert TypeImproved in 5.3+ | scriptInsertType: files | Specify the way Freeform scripts are inserted. Options are:
| ✓ | ✓ | ✓ |
Number of Days to Keep Saved Form Data (Save & Continue Later) | saveFormTtl: '14' | The number of days to store saved form progress in the database before clearing for Save & Continue Later feature. | N/A | ✓ | ✓ |
Maximum Number of Saved Forms Per Session | saveFormSessionLimit: '5' | The maximum number of saved forms per session for Save & Continue Later feature. | N/A | ✓ | ✓ |
The Automatically Scroll to Form on Errors and Multipage forms feature can have its behavior can been manipulated with the Autoscroll Events.
Script Insert Location
The location of where you want Freeform to insert it's scripts for form and field functionality (such as spam protection and advanced field types).
- Page FooterRecommended
- Page HeaderNew in 5.0+
- Inside Form
- None (manually load the JS instead)
- If you choose this option, please be sure to manually load Freeform's JS with
/freeform/plugin.js
and CSS with/freeform/plugin.css
(optional, as it's currently just for the Opinion field type handling) in your template(s). See Freeform JS plugin documentation for more information.
- If you choose this option, please be sure to manually load Freeform's JS with
Freeform Session ContextDeprecated in 5.0+
Choose the way form context is passed between form submits.
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.
Options are:
sessionContext: payload
(default)sessionContext: session
sessionContext: database
- As an encrypted payloadDefault/Recommended
- The key benefits are that it never stores anything anywhere, has no impact on the server, and can be cached out-of-the-box.
- Using PHP's sessions
- The key benefits are that it stores the context in memory and everything per session ID.
- The problems with this approach are that it expires eventually with no way to persist this for longer periods of time. It's also unreliable due to garbage collection on most servers which typically runs every 24 minutes by default.
- Using a database table
- The key benefits are that the context is stored in the database reliably for as long as you wish, offering more control if you have large forms that take a very long time to complete.
- The problems with this approach is that high traffic sites may run into performance issues as the database table fills up and attempts to clear regularly, etc.
Form BuilderImproved in 5.0+
Control Freeform's form builder experience.
This page and its settings all become inaccessible when the Craft allowAdminChanges
config setting is set to false
.
Setting | Project Config | Description | Express | Lite | Pro |
---|---|---|---|---|---|
Live Render HTML Markup | defaults: previewHtml: true | Live rendering HTML markup in field labels, option labels and HTML blocks inside the Form Builder interface can sometimes conflict with Freeform's display of the form preview inside the control panel. In cases like these, you'll need to disable this setting to prevent HTML from rendering automatically. | ✓ | ✓ | ✓ |
Allow Twig to be enabled in HTML blocks | defaults: twigInHtml: true | A toggle will appear for each HTML block field inside the form builder, allowing the use of Twig code. | ✓ | ✓ | ✓ |
Render HTML block Twig in Isolated Mode | defaults: twigIsolation: true | When enabled, only the Freeform 'form' and 'fields' variables will be available. If disabled, Craft's variables will be included as well. | ✓ | ✓ | ✓ |
Include Freeform's Sample Formatting Templates | defaults: includeSampleTemplates: true | Allow users to select a sample formatting template included with Freeform for the form's Formatting Template setting. | ✓ | ✓ | ✓ |
Form Builder Notifications tabNew in 5.0+ | defaults: notifications: ... | Set the default templates for each email notification type. Optionally lock values as well. | ✓ |