Guide · Make.com · Webflow · HubSpot

Webflow form submissions to HubSpot with Make

Short answer: Start the scenario with Webflow › Watch Events set to form submissions (Make creates the webhook for you), or with a Custom webhook that you add in Webflow under Site settings › Apps & integrations › Webhooks. Webflow puts the answers under payload.data, keyed by each field's Name in the Designer, for example Email 2. Map that email, cleaned with lower(trim()), into HubSpot CRM › Create or Update a Contact, then post a Slack › Send a Message alert. Each submission costs about 3 credits, and nothing while the form is quiet.

By Flowpaja · Published

This guide contains an affiliate link, marked “affiliate link”.

A Webflow form submission with its fields under payload.data, a clean and check step on the email, and a HubSpot create or update with a Slack alert
Webflow keys each answer by the field's Name, for example Email 2, under payload.data.
Disclosure: everything in this guide works with plain Make.com and the apps it connects. At the end we mention our own Make templates and our Make scenario fix service on Fiverr. Module names, settings and limits were checked against Make's Webflow docs and Make's webhooks help in October 2026. Menus and limits change, so check them if something looks different.

Before you start

  • The site must be published. Webflow sends form submissions from the live site, not the Designer preview.
  • Custom domain = active Site plan. Webflow processes form submissions on the webflow.io staging domain without a Site plan, but needs an active Site plan for a custom domain.
  • Leave the form's Action field empty. If you paste the Make webhook URL into the form's own Action setting, the form bypasses Webflow's form processing: no submission in Webflow, no notification email, and your visitor lands on Make's plain "Accepted" page. Use Watch Events or a site webhook instead.
  • A HubSpot account where you can connect apps, and a Slack channel for alerts.

Step 1: Choose how Make receives the submission

Webflow › Watch EventsWebhooks › Custom webhook
SetupConnect Webflow in Make, pick the site and the form submission eventCopy the Make URL, then add it in Webflow: Site settings › Apps & integrations › Webhooks › Add webhook, trigger type Form submission, API version v2
Which formsThe forms on that site; filter by form name in MakeAll forms on the site; filter by form name in Make
Good forMost setupsWhen you want to see the raw JSON, or reuse an existing webhook scenario

Both fire instantly. Pick one per form: running both against the same HubSpot step sends every lead twice.

Webhooks added in Site settings don't include Webflow's signature headers (only webhooks created through the API do), so treat the Make URL as private: keep it out of screenshots and shared blueprints.

Step 2: Find the field names in payload.data

Click Run once in Make, then submit the form on the published site with fictional data. The bundle looks like this:

{
  "triggerType": "form_submission",
  "payload": {
    "name": "Contact form",
    "siteId": "…",
    "data": {
      "Name": "Jamie Example",
      "Email 2": "Jamie@Example.com ",
      "Company": "Example Ltd",
      "Budget": "$10k+"
    },
    "schema": [ … ],
    "submittedAt": "2026-10-06T09:15:00.000Z",
    "id": "…",
    "formId": "…"
  }
}

Three things trip people up:

  • The email isn't at the top level. It's inside payload.data. Watch Events passes the same webhook payload through, so look in the same place. Map it from there.
  • The key is the field's Name, not its label or placeholder. Duplicate a field in Webflow and its Name becomes Email 2. If you rename a field later, the key changes and the mapping in Make goes empty. Fix the Name in Webflow's field settings, then run once again so Make sees the new structure. With a Custom webhook, click Detect new values first.
  • payload.name is the form's name. A site webhook fires for every form on the site, so add a filter after the trigger: payload.name equal to Contact form.

Step 3: Stop bad submissions before HubSpot

Add a filter between the trigger and HubSpot: the email field exists and contains @. Empty submissions and junk without an email stop here and cost nothing beyond the trigger.

Step 4: Create or update the HubSpot contact

Add HubSpot CRM › Create or Update a Contact:

