How do you connect Webflow forms to HubSpot with Make?

Quick Answer: You can connect Webflow forms to HubSpot without the native app by building a Make scenario that watches for new Webflow form submissions, maps the fields to HubSpot contact properties, handles duplicates, and sets the correct lifecycle stage automatically. This gives you cleaner data and more control than the default integration.
Webflow's native HubSpot app works fine for basic setups. But if you need field mapping that goes beyond name and email, deduplication logic, or automatic lifecycle stage assignment, you will hit its limits fast.
Make (formerly Integromat) fills that gap. By routing your Webflow form submissions through a Make scenario, you get a fully configurable pipeline between your website and your CRM. No code required, and no data quality headaches on the other side.
This tutorial walks you through the exact steps: connecting Webflow and HubSpot in Make, mapping your fields correctly, filtering out duplicates, and setting lifecycle stages based on which form was submitted.
What You Need Before You Start
Before building the scenario, have these ready:
- A Webflow site with at least one published form
- A HubSpot account (any tier works, including free)
- A Make account (the free plan covers this scenario)
- Admin access to all three platforms
Step 1: Set Up the Webflow Trigger in Make
The Webflow trigger watches for new form submissions and fires the scenario each time one arrives.
- Open Make and click Create a new scenario
- Search for Webflow and select the Watch Form Submissions module
- Click Add to create a new Webflow connection
- In Webflow, go to Site Settings > Integrations > API Access and generate a new API token
- Paste that token into Make and save the connection
- Select your site from the dropdown
- Select the specific form you want to watch (you can create separate scenarios for different forms if they need different logic)
- Set the limit to 1 for real-time processing
Click OK and run the module once with a test submission so Make captures the data structure. Submit your Webflow form with dummy data before moving to the next step.
Step 2: Search HubSpot for an Existing Contact First
Skipping deduplication is the most common mistake in this type of integration. Without it, every form submission creates a new contact record, and your HubSpot database fills with duplicates within weeks.
Add a Search for a Contact module from HubSpot before you create anything:
- Add a new module after the Webflow trigger
- Search for HubSpot CRM and select Search for Contacts
- Connect your HubSpot account using OAuth (Make will prompt you)
- Set the Filter to search by email using the email value from the Webflow submission (map it from Step 1's output)
- Set the result limit to 1
This module returns the existing contact if one is found, or returns empty if no match exists. The next step branches based on that result.
Step 3: Add a Router to Handle New vs. Existing Contacts
A Router module splits your scenario into two paths: one for new contacts, one for existing ones.
- Add a Router module after the Search step
- Path 1 (New contact): Add a filter with the condition "Number of results equals 0"
- Path 2 (Existing contact): Add a filter with the condition "Number of results greater than 0"
This structure means you never accidentally overwrite a contact's data with a blank field from a form, and you never create a duplicate.
Step 4: Map Fields and Create the HubSpot Contact (Path 1)
On the new contact path, add a Create a Contact module from HubSpot.
Field mapping is where most integrations break. Webflow field names and HubSpot property names rarely match out of the box. Here is how to handle it correctly:
Standard field mappings:
| Webflow Field | HubSpot Property |
|---|---|
| Name | firstname + lastname (split if needed) |
email |
|
| Phone | phone |
| Company | company |
| Message | message (custom property) |
Splitting a full name field:
If your Webflow form has a single "Name" field, use Make's built-in text functions to split it:
- First name:
{{1.name | split: " " | first}} - Last name:
{{1.name | split: " " | last}}
Mapping the lead source:
Always pass the form name or page URL as a HubSpot property so you know where each contact came from. Map the Webflow submission's pageUrl value to a custom HubSpot property called lead_source_url.
Step 5: Update the Existing Contact (Path 2)
On the existing contact path, add an Update a Contact module from HubSpot.
- Map the Contact ID from the Search module's output (this tells HubSpot which record to update)
- Only map fields that should be updated on re-submission (avoid overwriting fields like
createdateororiginal_source) - A safe default: update
last_form_submittedandlast_activity_dateonly, unless your use case requires more
This keeps your existing contact records clean while still logging the new interaction.
Step 6: Set the Lifecycle Stage Automatically
Lifecycle stage is one of the most valuable properties in HubSpot and one of the most commonly left blank. Make it part of the scenario so every contact arrives with the right stage already set. If you're reviewing your funnel performance later, it also helps to benchmark stage progression against broader B2B SaaS benchmarks.
Add this logic to both the Create and Update paths:
Option A: Set a fixed lifecycle stage per form
If your "Request a Demo" form always produces Sales Qualified Leads, hardcode lifecyclestage as salesqualifiedlead in the module for that scenario.
Option B: Use a conditional based on form name
If you have one scenario handling multiple forms, add a Set Variable module before the HubSpot module and use a conditional:
If form name = "Request a Demo" → lifecyclestage = salesqualifiedlead
If form name = "Download Guide" → lifecyclestage = lead
If form name = "Contact Us" → lifecyclestage = marketingqualifiedlead
Then map that variable to the lifecyclestage field in HubSpot.
HubSpot lifecycle stage values (use these exact strings):
subscriberleadmarketingqualifiedleadsalesqualifiedleadopportunitycustomer
Step 7: Add Error Handling So Nothing Gets Lost
Make scenarios fail silently by default. A HubSpot API timeout or a malformed field will drop the submission without warning.
Add a basic error handler to catch failures:
- Right-click the HubSpot Create/Update module
- Select Add error handler
- Choose Resume and connect it to a Send an Email or Slack module that notifies you when something fails
- Include the raw submission data in the notification so you can manually add the contact if needed
This takes five minutes to set up and prevents data loss when the scenario breaks.
Step 8: Test the Full Scenario
Before activating the scenario, run a full end-to-end test:
- Click Run once in Make
- Submit your Webflow form with a new email address
- Check that the contact appears in HubSpot with the correct fields and lifecycle stage
- Submit the same form again with the same email
- Check that HubSpot shows one contact, not two, and that the relevant fields updated
If the deduplication path is not triggering, check that your Search module is filtering by the correct email field from the Webflow output. The field name varies depending on how your form is labelled in Webflow.
Step 9: Activate and Schedule the Scenario
Once testing passes:
- Toggle the scenario to Active
- Set the scheduling interval to every 15 minutes (Make's free plan) or instant triggers if you are on a paid plan
- Monitor the Scenario History tab for the first 24 hours to catch any edge cases
For high-volume forms, upgrade to Make's Core plan to get instant triggers and higher operation limits.
Why Use Make Instead of the Native Webflow HubSpot App?
The native Webflow HubSpot integration handles basic field passing. Make is the better choice when you need:
- Deduplication logic before records are created
- Conditional lifecycle stage assignment based on form type
- Multi-step workflows (for example, also notifying Slack or creating a HubSpot deal alongside the contact)
- Custom field mapping for non-standard properties
- Error handling with fallback notifications
For teams running more than one form or managing a CRM with existing data, Make gives you control the native app does not. If those forms sit on important conversion pages, tightening the integration is even more valuable when paired with solid SaaS landing page best practices.
FAQs
Q: Can I connect multiple Webflow forms to HubSpot using one Make scenario?
A: Yes. Use a Router module to branch the scenario based on the form name from the Webflow trigger output. Each branch can have its own field mapping and lifecycle stage logic. Alternatively, build separate scenarios per form for cleaner maintenance.
Q: Does this work with Webflow's native forms or only embedded forms?
A: This tutorial uses Webflow's native forms via the API trigger. It works with any form built in Webflow's native form builder. If you are using embedded HubSpot forms directly in Webflow, those submissions go straight to HubSpot and do not need Make in the middle.
Q: What happens if HubSpot is down when a form is submitted?
A: Make retries failed operations automatically based on your error handler settings. With the error handler configured as described in Step 7, any failed submission triggers a notification so you can resolve it manually. Make also logs all failed executions in the Scenario History tab.
Q: How do I avoid overwriting the lifecycle stage for existing contacts?
A: On the Update Contact path, only set lifecyclestage if the current value is lower in the funnel than the new one. Use a filter before the Update module that checks the existing contact's lifecycle stage and only proceeds with the update if the new stage is an upgrade (for example, moving from lead to marketingqualifiedlead).
Q: Is Make free for this use case?
A: Make's free plan includes 1,000 operations per month and 15-minute polling intervals. For a low-to-medium volume form (under 500 submissions per month), the free plan covers the scenario described here. Higher volume or instant triggers require a paid plan starting at around $9 per month.
Find a B2B SaaS Expert
We've collected a directory of B2B SaaS experts and agencies that we've reviewed and categorised based on service and specialism for your review.

