You can build a multi-step form in Webflow using one form block, stacked step divs, and native interactions to swap between them. No JavaScript. No third-party tools. Every submission lands in Webflow's native form handler with all fields included.
The key insight is that every form field stays inside a single Webflow form element. The "steps" are purely visual. You show one group of fields at a time and hide the rest. When the user reaches the final step and clicks submit, all fields submit together as one form.
This works because Webflow's form submission collects every named input inside the form block, regardless of whether it is currently visible or hidden. Visibility is a CSS property. The form does not care about it.
Why Multi-Step Forms Convert Better
Before I walk through the build, here is why you should care about multi-step forms in the first place.
Long forms scare people away. When someone lands on a form with 8-12 fields, their brain does a quick cost-benefit calculation: "Is filling all this out worth what I am getting?" For a newsletter signup with one field, the answer is almost always yes. For a detailed intake form, the answer depends on how the form presents the effort.
Multi-step forms break that perceived effort into smaller chunks. Instead of seeing 10 fields at once, the user sees 3 fields and a progress bar showing "Step 1 of 3." Each step feels quick and achievable. By the time they reach step 3, they have already invested time in steps 1 and 2, so they are more likely to complete the form. This is the commitment and consistency principle in action.
The use cases where I see the biggest impact are:
- Med spa and clinic intake forms. Patient information, treatment interest, insurance details, and scheduling preferences. These forms can have 12-15 fields. Splitting them into 3-4 steps makes them feel manageable for patients who are often booking on their phones.
- SaaS demo request forms. Company name, role, company size, specific interests, preferred demo time. SaaS founders want qualified leads, so they need multiple fields. Multi-step lets them collect that data without killing conversion.
- Freelancer or agency project inquiry forms. Budget range, timeline, project type, description. I use a multi-step form on my own contact page for this reason.
The Structure: One Form, Multiple Steps
Here is the exact structure to build in Webflow:
- Add a Form Block to your page. This is the only form element you need.
- Inside the form block, delete the default fields.
- Add a Div Block for each step. I usually name them "Step 1," "Step 2," "Step 3," etc.
- Inside each step div, add the form fields for that step. Use Webflow's native input, textarea, select, radio, and checkbox elements.
- In each step except the last, add a button (not a submit button, just a regular link block styled as a button) labeled "Next" or "Continue."
- In each step except the first, add a "Back" button.
- In the last step, add the actual Submit button from Webflow's form components.
- Set all step divs except the first to display: none.
The critical rule: every field must be inside the single form block element. Do not create separate form blocks for each step. That would create separate forms, and each one would submit independently.
Name every input field clearly in the settings panel. These names appear as column headers in your Webflow form submissions and in any integrations (Zapier, Make, etc.). Use names like "first-name," "email," "company-size," "project-type," not generic names like "Field" or "Field 2."
Wire Up the Step Transitions
This is where Webflow interactions handle the "multi-step" magic.
Select your "Next" button in Step 1. Add a click interaction (Mouse Click trigger, first click). In the animation:
- Target "Step 1" div, set display to none.
- Target "Step 2" div, set display to block (or flex, matching your layout).
That is the basic swap. When the user clicks "Next," Step 1 hides and Step 2 appears.
Do the same for Step 2's "Next" button (hiding Step 2, showing Step 3) and for every "Back" button (hiding the current step, showing the previous step).
To make the transitions feel polished, add opacity and transform animations:
- Set Step 1 to opacity 0 and move-left 20px over 200ms, then set display none.
- Set Step 2 to display block, then opacity 1 and move-right from 20px to 0px over 200ms.
This creates a subtle slide transition that tells the user they are moving forward through the form. The back button reverses the direction (slide right to left) to reinforce spatial navigation.
Add a Progress Bar
A progress bar is optional but noticeably reduces drop-off. It tells the user how far along they are and how much remains.
Build it with simple Div Blocks:
- Create a "Progress Bar Container" div above your step divs but still inside the form block. Set it to width: 100%, height: 4px, background: light gray.
- Inside it, create a "Progress Bar Fill" div. Set it to height: 100%, background: your brand color.
- On page load, set the fill width to 33% (for a 3-step form).
- In each "Next" button interaction, add an action that animates the fill width: Step 1 to Step 2 changes it to 66%. Step 2 to Step 3 changes it to 100%.
- In each "Back" button interaction, animate the width back down.
You can also add step labels ("Your Info," "Project Details," "Contact Preferences") above the progress bar using small text blocks that change opacity or color with each step.
Want a website that turns visitors into customers, not just compliments?
Book a 15-min introHandle Validation Per Step
Here is the trickiest part of a no-code multi-step form: validation.
Webflow's native required attribute only validates when the submit button is clicked. Since your "Next" buttons are not submit buttons (they are link blocks or regular buttons), clicking "Next" does not trigger validation. A user can skip through all steps with empty fields and only see validation errors on the final submit.
There are a few no-code approaches to handle this:
Approach 1: Make required fields visually obvious. Add asterisks to labels and helper text like "All fields on this step are required." This is the weakest approach since it relies on user cooperation, but it works for forms where every field is important (like a medical intake).
Approach 2: Use radio buttons and selects instead of text inputs. These elements always have a value (the default selection), so they cannot be truly "empty." For fields like "company size" or "project type," a select dropdown with a placeholder option is cleaner than a text input anyway.
Approach 3: Use conditional visibility on the "Next" button. This is clever but requires careful setup. Set the "Next" button to initially hidden. Use a Webflow interaction triggered by the form field's focus-out event to check if the field has content and show the button. This is limited in Webflow's native interactions but works for simple forms.
For truly robust per-step validation, you would need a small JavaScript snippet. But for most multi-step forms I build, a combination of approaches 1 and 2 handles 90% of cases. The submit button on the final step catches any remaining required fields.
Style It to Feel Like a Single, Cohesive Experience
The visual design of a multi-step form matters as much as the functionality. Here are the patterns I use:
Card layout. Wrap the entire form in a card with a subtle border, border-radius, and shadow. This creates a contained "app" feeling that signals interactivity.
Consistent step height. Try to keep each step roughly the same height. If Step 1 has 3 short fields and Step 3 has a large textarea, the form container will jump in height between steps. Either set a min-height on the step divs or use a fade transition that masks the height change.
Clear step count. "Step 2 of 3" text above the form fields tells the user exactly where they are. This is more effective than a progress bar alone because it gives a concrete number.
Mobile-first field sizing. Multi-step forms are often filled on mobile. Make sure your input fields are at least 48px tall (tap target size), labels are above the fields (not beside them), and the "Next" and "Back" buttons are full-width on mobile.
Connect to Your Backend or Integrations
Because this is a single Webflow form, all your normal integrations work without modification:
- Webflow native form submissions capture every field from every step in one row.
- Zapier or Make integrations triggered by Webflow form submission receive all fields in one payload.
- Email notifications through Webflow's form settings send all fields in one email.
If you are pushing data to a CRM like HubSpot or Salesforce, map the field names in your integration tool to the names you set in Webflow. Multi-step forms often collect more data points than single forms, so take the time to plan your CRM field mapping before building.
When to Use a Third-Party Form Tool Instead
I am a fan of building things natively in Webflow when possible, but there are cases where a third-party form tool is the better choice:
- Conditional logic. If the fields in Step 2 depend on the answer in Step 1 (like showing different questions for different project types), you need logic that Webflow's interactions cannot provide. Tools like Typeform, Jotform, or Tally handle this well.
- File uploads per step. Webflow's native file upload works, but multi-step forms with file uploads on multiple steps can get finicky with the display-none approach.
- Complex validation. If you need real-time validation (email format checking, phone number formatting, field dependencies), custom JavaScript or a form tool is more reliable.
For everything else, keep it native. One form block, visual steps, interaction-based transitions. It is fast to build, easy to maintain, and does not add any third-party dependencies to your site.
If you need a multi-step form built for your project or you are an agency looking for a white-label Webflow developer who handles these builds, reach out and let me know what you are working on.