Ever since Deftform launched in April 2024, it was possible to archive responses. Those responses could not be accessed anymore and our customers had no option to restore them in any way. It was planned to build this option soon after launch, but we were occupied with other things involving the platform. And zooom, almost a year has passed and we finally got to it... phew!
To be fair, many other, more important things were added in between.
In addition, responses can now be permanently deleted. Before that, only we as platform owner were able to fully delete those archived responses upon request by our customers (nobody ever asked us so far).
Today, we added an option to categorize and search forms.
Form tags and favorites
Creating tags
To create tags, head over to the workspace settings. You can create as many tags as you want and rename them whenever needed.
Assigning tags
To assign tags, open any of your forms. At the bottom, you will see a new option to add a tag.
After you assigned tags to your forms, you can use the new filter on the forms overview page. We also added a search bar to quickly find a form by searching the title.
Save as favorite
You can also save a filter as favorite to quickly access the forms from within the main navigation.
Today we fixed an issue where uploading images from within the backend area would result in a server error (Error 500). Thanks for reporting and sorry for the short interruption.
Today we added a new captcha option to protect your forms and also a new validation option for upload fields.
ALTCHA captcha
We've introduced a new captcha option: ALTCHA. This self-hosted solution ensures that no data is transmitted to third-party vendors, offering a privacy-friendly alternative to our existing Google reCAPTCHA option.
We also plan to add support for Turnstile (via bring your own key) within the next couple of weeks.
MIME validation
We also added a new validation option for the upload field. You can now define which formats are allowed for people to upload.
This rule validates the MIME type of the file by reading the file's contents and guessing its MIME type. When creating this rule, you only need to supply the extension, e.g. jpg,webp,png and the rest is done behind the scenes.
We're happy to release this highly requested feature: you can now choose to send a PDF export of a submission directly to admins via email. No more manually downloading the files from our platform.
This is a per-form setting and disabled by default. To enable it, open the form settings and within the "After submit" tab, scroll down to the "Admin notification" section.
Since more and more customers are using webhooks to connect with third-party services, we have received several requests that require us to implement changes potentially leading to a breaking change.
New options for webhooks
We added two new options to webhook deliveries:
Include non-filled fields in webhook response
Default: false
When this is enabled, non-filled fields are send with the webhook. By default, only filled fields are send.
Include file names of uploaded files
Default: true
When this is enabled, uploaded files are send like that:
So the original file name separated with a pipe | and then the file url. It has been like that since we introduced webhooks. If you disable this option, only the file url will be send.
⚠️ Breaking change
Files are now send as arrays, not strings, even if only 1 file was uploaded.
Before the change, files would be added at the end of the payload. Files are now in line with the sorting of the form fields. To prevent "artificially" adding more fields if multiple files were uploaded, the new data array looks like this:
We were made aware of an issue with our Google Sheets integration that we have now fixed.
On December 11, our underlying OAuth library got updated and introduced a change that broke our integration. The updated library did not mention any breaking changes and we're currently in contact with the developers of the library to check if we missed something.
As a consequence, older responses may not have synced to existing sheets and new connections could not be added. After we deployed the fix, earlier submissions should have been added to existing sheets as they were still in a "pending" state.
To make sure sheets are up-to-date, we suggest to manually clear the sheet (= delete all data in the sheet) and use our bulk sync function to import all submissions. Alternatively, you may delete the connection in the form and add a new one and then bulk sync the submissions.
But if your responses count is already the same as the rows in your sheet (minus the heading), there is nothing for you to manually sync.
We now have added dedicated error logs to the Google Sheets integration so in case something like that happens again, we'll be notified right away.
We just released early access to our API, added an option to enable a time picker, and fixed various, smaller bugs.
API in public beta
Our API is now available and should be considered public beta. Not all planned endpoints are available yet, and there is no official documentation yet. Nonetheless, feel free to head over to the new API settings to see how to get started.
Time picker option for date picker field
We added an option to enable a time picker if a form has a date picker field. This has been requested quite a few times, and we're happy to finally offer this option.
As noted in a recent update, you can change the locale of your workspace, which will change the language of the date picker, and it will now also take the time picker into effect. If you select "English US", you will have AM and PM in the 12h format; if you selected German, you will have 24h format.
Fixes
We also fixed a handful of smaller issues and improved the field validations a little.
For those who need additional and extended features, we're happy to introduce our Business add-on.
This add-on allows you to enable data enrichment, which is best suited for B2B contacts. Only collect the email address and automatically gather additional data such as full name, social accounts, photo, phone numbers and various company details.
We also automatically check the validity of the email address that was entered by the user. So you can be sure that you received a valid email address.
Other features include a custom workspace logo in the backend, the ability to sell multiple products via Stripe, removal of the Deftform backlink, removal of the "Report form" badge, disabling of the 2-minute limit, and custom SMTP service integration (also available as a separate add-on).
The Business add-on is a monthly subscription and can be purchased via the Access / Billing section when logged in.
Today we shipped our first, basic version of conditional logic, made improvements to the date picker, and also added an option to password-protect a form.
Conditional logic - show / hide fields
The first version of conditional logic is now available. You can show/hide fields based on the selection a respondent makes. Supported trigger fields are Rating, Single Select, and Dropdown. Supported fields will probably be extended in a future update. Currently, only the Rating field supports operators other than "is equal".
This functionality will also be extended in the future.
Show comment field if rating is below a certain threshold
Improved date picker
We also made a few improvements to the date picker. First off, we changed the appearance, making it easier to click dates and select the year. You can now also change the locale of the date picker. It previously used US English by default, with Sunday as the first day of the week.
You can change the locale in the workspace settings (it's a global setting for all date pickers in that workspace). We currently support 28 languages. If you are missing one, feel free to get in touch.
Password-protected forms
And last but not least, you can now set a password that has to be entered when viewing a form. You can find the option for this in the form settings.
We also fixed a handful of bugs and made some subtle changes across the backend area.
Today we shipped improvements for form embeds and also extended the possibility for field parameters.
Embed improvements
Since more and more of our customers embed their forms into their websites, some noted (ahem.. complained) that there is an issue with longer forms. After submitting, the height of the form would stay the same even though it should be smaller since only the "Thank you" message appears.
Another thing was that the thank you message was not always visible / in the viewport. Again, this mostly affected longer forms.
Both of these things are now corrected. After submitting an embedded form, the height is reduced to the actual, new height and we also make sure that the thank you message is visible.
Dynamic parameters for email subject and email text
This has been requested a few times in the past, and we're happy to report that this is now possible. You can now use field parameters in the email subject, email message and thank you message.
We were made aware of an issue regarding our Google Sheets integration. It was not possible to create a new connection on a workspace level because the connection was always assigned to the user who connected the Google account. This was not necessary the workspace admin and that was causing issues when trying to create a new connection in a different workspace (by the same Deftform account).
So the fix basically means that connections to Google accounts are now assigned to the actual workspace, not a single user account.
We created a migration script to create missing integrations for existing workspaces. Everything was working fine for our test accounts and syncs continued to work.
If, however, you run into issues, please remove the connection and create a new one. It should not be necessary though, but just in case. After that, simply run a one-time bulk import to re-sync all data.