Webflow Salesforce Integration: Web-to-Lead, Zapier or a Custom Build

Salesforce has no official Webflow app, so a Webflow form reaches Salesforce one of four ways: Salesforce's own Web-to-Lead endpoint, an automation tool such as Zapier, a marketplace connector, or a custom build on the Salesforce API. Web-to-Lead is free and needs no middleware, but it caps at 500 leads a day, turns off Webflow's own submission handling, and ships with reCAPTCHA on. This guide compares the four routes, shows the Web-to-Lead setup field by field and lists what to test before launch.
What are your options for connecting Webflow forms to Salesforce?
Webflow's Salesforce integration page states the starting point plainly: "Salesforce doesn't offer an official Webflow app". That leaves four routes, which differ in cost, who maintains them and what they can carry.
| Web-to-Lead | Zapier or Make | Marketplace connector | Custom API build | |
|---|---|---|---|---|
| How the data travels | The browser posts the form straight to Salesforce | Webflow stores the submission, the automation tool reads it and creates the record | An installed Webflow app reads submissions and writes to Salesforce | A Webflow webhook calls your server, which calls the Salesforce REST API |
| Record created | Lead only | Lead, Contact or any object | Depends on the app; the one Webflow lists maps to Leads, Contacts and custom objects | Anything the API allows |
| Extra cost | None | Salesforce is a "Premium" app on Zapier, so a paid Zapier plan | App subscription | Developer time and hosting |
| Daily limit | 500 leads per day | Your automation plan's task limit | Per the app | Salesforce API limits |
| Webflow keeps a copy of the submission | No | Yes | Yes | Yes |
| Who maintains it | Salesforce admin and the web team | Whoever owns the Zapier account | The web team | A developer |
A fifth route exists for teams on Salesforce Account Engagement (formerly Pardot): a Pardot form handler receives the post instead of Web-to-Lead, and the prospect flows into Salesforce through the Pardot connector with scoring and grading applied. If your marketing team already works in Account Engagement, ask your admin for a form handler before building anything else.
Which route fits your team?
Ask two questions. First, how many submissions arrive on a busy day? Salesforce's help article describes Web-to-Lead as a way to "generate up to 500 leads per day", and that ceiling is for your Salesforce org as a whole, not per form, so a site with a popular newsletter form and a contact form shares it. Below a few hundred a day, Web-to-Lead is the simplest route. Above it, use middleware or the API.
Second, does the record need to be anything other than a Lead? Web-to-Lead creates Leads only. If your sales process wants Contacts under existing Accounts, or a custom object such as a demo request, you need Zapier's "Create Record" action, a connector that supports that object, or the API.
Two smaller tests settle the rest. If the marketing team wants to see submissions inside Webflow, or needs Webflow's email notifications, rule out Web-to-Lead: the Form submissions article is clear that a custom form action URL "bypasses Webflow's form processing", so nothing is stored or emailed by Webflow. And if nobody on the team can hold a Zapier login accountable, pick a route that lives inside Webflow and Salesforce only.
How does Web-to-Lead work with a Webflow form?
Web-to-Lead is an HTML form that posts to a Salesforce servlet. Salesforce's Generate Leads from Your Website with Web-to-Lead article walks through the setup in Salesforce; the Webflow half is one setting on the form element. In order:
- Turn it on in Salesforce. From Setup, enter Web-to-Lead in the Quick Find box, open Web-to-Lead and click Edit. This needs the Customize Application permission.
- Pick the default lead creator. Salesforce asks for a user with the Modify All Data, Send Email and Access Activities permissions, granted through a permission set or a profile but not a mix of the two. Leads that no assignment rule catches land with this user.
- Optionally set a Default Response Template so prospects get an automatic email, then Save.
- Click Create Web-to-Lead Form, choose the fields, select a Campaign if you want the lead attached to one, add Lead Currency if your org uses several currencies, and Lead Record Type if reps should choose one.
- Enter the return URL. After a successful post Salesforce redirects the visitor here, so make it a thank-you page on your Webflow site, not the home page.
- Click Generate and copy the HTML. Salesforce does not keep it for you; if you lose it, generate again.
The generated code contains the pieces a Webflow form needs. The form's action is the Web-to-Lead servlet URL, which Webflow's own guide shows as https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8. A hidden oid field carries your org ID. A hidden retURL field carries the return URL. Each visible input has a name that Salesforce recognises: standard fields by name, custom fields by their field ID, which begins with 00N.
In Webflow you have two ways to use it. The quickest is to paste the whole generated form into an Embed element, which gives you Salesforce's markup and limited styling. The cleaner way is to build a native Webflow form, set its action to the servlet URL and method to POST in the form settings, give every input the exact name from the generated code, and add the hidden fields with an Embed inside the form. You get Webflow styling and validation; Salesforce gets a post it understands.
What changes in Webflow when you set a custom form action?
Three things, and all three surprise teams on launch day.
- No submissions in Webflow. Site settings, then Forms will show nothing for this form, and no notification email goes out. Salesforce is the only record. If you want a backup, add the Salesforce post through an automation instead, or capture the submission with a webhook as well.
- No Webflow success message. Salesforce answers the post with a redirect to the return URL, so the visitor leaves the page. Build the thank-you page and put any conversion tracking there.
- Spam protection moves to Salesforce. Webflow's spam prevention options (its reCAPTCHA field and the site-level Cloudflare Turnstile bot blocking and spam filtering) work with Webflow's form processing. With a custom action, test whether each one still applies on staging rather than assuming it does, and use the Salesforce-side reCAPTCHA described below.
How do reCAPTCHA settings interact?
Salesforce turns reCAPTCHA on by default for Web-to-Lead: the help article says it "is on by default to prevent spambots from polluting your lead data with fake records". There are two separate switches, and a Webflow form has to match them.
- Require reCAPTCHA Verification in the Web-to-Lead settings. While it is on, a post without a valid reCAPTCHA response is not accepted. Your own Webflow reCAPTCHA field does not satisfy it, because that token goes to Webflow, not Salesforce.
- Include reCAPTCHA in HTML when generating the form. Salesforce asks for a reCAPTCHA API key pair and puts the widget and its validation code into the generated HTML. Salesforce's note is that "the HTML on your website includes the reCAPTCHA validation code"; if you rebuild the form natively in Webflow, carry that code across.
- Enable server fallback lets submissions through if Google's reCAPTCHA servers are unavailable.
Salesforce also warns to "make sure that reCAPTCHA is supported in your region", which matters for sites with visitors in mainland China. If reCAPTCHA is wrong for your audience, deselect Require reCAPTCHA Verification and rely on lead assignment rules plus a honeypot field to catch junk.
How do you keep campaign and UTM data?
Web-to-Lead has two built-in hooks. If the generated form includes the Campaign ID field, Salesforce "inserts the lead as a campaign member", and the Member Status field sets the member status; without it, the default status applies. Salesforce adds one caution: do not also run a trigger or process that inserts campaign members from these leads, or you get duplicates.
For UTM parameters there is no built-in field, so the pattern is the same as the HubSpot one in our Webflow forms to HubSpot guide: create custom Lead fields for source, medium and campaign, include them in the generated form as hidden inputs, and use a small script on the page to copy the values from the URL into those inputs before submit. Because the field names are Salesforce IDs beginning with 00N, keep a note of which ID is which; the IDs are not readable, and a mix-up puts the campaign name in the medium field.
Lead Source is a standard picklist, so a hidden lead_source input with a value that exactly matches one of your picklist values is the simplest attribution you can add.
How do you connect through Zapier instead?
With middleware the Webflow form stays a normal Webflow form, so submissions, notifications and Webflow's spam settings all keep working. Zapier's Webflow and Salesforce listing offers the Webflow trigger "New Form Submission" and Salesforce actions including "Create Lead", "Create Record", "Find Record" and "Find or Create Record". Its most used template is "Create Salesforce leads from new Webflow form submissions".
Three things to know before choosing it:
- Salesforce is a Premium app on Zapier, so the zap needs a paid Zapier plan.
- Use "Find or Create Record" rather than plain "Create Lead" if the same person may submit twice; otherwise every submission is a new Lead.
- Field mapping is done in Zapier, so document it. When a Webflow field is renamed, the zap silently maps nothing to that Salesforce field until someone notices.
The same shape works in Make or Pipedream. Webflow's own help pages name Integrately, Make and Zapier as the no-code options.
When is a custom build worth it?
When the record is not a Lead, when volume passes what Web-to-Lead or your automation plan allows, or when data must also flow back from Salesforce to the site. Webflow's Intro to Webflow's APIs describes the starting point: in Site settings, then Apps & integrations, then Webhooks, click Add webhook, choose the Form submission trigger and enter your URL. Your endpoint then authenticates to Salesforce with OAuth 2.0 and creates the record through the REST API.
Two cautions. Webflow's developer documentation notes that webhooks created from the dashboard do not include the request signature headers, so create the webhook through the API if you want to verify that calls really come from Webflow. And the build now has three places to break (Webflow, your server, Salesforce), so log every call and alert on failures; a form that silently drops leads is worse than one that never worked.
What quietly breaks a Webflow-to-Salesforce form?
- The daily cap. Web-to-Lead is documented as up to 500 leads a day. Ask your Salesforce admin how your org handles the excess, and watch the count: a bot attack on an unprotected form can use the whole day's allowance by breakfast.
- A field renamed in Salesforce. Standard field names do not change, but a custom field deleted and recreated gets a new 00N ID, and the form keeps posting to the old one.
- Picklist mismatches. A hidden
lead_sourcevalue that is not in the picklist is dropped or rejected, depending on validation. Use the exact picklist text. - Validation rules. Salesforce's Guidelines for Setting Up Web-to-Lead suggest a validation rule on the Email field. A rule that rejects the post gives the visitor no error in Webflow; they just arrive at the return URL with no lead created. Keep the browser-side validation in Webflow at least as strict as the Salesforce rule.
- The default lead creator leaves. If that user is deactivated, test the form the same day. The permissions it needs are specific, so hand this to the Salesforce admin, not the web team.
- Webflow's Site plan. For the middleware route, remember that Webflow only processes submissions on a custom domain when the site has an active Site plan.
Who should own what?
| Responsibility | Owner | Where |
|---|---|---|
| Web-to-Lead settings, default lead creator, assignment rules, response templates | Salesforce admin | Salesforce Setup |
| Form markup, field names, hidden fields, return URL page | The web team or agency | Webflow Designer |
| Campaign IDs and member statuses per form | Marketing ops | Salesforce Campaigns |
| Zapier or connector mapping and account | Named person in marketing ops | Zapier or the app |
| Monthly test submission per form | Whoever runs site maintenance | Live site |
Write the field map down once: Webflow field name, Salesforce field label, Salesforce API name or 00N ID, required or not, picklist values. Our Webflow maintenance checklist treats a monthly form test as a standing item for exactly this reason.
How do you test before launch?
Salesforce gives you a debug mode. In the generated HTML, two hidden inputs are commented out: debug with value 1 and debugEmail with your address. Uncomment both on staging and Salesforce emails you the parsed submission, including any field it could not match. Remove them before publishing to the live domain.
Then run the same sequence we use for HubSpot forms: one labelled test per form on the staging domain, confirm the Lead, its fields, its campaign membership and its owner in Salesforce, then repeat once on the live domain after publishing. Add three failure tests: submit with reCAPTCHA unanswered, submit a value that breaks a validation rule, and submit while a required Salesforce field is empty. Each should fail in a way you understand. Delete the test leads afterwards.
How ActiveSet does it
ActiveSet is a Webflow Premium Partner based in Bangalore, India. We have connected Webflow calls to action to Salesforce Account Engagement (Pardot) for a B2B client, and we build HubSpot form integrations for Privado, whose Webflow site we have maintained since 2022. Before we touch a form we confirm with the client's Salesforce admin which route they prefer, because the admin inherits the maintenance.
If you are planning a Salesforce connection, our Webflow integrations page covers how we scope and hand over integration work, and the technical SEO launch checklist lists the other things to check on launch day.
Sources
- Salesforce Help, Generate Leads from Your Website with Web-to-Lead, checked 26 Oct 2026
- Salesforce Help, Guidelines for Setting Up Web-to-Lead, checked 26 Oct 2026
- Webflow, Integrate Salesforce with Webflow, checked 26 Oct 2026
- Webflow Help Center, Form submissions, checked 26 Oct 2026
- Webflow Help Center, Prevent spam in form submissions, checked 26 Oct 2026
- Webflow Help Center, Intro to Webflow's APIs, checked 26 Oct 2026
- Webflow Developers, Working with webhooks, checked 26 Oct 2026
- Zapier, Webflow and Salesforce integrations, checked 26 Oct 2026
Frequently Asked Questions
No. Webflow's own Salesforce integration page says Salesforce does not offer an official Webflow app. The routes are Salesforce's Web-to-Lead endpoint, an automation tool such as Zapier or Make, a marketplace connector, or a custom build on the Salesforce API.
Salesforce documents Web-to-Lead as generating up to 500 leads per day for your org. If a busy day could pass that, send submissions through middleware or the Salesforce API instead.
No. A custom form action bypasses Webflow's form processing, so the submission does not appear in Site settings, then Forms, and no notification email is sent. Use Zapier or a webhook if you need a copy in Webflow.
Not on its own. While Require reCAPTCHA Verification is on in Salesforce, the post needs Salesforce's own reCAPTCHA response, and Webflow's field sends its token to Webflow. Either carry Salesforce's reCAPTCHA code from the generated HTML into your form or turn the requirement off in Salesforce.
Create custom Lead fields for source, medium and campaign, include them as hidden inputs in the generated Web-to-Lead form (their names are field IDs beginning with 00N), and copy the URL parameters into them with a small script before submit. For campaign membership, use the built-in Campaign ID and Member Status fields.

