Express Forms Express Forms for Craft
2.x Discontinued

WARNING

The Express Forms plugin has been discontinued. Please see the Freeform migration guide for more information.


Common Issues & Questions

Check out this documentation resource to troubleshoot common problems or find answers to common questions.

Emails not sending

The most common issue users run into is email notifications not sending out properly. Most commonly, this is due to a syntax error in their notification template, or an email server configuration issue.

  • Are you 100% certain the email notification is not in a spam folder?
  • Is the email address correct?
  • Is the form successfully being submitted? You can verify this by checking for submissions in the Express Forms control panel. If you have the Save Submissions setting disabled for the form, consider enabling it temporarily to confirm this.
  • Have you checked the Express Forms Error Log page (Express Forms -> Settings -> Error Log)? The Express Forms error log is physically located in the same place as the Craft logs (/storage/logs/express-forms.log). If there are no logged errors, the Error Log page will not show any errors, and you will likely not see the Express Forms error log file.
  • If using the dynamicNotifications parameter at template level, be sure to have the proper syntax and the proper email notification template name (with .html file extension if using HTML file).
  • Verify that your email notification template is using the correct syntax. Using incorrect syntax will result in a silent error and failure of the email notification sending. For all inputs such as Subject and From Name, as well as the Email Body area, the syntax is as follows:

    • All custom Express Forms fields are {fieldName}
      • E.g. {firstName}, {email}
      • Do not prefix the properties with form., as that refers to info about the form itself (see below)...
    • Anything related to info about the form itself is as follows:
      • {{ form.name }} - the Name of the form
      • {{ form.handle }} - the Handle for the form
      • {{ form.id }} - the ID of the form
  • Verify that the fields you're manually calling (if applicable) actually exist for the form and contain data. For example, if you include a field such as {fullName} in the From Name input field, but your form uses something like {firstName} and {lastName} instead, it will result in a silent error and failure of the email notification sending.

  • Verify that your Directory Path setting for Email Notification HTML files is correct. This can be a common issue if you're switching between dev/staging/production environments.
  • Have you tried testing this inside the demo templates that come included with Express Forms? This will at least help narrow things down to possibly an error in your template code if applicable.
  • Are you sending to and from the same email address or email address domain? For example, sending FROM bob@my-precio.us TO bob@my-precio.us, OR FROM bob@my-precio.us TO larry@my-precio.us. Sometimes the email server has very aggressive spam protection and knows that the email is not actually coming from that email address, and blocks the email altogether.
  • Can you send email with Craft's Email Testing feature? Express Forms uses Craft's Email service, so if that doesn't work, then Express Forms won't either. To check this, in the Control Panel go to Settings -> Email, then scroll down to the bottom of the page and click the Test button. You can read more about troubleshooting email errors on Craft's documentation page.
  • To be extra thorough, you can also try sending notifications with Craft's simple Contact Form plugin.
  • Are you getting redirected correctly after form submission? Be sure that you don't have any routes or .htaccess rewrites that conflict with the form submission.

Form not submitting

A common issue customers run into is their forms not submitting successfully. There's a variety of reasons this might be.

  • Are you sure the form is not being successfully submitted? You can verify this by checking for submissions in the Express Forms control panel. If you have the Save Submissions setting disabled for the form, consider enabling it temporarily to confirm this.
  • Have you checked the Express Forms Error Log page (Express Forms -> Settings -> Error Log)? The Express Forms error log is physically located in the same place as the Craft logs (/storage/logs/express-forms.log). If there are no logged errors, the Error Log page will not show any errors, and you will likely not see the Express Forms error log file.
  • Have you tried testing this inside the demo templates that come included with Express Forms? This will at least help narrow things down to possibly an error in your template code if applicable.
  • Do you have caching on your template and/or site? Heavy caching will prevent the Craft CSRF token and Express Forms hash from reloading and stop the form from working. If you need to cache your page/site, you'll need to find a way to manually refresh these for each page load.
  • Do you have a rewrite rule for trailing slashes to be removed for .htaccess or Nginx? Try temporarily removing or disabling that and see if it resolves the issue. If using Nginx, you may want to check out this article.
  • Do you have Javascript enabled for your browser? If you don't, and you're using Express Forms' built in Spam Protection feature, it won't submit the form successfully.
  • Have a look at the Blocked Spam count for your form in the CP -> Express Forms -> Forms list. If the count is increasing each time you attempt to submit the form, Express Forms' Spam Protection feature is blocking your submissions.
  • Try disabling the Spam Honeypot feature (CP -> Express Forms -> Settings -> Spam Settings and set Spam Protection setting to disabled) and test again.
  • Are you getting redirected correctly after form submission? Be sure that you don't have any routes or .htaccess rewrites that conflict with the form submission.
  • To be extra thorough, you can also try submitting Craft's simple Contact Form plugin.

All Submissions Flagged as Spam