HubSpot propertyMap from Webflow
Email (standard property)`{{lower(trim(1.payload.data.Email 2))}}` (click the field in the mapping panel; don't type the path)
First nameName, or split it with Make's text functions
Company nameCompany
Your custom property, e.g. Lead budgetBudget (use HubSpot's internal option value if it's a dropdown)

Create or Update a Contact matches on email, so a visitor who submits twice updates one contact instead of creating a second. If you need different steps for new and returning contacts, search first instead. Both patterns, and every "Contact already exists" case, are in Fix HubSpot "Contact already exists" (409) in Make.

Dropdown answers must match the HubSpot property's internal value, or HubSpot answers [400] Property values were not valid. See Google Forms to HubSpot and Slack, Step 2, for the fix.

Step 5: Alert the team in Slack

Add Slack › Send a Message after HubSpot, with the name, company, budget and email. To route big budgets to their own channel, add a router: Budget equal to $10k+ → #sales-hot, everything else → #leads. If the channel is private, the Slack user who connected Make must be a member, or you'll see channel_not_found (fix).

Then right-click the HubSpot module → Add error handler → a Slack message to an alerts channel with the error and the email, followed by Skip. An instant-trigger scenario is switched off after its first unhandled error.

When nothing arrives in Make

SymptomLikely causeFix
Test submission, no bundle in MakeSite not published, or form on a custom domain without an active Site planPublish; test on the webflow.io domain to rule out the plan
Webflow shows no submission eitherThe form's Action field contains a URLClear it so Webflow processes the form again
Bundles arrive, HubSpot email is emptyMapping points to a key that no longer exists (renamed or duplicated field)Check the key in payload.data, remap, Run once
Every lead arrives twiceWatch Events and a site webhook both active, or two webhooks for the same formKeep one
Webflow emails you that the webhook was deactivatedMake didn't answer with 200. Webflow retries up to 3 more times, 10 minutes apart, and can then deactivate the webhookFix the scenario, then add a new webhook in Site settings (or ask Webflow support to reactivate the old one)
HubSpot module red with 409The email already belongs to a contactFix the 409

A Make custom webhook answers 200 Accepted as soon as the request is in its queue, so Webflow's retries normally only happen when the webhook is missing or its queue is full (Make then answers 400 Queue is full). More checks in Make webhook not receiving data.

Credits

PathCredits
Valid submission: trigger + HubSpot + Slack3
Submission stopped by the email filter1
No submissions0 (instant trigger, no polling)

Routers and filters are free. 300 valid submissions a month is about 900 credits, which fits inside the Free plan's 1,000 if this is your main scenario. Check your own numbers in the Make credits calculator.

Start from a tested template

Free: Lead Capture → Google Sheets + Slack, with dedupe. One row and one Slack alert per new email; a repeat email updates its row with no second ping. It starts with a Custom webhook, so you can point a Webflow site webhook at it and map payload.data fields once after importing.

Using a Google Form instead of Webflow? Lead Router ($19) does the HubSpot part for you: exact-email search, create or update, $10k+ budgets to #sales-hot, failure alerts. 30-day money-back guarantee.

No Make account yet? Create a free Make account (affiliate link). Flowpaja may earn a commission if you sign up through it, at no extra cost to you.

FAQ

Do I need a paid Webflow plan?
For forms on a custom domain, yes: Webflow needs an active Site plan to receive submissions there. On the webflow.io staging domain you can test without one.
Why is the email field empty in Make?
The mapping points to a key that doesn't exist. Webflow uses the field's Name, such as Email 2. Open the latest bundle, find the email under payload.data, and remap.
Can I send only one of my forms?
Yes. Filter on payload.name right after the trigger. With an API-created webhook, Webflow can also filter by form name before sending.
Will a visitor who submits twice create two contacts?
Not with Create or Update a Contact: the second submission updates the same contact. Slack still gets two alerts. For one alert per person, keep a sheet of seen emails, as in the free template below.

Webflow submissions not arriving?

Send the exported blueprint and a screenshot of the scenario's run history to our Make scenario fix service on Fiverr. No logins needed.

Stuck on an error in your own Make scenario? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Webflow, HubSpot, Slack, Google and Google Sheets are trademarks of their owners. Flowpaja is independent and not affiliated with or endorsed by them. Menus, limits and prices change; check the providers' current help.