For most SaaS marketing teams, I recommend a Webflow HubSpot integration built around an embedded HubSpot form. It keeps form management close to your CRM. Use the native app when you want to place or style forms inside Webflow. Choose Zapier when submissions need extra processing or delivery to other tools. In every case, test attribution separately from contact creation.
Your team needs more than an email address arriving in HubSpot. You need the right fields, a clear campaign source, and a follow-up that actually runs.
I’m a Webflow Premium Enterprise Partner. I’m a developer who thinks like a marketer. I run a company of one, so I care about setups that one person can understand and maintain.
Here’s how I’d make the choice.
Start with who owns the form
Before choosing a connector, I’d answer three questions:
- Who changes fields and follow-up rules?
- How much control do you need over the form’s appearance?
- What information must reach HubSpot for reporting?
If your marketing team works in HubSpot every day, I’d keep form ownership there. If your website team owns a custom form experience, I’d start with its field requirements.
The app and embedded forms overlap. The app is one way to add a HubSpot form to Webflow. It is not a separate form system in every configuration.
Feature notes below reflect public documentation as of Oct 2026, check current pricing and plan eligibility before choosing.
| Approach | I’d choose it for | Main tradeoff | Attribution check |
|---|---|---|---|
| Native HubSpot app | Managing the connection inside Webflow | Capabilities depend on the selected form mode | Confirm how that mode captures submissions |
| Embedded HubSpot form | Marketing teams that own forms in HubSpot | Styling depends on the embed method | Verify tracking, domains, and source data |
| Webflow form through Zapier | Extra routing or data processing | Another workflow to maintain | Explicitly map campaign data |
I’d decide based on your next campaign and who will maintain it. A connector with more options is only useful if you need those options.
Option 1: Use the native HubSpot app
The current app offers iframe embeds, developer embeds, and a Webflow form connection.
Iframe forms are managed in HubSpot. Developer embeds let you style HubSpot forms in Webflow. Webflow lists a HubSpot Marketing Professional or Enterprise requirement for developer embed.
The Webflow form mode uses HubSpot’s non-HubSpot forms collection. It requires that feature to be enabled. Webflow documents support for text inputs only, excluding dropdowns, radio buttons, checkboxes, and text areas. These details come from the current Webflow app guide.
I’d check field compatibility before building the page. A demo form that asks for company size may already need a different mode.
For the non-HubSpot route, there’s another limit. Collection depends on the tracking script loading. HubSpot also warns that validation can produce partial submissions when someone clicks submit before completing the form. See HubSpot’s collection requirements.
I’d test an incomplete submission as well as a successful one. Otherwise, your first warning may come from someone trying to follow up with an unfinished lead.
Option 2: Embed a HubSpot form
I’d make this the starting point for a standard demo request, newsletter signup, or content download.
HubSpot supports embedding its forms on external pages. You can use its embed code or the Webflow app to place the form. HubSpot’s forms documentation describes external embedding.
My reason is ownership. If your team owns the form in HubSpot, I’d keep field changes and submission rules there. That gives you a clear place to look when a campaign needs an update.
The risk is assuming every embed gives you the same design control. I’d choose the embed method before approving a detailed form design.
I’d build one real form first. Include your required fields, consent choices, error messages, and success state. Then check it on the published page at mobile and desktop sizes.
I’d also agree on what happens after submission. Does the visitor see a message, reach a thank-you page, or move to scheduling? Make that decision before connecting downstream automation.
A form can look finished while the visitor’s next step is still unclear.
Option 3: Send Webflow submissions through Zapier
I’d use Zapier when the submission needs work before or after it reaches HubSpot.
For example, your intended flow might check a field, update a contact, and notify another system. Zapier’s Webflow and HubSpot integration provides form submission triggers and HubSpot actions.
The action matters. Creating or updating a contact is a different operation from submitting data to a HubSpot form. I would not assume a contact action satisfies an automation that expects a form submission.
My setup sequence would be:
- Submit the published Webflow form.
- Use that submission to configure the trigger.
- Choose the HubSpot action that matches the required outcome.
- Map each field deliberately.
- Test with a new contact and an existing contact.
- Check the resulting follow-up.
I’d also name an owner for failures. Someone needs to notice when a connection expires or a field change breaks the flow.
Before launch, I’d document how to retry a failed submission without repeating notifications. That small piece of maintenance work matters more than a tidy automation diagram.
Attribution: a contact record is only the first check
A successful submission proves that some data arrived. It does not prove that your campaign reporting is correct.
I’d separate attribution into three checks.
Install tracking and register your domains
HubSpot says externally hosted sites need its tracking code. It also says to add external domains to its tracking settings. Submissions from embedded forms on unregistered external domains can be filtered as spam. Follow HubSpot’s site tracking setup.
I’d verify the live domain and any campaign subdomains. I’d also check whether the app or another site script already installs tracking before adding it again.
Test with the consent choices your visitors actually see. A test performed only in your own browser gives you a narrow view.
Decide what campaign data you need
I’d write a short field map before launch. For a typical campaign, I’d consider:
- UTM source, medium, and campaign.
- The landing page.
- The page where the visitor submitted.
- The form or offer name.
These are proposed reporting requirements, not fields I’d assume every connector captures automatically.
Then I’d define how values should behave. Should a later visit replace an earlier campaign value? Should an empty value overwrite a known one?
For example, someone might land on a tagged campaign page, read your pricing page, and then request a demo. I’d test that exact journey. Reading campaign tags only from the final page may miss the original landing information.
Separate traffic source from record source
HubSpot’s Original and Latest Traffic Source properties describe how contacts interacted with your business. Record Source describes how the record was created. Those answer different questions. See HubSpot’s traffic source explanation.
I’d inspect both before calling an integration broken.
I’d also keep custom campaign properties clearly named. A field containing utm_source is useful, but it does not prove that HubSpot has connected the contact to their earlier browsing activity.
For a custom implementation, I’d ask the developer to explain how submission context reaches HubSpot. For an app or Zap, I’d verify the actual result instead of assuming the connector handles it.
Test the journey before sending traffic
I’d use a short acceptance checklist:
| Test | What I’d inspect |
|---|---|
| New visitor from a tagged campaign link | Contact fields and campaign data |
| Visitor browses before submitting | Whether landing information survives |
| Existing contact submits again | Which values change |
| Required field is missing | Validation and partial records |
| Visitor declines optional tracking | Submission behavior and reporting gaps |
| Follow-up should run | Correct owner, message, or next action |
Use separate browser sessions when testing different people. HubSpot notes that non-HubSpot form collection can associate submissions sharing a cookie with one contact.
I’d record the expected result beside each test. “The form works” is too vague to help the next person troubleshoot it.
Verdict: Pick X if...
Pick the native app if your team wants to manage the connection inside Webflow. I’d confirm its selected mode supports every required field before building.
Pick an embedded HubSpot form if your marketing team owns the form and follow-up in HubSpot. This is my default for a straightforward SaaS lead form. Check styling and tracking before launch.
Pick Zapier if you need extra processing or actions across tools. I’d choose it when someone can own monitoring, field mapping, and retries.
FAQ
Does Webflow integrate with HubSpot?
Yes. You can use the HubSpot app, embed a HubSpot form, or connect Webflow submissions through Zapier. I’d choose based on form ownership and the required follow-up.
Is the native app the same as an embedded form?
Not exactly. The app can place an embedded HubSpot form, but it also offers a Webflow form connection. Check which mode your site uses before troubleshooting.
Will Zapier preserve campaign attribution automatically?
I would not assume so. Verify the fields your chosen trigger and action transfer. Then test a tagged visit through to the contact record and report.
Why is a lead missing from HubSpot?
I’d check the submission route first. For an embed, inspect spam submissions and domain settings. For non-HubSpot collection, check tracking. For Zapier, inspect the run and field errors.
How much does a Webflow HubSpot integration cost?
As of Oct 2026, check current pricing for your required Webflow, HubSpot, and Zapier plans. I’d budget around the specific form features and automation you need. Check each vendor’s pricing page for the current total.
If you’re deciding where to start, I’d suggest one published demo form and one tagged test visit. You can make the choice with a working example, then give your team a setup they know how to run.