If all of your form submissions are being blocked as spam or appearing in your Express Forms control panel Spam Folder, try checking the following:

  • Have you tried testing this inside the demo templates that come included with Express Forms? This will at least help narrow things down to possibly an error in your template code if applicable.
  • Do you have caching on your template and/or site? Heavy caching will prevent the Craft CSRF token and Express Forms hash from reloading and stop the form from working. If you need to cache your page/site, you'll need to find a way to manually refresh these for each page load.
  • Do you have a rewrite rule for trailing slashes to be removed for .htaccess or Nginx? Try temporarily removing or disabling that and see if it resolves the issue. If using Nginx, you may want to check out this article.
  • Do you have Javascript enabled for your browser? If you don't, and you're using Express Forms' built in Spam Protection feature, it won't submit the form successfully.

500 Error - No form ID specified OR The request response is empty

If you're seeing either of these errors or something similar when trying to save your form in Express Forms CP Composer or submit the form in front end template, it's very likely related to your site having a rewrite rule for trailing slashes to be added or removed for .htaccess or Nginx. Try temporarily removing or disabling that and see if it resolves the issue. If using Nginx, you may want to check out this article. The easiest way around this might be to just try excluding the admin directory from the rewrite:

.htaccess





 
 


# Append a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/$
# Exclude Admin directory
RewriteCond %{REQUEST_URI} !^/admin/
RewriteRule . %{REQUEST_URI}/ [R=301,L]
1
2
3
4
5
6
7

Nginx

# Redirect URLs with trailing slash, exclude Admin directory
rewrite ^/(?!admin)(.*)/$ /$1 permanent;
1
2

Errors about missing files/pages in CP

If you're seeing an error in the Express Forms control panel area saying that a file or page doesn't exist / is missing (e.g. when attempting to create a new email notification template, etc). This is usually a result of the file actually being missing on the site, or being blocked for some reason. Make sure that your server, site, or FTP client is not ignoring or excluding certain files and/or directories for any reason (e.g. an .htaccess rewrite rule that manipulates URL's can interfere with Express Forms's POST to /save by redirecting it to /save/, etc). In all known cases of this, the aforementioned solutions always resolved the issue.

Javascript Errors in Safari when using reCAPTCHA

If you're getting JS errors that say "The source list for Content Security Policy directive 'script-src' contains an invalid source: "strict-dynamic". It will be ignored. on forms using reCAPTCHA in Safari, this is a known issue on Google and Safari's part. It technically does not interfere with the form functioning correctly, but they are choosing not to address the issue for some reason.

Data not sending to API integrations

The most common reason why data doesn't get sent to an API integration is because of a field mapping error, whether it's a required field on the API integration side that isn't being fulfilled on the Express Forms submission, or the data formatting not matching expectations, etc.

  • Have you checked the Express Forms Error Log page (Express Forms -> Settings -> Error Log)? The Express Forms error log is physically located in the same place as the Craft logs (/storage/logs/express-forms.log). If there are no logged errors, the Error Log page will not show any errors, and you will likely not see the Express Forms error log file.
  • Have you tried testing this inside the demo templates that come included with Express Forms? This will at least help narrow things down to possibly an error in your template code if applicable. If your form doesn't work inside the demo templates, try creating an additional form that is simple (e.g. Name, Email, and Message fields), and try submitting again.
  • Is the field type / data formatting supported in the API integration? Not all field types are supported for each integration. This is usually noted near the top of the page of each API integration setup documentation page.

Issues with Salesforce API connection

Salesforce usually disables the API access entirely with their Trial version. You will need to contact Salesforce support to manually enable it for you.

If you're seeing any errors as follows:

Client error response [status code] 400 [reason phrase] Bad Request [url] https://login.salesforce.com/services/oauth2/token'

  • This is because Salesforce runs differently when in Sandbox mode, so be sure to enable the Sandbox Mode option inside the CRM integration setting in the Express Forms control panel.

No 'refresh_token' present in auth response for SalesforceLead. Enable offline-access for your app.

  • Make sure that the Perform requests on your behalf at any time (refresh_token, offline_access) setting is added to the Selected OAuth Scopes field for your app in Salesforce.

How many sites can I use Express Forms on?

Each purchase of Express Forms entitles you to use it on one site (including dev/staging copies of the site). For every additional site you wish to use it on, you'll need to purchase additional licenses.

Does the Trial version limit features?

The trial versions of Solspace software are not limited in any way. They are the complete versions, and let you do the same things as a purchased license. However, if you attempt to use a trial version on a production site, Craft will display a red banner at the top of your control panel alerting you to purchase a license.

What kind of email notifications can I send?

Express Forms allows you to send email notifications upon submittal of a form 5 different ways, each with their own content/template:

How do I show textarea line breaks in email notifications or submissions?

Textarea data is stored in the database as newlines, which obviously don't parse as line breaks when trying to display in email notifications or on front end with Submissions object. To make this happen, use the nl2br Twig filter, which can be done in a variety of ways:

{coverLetter|nl2br}

{coverLetter|nl2br|raw}

{% set letter = coverLetter|nl2br %}
{{ letter|raw }}
1
2
3
4
5
6