When you’re managing something like a conference registration or application form, you may want to ensure each respondent only fills it out once. While you could add a note at the top of the form asking users not to submit multiple responses, there’s no built-in way to prevent them from doing so – unless you implement a smart workaround.
In this blog, we’ll show you how to use a two-form process in FormAssembly to prevent duplicate submissions in a way that feels seamless for your respondents. By leveraging Salesforce connectors, object aliases, and conditional redirects, you can stop repeat submissions before they start.
Don’t feel like reading the blog? Watch the clip below from our annual virtual user conference, FormFest 2025, to take a closer look at how this works.
The Challenge: Preventing Repeat Submissions
Let’s say you’ve built a full registration form to collect contact info, dietary preferences, accommodation details, payment, and more. If you want to restrict registrants to one submission each, simply stating this rule on the form won’t stop someone from completing it twice.
Without a way to check for duplicates up front, you might find yourself cleaning up data manually in Salesforce later on. That’s where the two-form approach comes in.
The Solution: A Two-Form Workflow with Salesforce Lookup
The idea is to begin the process with a short pre-check form that quietly verifies whether the user has already submitted a registration. If they haven’t, they’ll be redirected to the full form. If they have, they’ll receive a polite error message and won’t be able to continue.
Step 1: Create a Short “Pre-Check” Form
This simple form asks for just three fields:
- First Name
- Last Name
- Email Address
It includes a submit button labeled something like “Next Page” to make the experience feel seamless so users won’t even realize they’re switching forms.
Step 2: Set Up a Salesforce Connector (Form Submitted)
In this form, add a Salesforce connector set to trigger after the form is submitted. Here’s what it should do:
- Lookup Step: Search Salesforce for a matching Contact based on the email address.
- If no match is found: Create a new Contact record.
- If one or more matches are found: Skip dependent objects so that no new Contact is created.
This lookup allows you to determine whether the person has already registered.
Step 3: Configure Redirect and Error Handling
In the Notifications section of the pre-check form:
- Add a custom error message (e.g., “Sorry, you may not continue as you have already submitted a response.”)
- In the Redirect URL, use a formula that checks whether the Contact object alias is blank:
- If blank (meaning a match was found and no new record was created), display the error message.
- If not blank, redirect the user to the full registration form.
- If blank (meaning a match was found and no new record was created), display the error message.
To streamline the experience, use a prefilled link so the user’s first name, last name, and email address carry over to the second form.
What This Looks Like for the User
Let’s say someone named Snow White has already submitted the form. If she tries to fill it out again:
- She completes the short pre-check form.
- Salesforce finds a matching Contact record.
- Instead of continuing, she sees the custom error message letting her know she’s already registered.
But if another user, Teddy Bear, is a brand new registrant:
- He completes the pre-check form.
- No Contact match is found, so a new record is created.
- He’s redirected to the full registration form with his information prefilled, ready to finish his submission.
Recap: What You’ll Need
To set up this one-response-per-respondent process, you’ll use:
- Two FormAssembly forms
- A Salesforce “Form Submitted” connector with lookup logic
- A Salesforce object alias
- A conditional redirect formula
- A form-to-form prefill connector
Together, these elements create a seamless user experience that helps prevent duplicates and keeps your Salesforce data clean – all without any manual cleanup.
Looking for a step-by-step walkthrough? Contact our support team or explore the FormAssembly Knowledge Base for setup details and best practices.