Formstack uses a “best effort” approach to limit and avoid duplicate submissions. However, there are a few considerations that may lead to unexpected results as detailed below.
Firstly, what is a duplicate? if a user submits a form with one set of values then re-submits the form with exactly the same values, we may be tempted to call it a duplicate. However, sometimes the duplicates are intended. As an example, let's say a researcher may use a Formstack form to survey consumers and one of the questions being asked is “On a scale of 1 to 10, how do you rate your experience”. The submission data for this use-case will mostly be duplicate data since the all the options are similar.
Formstack has no way to know what is intended or unintended duplicates. We do not review our user’s data nor their use cases; however, if you’d like more guidance in this area with building out your form, we have a team that can help you with that (How to contact our Professional Services team). Therefore, our data duplication insights are limited to form view and time. As an example, if an end-user views a form, completes and submits the form then uses the back button (not page refresh) we can easily determine that the form was viewed once and submitted twice, but this will only work within short periods of time. If a form is viewed, submitted, back-button, then left open for a day, a week or a month, the second submit would not be detected as a duplicate. If you think you're experiencing a system generated duplicate, we'd recommend filing a support request here for our team to investigate.
It’s worthy to note that we rely on some browser provided functionality. This means that from time-to-time when browsers get updated, it can have an effect on the information we can gather from suspected duplicate submissions.
Not to worry, knowing is half the battle and Formstack offers a ‘unique’ option on several field types to help with preventing duplication. The unique option effectively communicates to Formstack what data is intended to be unique and therefore not duplicated. It's important to note that not all fields are good candidates for the unique option, for example, you would not want to use this option on a field where form submitters would be entering in similar answer options such as yes/no. It is best to set one and only one field as unique, like “email”. The unique option is not available for forms with encrypted data because we have no way to see the data to determine if a field has a unique value.
Common issues with Mobile Safari
Mobile Safari has a performance feature that caches previously viewed pages. This allows the end-user to continue browsing where they left off. An example of this would be, somebody calls the end-user, they switch activity to take the call and then go back to the browser after the call. The unintended consequence is that the page the end-user is reading may be the “Thank you” page that is displayed after a form is submitted. When Safari loads the page from cache it also checks to see if the page is still current, which in-turn resubmits the form, creating an unintended duplicate. Please keep in mind that this behaviour is that of the Safari browser, not Formstack.
This is a known issue that affects anybody collecting submission data and not only Formstack.
At the time of this writing(December, 2023) this issue was isolated to Mobile Safari. However, Apple has made the browser identifier (user agent) indistinguishable from Desktop Safari. This means that the issue may also be present in Desktop Safari and we would have no way of knowing. We have some additional suggestions below on how you can avoid submission duplication and would strongly recommend creating some messaging on your form to help avoid it for your end users that prefer Safari.
For Safari users, we recommend creating a custom submission message that forces the page to reload or you can redirect to a new URL entirely (How to setup submit actions on your form). If you do not want to redirect, you can also include in your submission message a request that your end user closes out the browser on their phone and/or navigates away from the page manually. These methods can be used to avoid duplicates in addition to the unique field option we had previously mentioned.