· 18 min read

Webflow Salesforce Integration: Forms, CMS Sync and Setup (2026 Guide)

Webflow builds the site, Salesforce runs the pipeline, and nothing connects them out of the box. Since Webflow Logic was switched off, every Webflow Salesforce integration is one of five routes: a form action, an iPaaS, a Marketplace app, an Account Engagement form handler or a webhook into your own code. Below: which route fits, how to set it up on Webflow specifically, and how to bring Salesforce data back into Webflow CMS.
A website builder window with a form and CMS cards sending data through a webhook hook into a CRM cloud, illustrating a Webflow Salesforce integration
Connecting Webflow to Salesforce?Tell us which forms and data need to reach Salesforce. Gilzor maps the fields, builds the integration from your Webflow site to Salesforce and back, and supports it after launch.
Map my Webflow to Salesforce flow

What changed: no Logic, no native connector

According to Webflow’s help center, Webflow Logic was disabled on all sites as of June 27, 2025: flows stopped, and forms connected to Logic became standard Webflow forms. Webflow points customers to Zapier and Make instead.

Webflow’s own Salesforce integration page also states that Salesforce doesn’t offer an official Webflow app. Two Webflow products do read Salesforce data, but neither creates leads:

  • Webflow Optimize: its Salesforce integration is available on Enterprise plans only. It imports up to 20 fields each from the Account, Opportunity, Contact and Lead tables for audience targeting and syncs once a day.
  • Webflow Campaigns: according to Webflow, it connects to Salesforce CRM for pipeline attribution of campaign pages.

So for lead capture and data sync, you pick one of the routes below. This guide covers Webflow only. For WordPress, landing page tools and the general Web-to-Lead setup, see our Salesforce website integration guide; for the full map of Salesforce integration types, the Salesforce integration guide.

Leads stopped after June 2025?If your forms used to reach Salesforce through Logic and nobody rebuilt the flow, those forms now only store submissions in Webflow. Export them from Site settings > Forms and load the missing leads before you build anything new.

Five ways to connect Webflow forms to Salesforce

Webflow’s form settings decide most of this. Each form has a Send to list: Webflow (store the submission), Email notifications, Webhook, Connected Apps (such as Zapier, Make or HubSpot) or a Custom action. According to Webflow’s help center, a custom action can’t be combined with Webflow storage or email notifications; it bypasses Webflow’s form handling completely.

Web-to-Lead as custom actionZapier or MakeMarketplace app (Form Connector)Account Engagement form handlerWebhook to your own function
What it createsNew leads only, optionally as campaign membersLeads, contacts, campaign members, any object; can updateLeads, contacts, custom objects, per Webflow’s integration pageProspects that sync to leads or contactsAnything, with your own matching and routing
Copy kept in WebflowNoYesYesNo, if posted directlyYes
Salesforce API access neededNoYesYesNo (Account Engagement license)Yes
Cost levelIncluded with SalesforcePaid Zapier plan (Salesforce is a Premium app) or a Make planFree plan available; paid tiers per vendorPart of Account EngagementBuild cost plus small hosting
Typical effortHoursHours per formHoursA dayOne to two weeks
Main limitsDaily lead cap, no updates, no error feedbackDuplicates and retries are your job; costs grow with tasksYou depend on a small vendor holding Salesforce credentialsExact field names; no log of failed postsYou own the code, secrets and monitoring

Pick one route per form. A form that sends to both a Zap and an app creates two leads per submission.

Which route fits you?

On Webflow, the choice comes down to what Salesforce should do with a submission and who will look after the connection. Four questions sort that out.

Which Webflow Salesforce route fits?

How the data flows

The key difference between routes is whether Webflow’s form handler sees the submission. If it does, you get a stored copy, spam filtering and a webhook; with a custom action, you get none of those.

Two ways in, one way back Webflow site Webflow form Hidden fields: UTMs, landing page, consent Bot blocking (Turnstile) or reCAPTCHA One route per form In between Custom action Web-to-Lead or form handler Webflow form handler Stores, filters spam, then webhook or app: Zapier, Make, Form Connector, your function Salesforce Lead or contact Duplicate and validation rules Assignment rules Campaign member Integration user Webflow CMS Collection items, published Scheduled sync Webflow Data API Public records Partners, events, locations Custom action route No copy in Webflow, no webhook, no Webflow spam filter. Salesforce is the only record. Webhook route Return HTTP 200 fast; failures retry 3 times, 10 minutes apart, then the webhook can be disabled.
Forms reach Salesforce either straight from the browser (custom action) or through Webflow’s form handler. Salesforce data comes back to the site as CMS items through a scheduled sync.

Route 1: Web-to-Lead as a Webflow form action

Web-to-Lead itself (editions, the default cap of 500 leads in 24 hours per Salesforce’s documentation, reCAPTCHA and assignment) is covered in the website integration guide linked above. What is specific to Webflow is wiring it to a native form, so you keep Webflow’s designer instead of pasting raw HTML into a Code Embed:

  1. Generate the form in SalesforcePick the fields, set the return URL (retURL) to a thank-you page on your Webflow site and copy the HTML. You only need it as a reference: the action URL, the field names and IDs, and the hidden oid value.
  2. Switch the Webflow form to a custom actionSelect the form, open the Settings panel, and remove Webflow and Email notifications from Send to. Add Custom action, paste the Web-to-Lead URL and choose POST.
  3. Rename every fieldIn each input’s settings, set Name to the Salesforce name from the generated HTML: first_name, last_name, email, company, and the field IDs the HTML shows for custom fields. Select options must match Salesforce picklist values exactly.
  4. Add the hidden fieldsWebflow’s form elements have no hidden-field type, so place a Code Embed inside the form. Give it hidden inputs for oid, retURL, lead_source, Campaign_ID if you use campaigns, and your UTM fields.
  5. Handle reCAPTCHAWebflow’s own reCAPTCHA element validates through Webflow’s form handler, which a custom action skips. If Web-to-Lead requires reCAPTCHA verification, include the reCAPTCHA code from Salesforce’s generated HTML in the Code Embed.
  6. Test with debug onIn a sandbox, add the debug fields from the generated HTML, submit, and check the lead, owner, campaign and UTMs. Expect a redirect to your retURL page rather than Webflow’s inline success message.

The trade-off: Webflow stores nothing and Salesforce reports nothing back, so a lead rejected by a validation rule is silently lost. Fine for a newsletter form, risky for demo requests.

Route 2: Zapier, Make or a Marketplace app

This keeps Webflow’s form handler, so submissions are stored, filtered for spam and then forwarded. It suits teams without developers.

  • Zapier. Webflow’s form submission trigger, then Salesforce actions. According to Zapier, Salesforce is one of its premium apps and needs a paid plan (or a free trial). Webflow and Zapier both note that a form needs at least one submission before Zapier can connect to it, so publish the form and send a test first.
  • Make. Make’s Webflow app triggers on new form submissions, then Salesforce modules create records or update them when a match is found.
  • Form Connector. Webflow’s integration page points to this Marketplace app for no-code form-to-Salesforce sync. Its listing names Salesforce, Account Engagement (Pardot) and Marketing Cloud among its destinations, a submission and troubleshooting log, and a free plan. It is a third-party app approved by Webflow, not a Salesforce product, and it asks for read and write access to forms, CMS, pages and custom code.

Whichever tool you use, build the flow as find, then update or create, not create only. Search Salesforce by lowercased email across leads and contacts, update what you find, and create a lead only when nothing matches. Connect the Salesforce side with a dedicated integration user (our Salesforce integration user guide covers the setup), not a marketer’s own login.

Route 3: Account Engagement form handlers with Webflow

Teams on Marketing Cloud Account Engagement (formerly Pardot) can keep native Webflow forms and post them to a form handler. Set the form’s custom action to the handler URL and make each Webflow field Name match the handler’s external field names exactly. Salesforce’s help article on form handlers recommends using the handler as the form action because the visitor’s tracking cookie is then captured automatically.

The catch is the same as Web-to-Lead: with a custom action, Webflow stores nothing. If you want both a Webflow copy and Account Engagement, post from your own server instead.

Salesforce says to enable Kiosk mode on the handler in that case, so your server isn’t cookied as a prospect, and notes that page views then won’t link to the prospect automatically.

Route 4: a webhook into your own serverless function

The route with the fewest surprises at scale: Webflow posts each submission to your endpoint, and your code decides what happens in Salesforce. Add a Webhook destination in the form’s settings: Webflow then shows a secret key once, which signs each request. According to Webflow’s developer docs:

  • Requests carry x-webflow-timestamp and x-webflow-signature headers: an HMAC SHA-256 of the timestamp, a colon and the body. Reject anything with a bad signature or older than five minutes. Webflow’s docs note that webhooks created in the site dashboard don’t include these headers, so confirm they arrive before you rely on them, or create the webhook through the API.
  • The form_submission payload carries the form name, site ID, form ID, a timestamp and the field data, keyed by each field’s Name. Webflow’s own example sends a phone number as a number rather than text, so normalize types.
  • Return HTTP 200 quickly. Any other status, a redirect or an SSL error counts as a failure and is retried up to 3 times, 10 minutes apart. Repeated failures deactivate the webhook, and Webflow emails you.

A typical function, on Cloudflare Workers, AWS Lambda or Webflow Cloud (Webflow’s own hosting for apps deployed alongside a site):

  1. Verify and storeCheck the signature and timestamp, save the raw payload (a queue or a small database), and return 200 at once. Process in the background so Salesforce slowness never trips Webflow’s retries.
  2. Validate and normalizeCheck spam signals, lowercase and trim the email, split or default names, map Webflow field Names to Salesforce API names, and convert select values to picklist values.
  3. AuthenticateUse an External Client App with the OAuth client credentials flow and a dedicated integration user. Since Spring ’26, Salesforce restricts creating new connected apps by default and recommends External Client Apps for new integrations.
  4. Match, then writeQuery leads and contacts by email through the REST API, then update the match or create a lead. According to Salesforce’s REST API guide, active lead assignment rules run on API creates and updates unless the Sforce-Auto-Assign header is set to FALSE, so owner routing still works.
  5. Retry and alertRetry rate-limit and lock errors with backoff, park anything else for review, and alert a named owner. Make each write idempotent (store the Webflow submission ID with the record) so a retry never creates a second lead.

Your Salesforce edition needs API access: Salesforce’s REST API guide lists it as enabled by default in Enterprise, Performance, Unlimited and Developer editions, with an add-on for Professional. For the API choices and limits, see our Salesforce API integration guide.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Field mapping for Webflow forms

Webflow sends each field under its Name setting, so the names you choose in the Designer become your integration’s contract. Use stable, machine-style names (email, company) instead of labels (“Work email”), and treat a renamed field as a breaking change.

Webflow field (Name)Salesforce fieldDirectionSystem of recordNotes
first_name, last_nameLead: First Name, Last NameWebflow → SalesforceSalesforce after creationLast Name is required; default it if your form has one name field
emailLead or Contact: EmailWebflow → SalesforceSalesforceThe matching key; lowercase and trim
companyLead: CompanyWebflow → SalesforceSalesforceRequired on leads; derive from the email domain if you don’t ask
Select fields (interest, country)Picklists, State and Country picklistsWebflow → SalesforceSalesforce defines valuesOption values must equal picklist values
messageLead: DescriptionWebflow → SalesforceWebflowStrip HTML, cap length
Hidden: utm_*, gclid, landing_page, referrerCustom lead fieldsWebflow → SalesforceWebflow (first touch)Keep the first-touch value when a later submission updates the record
Form name (from the payload)Lead Source detail or CampaignSet by the integrationIntegrationOne campaign per form or landing page
File upload (Premium plan)Salesforce File linked to the recordWebflow → SalesforceCopy into SalesforceWebflow stores the file behind a URL; deleting the submission deletes the file
consent, consent_text_versionCustom fields or consent recordsWebflow → SalesforceWebflow captures, Salesforce storesKeep the consent wording version, the time and the form name

The UTM and form fields above live on the lead. When a rep converts it, they survive only if Salesforce’s lead conversion mapping carries them to contact and opportunity fields, so set that mapping up too.

Capture UTMs and hidden fields on Webflow

The webhook payload doesn’t include the page URL or campaign parameters, and Webflow has no hidden-field element. A short site-wide script solves both: it saves first-touch values on the landing page and writes them into hidden inputs on every form, including forms several clicks later. Site-wide custom code needs a paid site plan.

Example: first-touch UTMs into every Webflow form

<script>
// Site settings > Custom code > Footer. Fills hidden fields on every form.
(function () {
  var keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'gclid'];
  var saved = JSON.parse(sessionStorage.getItem('first_touch') || 'null');
  if (!saved) {
    var p = new URLSearchParams(location.search);
    saved = { landing_page: location.pathname, referrer: document.referrer };
    keys.forEach(function (k) { saved[k] = p.get(k) || ''; });
    sessionStorage.setItem('first_touch', JSON.stringify(saved));
  }
  document.querySelectorAll('form').forEach(function (form) {
    Object.keys(saved).forEach(function (k) {
      var input = form.querySelector('input[name="' + k + '"]');
      if (!input) {
        input = document.createElement('input');
        input.type = 'hidden';
        input.name = k;
        form.appendChild(input);
      }
      input.value = saved[k];
    });
  });
})();
<\/script>

Submit a test from a URL with UTM parameters and check the values in Site settings > Forms before mapping them. For Web-to-Lead, rename the keys to your custom field IDs.

Spam protection on Webflow forms

Spam that reaches Salesforce eats your Web-to-Lead cap, your Zapier tasks and your reps’ time. Webflow’s help center lists the built-in options in Site settings > Apps & Integrations:

  • Bot blocking under “Cloudflare Turnstile spam protection”: analyzes visitor signals and blocks bot submissions on all forms. Submit buttons stay disabled while it loads.
  • Spam filtering: checks submitted data and routes suspected spam to a separate spam inbox.
  • reCAPTCHA: enabled site-wide with v2 checkbox keys. Every form then needs a reCAPTCHA element, or that form fails to submit.
  • Honeypot: Webflow’s guide adds a hidden field plus custom code that disables the submit button when a bot fills it.

These run in Webflow’s form handler, so forms on a custom action don’t get Webflow’s spam filtering.

On your own endpoint, verify a CAPTCHA token server-side as well. Cloudflare’s documentation says a Turnstile token is valid for 300 seconds and can be validated only once, and the client widget alone doesn’t protect a form. Test whether submissions Webflow flags as spam still fire your webhook or Zap, and filter them before they reach Salesforce.

Webflow CMS and Salesforce: showing CRM data on the site

The other direction is common too: a partner directory, office locations or events maintained in Salesforce. The pattern is a scheduled sync into a Webflow CMS collection:

  1. Mark what is publicAdd a checkbox such as “Show on website” in Salesforce and sync only those records and only public fields. Never sync contacts or personal data to a public site.
  2. Store the Salesforce ID in the collectionAdd a plain text field for the Salesforce record ID. It is the matching key for updates and deletions.
  3. Query changes on a scheduleEvery few minutes or hourly, query records modified since the last run. For near real time, have a record-triggered flow or Change Data Capture call your function instead.
  4. Upsert CMS itemsCreate or update items through the Webflow Data API. According to Webflow’s docs, one request can create up to 100 items, and the live-items endpoints publish them immediately. Staged items wait for a publish call or the next site publish.
  5. Handle removalsWhen a record is unchecked or deleted, unpublish or archive the matching item rather than leaving stale pages live.

Mind the limits. Premium allows 20,000 CMS items, and the Data API allows 60 requests a minute on Starter and Basic and 120 on Premium; going over returns HTTP 429 with a Retry-After header.

Site API tokens expire after 365 days without use, which matters for a sync that runs rarely. Webflow can also send collection_item webhooks, so CMS changes can flow into Salesforce if marketing owns the content.

Which Webflow plan you need

As of October 2026, Webflow’s pricing page lists the Starter, Basic and Premium site plans, with the Team and Enterprise platform plans above them. What matters for a Salesforce integration:

Site planForm submissionsCMSCustom codeForm file uploadData API rate limit
Starter (free)50 in total, never resets50 itemsNoNo60 requests a minute
Basic ($15 a month, billed yearly)UnlimitedNoYesNo60 requests a minute
Premium ($25 a month, billed yearly)Unlimited20,000 itemsYesYes, 10 MB per file120 requests a minute
Team and EnterpriseUnlimited20,000 items on Team, custom on EnterpriseYesYes600 a minute on Team, custom on Enterprise

Forms on a custom domain need an active site plan; the free webflow.io staging domain works without one. File upload storage is free up to 10 GB, according to Webflow’s help center. Prices are list prices for 2026; check Webflow’s pricing page before you buy.

Pitfalls and how to fix them

ProblemWhat happensFix
Logic flows never rebuiltSince June 27, 2025, forms once routed by Logic only store submissions in WebflowExport the backlog, import it, then rebuild with one of the routes above
Custom action, no copyA rejected Web-to-Lead post or form handler error loses the leadUse a webhook route for important forms, or keep a backup by posting server-side
Renamed field breaks mappingA designer changes a field’s Name; the payload key changes and the value stops arrivingStable machine names, a mapping table, and an alert on missing required values
Webhook disabledSlow responses or errors exhaust retries, and Webflow deactivates the webhookReturn 200 at once and process from a queue; monitor the webhook’s status
Duplicate leadsCreate-only Zaps, or two routes on one formFind by email first; one route per form, documented in the form’s settings
Picklist rejects the recordA Webflow select option doesn’t match a Salesforce picklist valueMap options in code or the flow; change both sides together
Lost filesSubmissions are deleted in Webflow and the file URLs dieCopy files into Salesforce Files or storage at sync time
Integration tied to a personThe Zapier, app or API connection uses someone’s own Salesforce loginA dedicated integration user with only the objects and fields it needs

When a custom integration makes sense

A custom build is worth it in four cases:

  • Several Webflow sites or locales feed one org.
  • Forms must match existing accounts and route by your rules.
  • Salesforce data has to appear on the site as CMS pages.
  • A lost lead costs real money.

Many teams mix: a Zap for the newsletter form, a function for demo requests and the CMS sync. Our Salesforce integration patterns guide explains the remote call-in, fire-and-forget and batch data sync patterns behind these choices.

$2–10kSimple one-way custom integration, such as forms to Salesforce
$10–40kTypical two-way sync with a CRM
15–25%Of the build cost per year to keep it running

A webhook function for one Webflow form is the kind of one-way job the first figure describes; a CMS sync that also sends changes back to Salesforce is closer to the second. The ranges are from our API integration cost guide.

Go-live checklist

Before you switch a Webflow form over, go through the list and check off what is done. The score points to what is still missing.

Webflow Salesforce go-live

FAQ

Does Webflow integrate with Salesforce natively?
No. Webflow says on its own Salesforce integration page that Salesforce doesn’t offer an official Webflow app, and Webflow Logic, which could route form data, was turned off on June 27, 2025. You connect them with Salesforce Web-to-Lead as the form action, an iPaaS such as Zapier or Make, a Webflow Marketplace app such as Form Connector, or a webhook to your own code. Webflow Optimize (Enterprise) and Webflow Campaigns can read Salesforce data, but for personalization and pipeline reporting, not for creating leads.
Can I use Salesforce Web-to-Lead with a Webflow form?
Yes. Open the form’s settings, remove the Webflow and Email notifications destinations, add a Custom action with Salesforce’s Web-to-Lead URL and the POST method, and rename each field to the Salesforce field name from the generated HTML. Add the hidden oid and retURL inputs in a Code Embed inside the form. Webflow will no longer store those submissions, so the Salesforce lead is your only copy.
How do I send Webflow form submissions to Salesforce without Zapier?
Add a Webhook destination to the form in Webflow’s form settings and point it at a small serverless function. The function checks the webhook signature, saves the raw payload, and calls the Salesforce REST API as a dedicated integration user to find a matching lead or contact by email and create or update it. Alternatives without Zapier are Make, a Marketplace app such as Form Connector, or Web-to-Lead as the form action.
Is Webflow Logic still available?
No. According to Webflow’s help center, Logic was disabled on all sites as of June 27, 2025, existing flows stopped, and forms that were connected to Logic became standard Webflow forms. Webflow recommends Zapier or Make instead. If your leads used to reach Salesforce through Logic and nobody rebuilt the flow, check whether they still arrive.
Which Webflow plan do I need for a Salesforce integration?
Any paid site plan for forms on a custom domain. The free Starter plan stops collecting after 50 submissions in total, and custom code needs a paid plan. As of October 2026, Basic ($15 a month billed yearly) has unlimited form submissions but no CMS. Premium ($25 a month billed yearly) adds the CMS with up to 20,000 items, form file uploads and a higher API rate limit, so it is the plan for syncing Salesforce data into CMS collections.
Can I show Salesforce data on my Webflow site?
Yes, by syncing it into a Webflow CMS collection. A scheduled function queries Salesforce for changed records, then creates or updates CMS items through the Webflow Data API, keyed on the Salesforce record ID, and publishes them. Sync only fields that are meant to be public, such as partner names, locations or event details, never personal data.

Where Gilzor fits

Plenty of Webflow sites never need more than a custom action or a Zap. Gilzor, a software development company working from Poland and Cyprus, can help when you need the webhook or CMS routes. Typical triggers: forms that must match existing records, several sites on one org, or Salesforce data shown as Webflow CMS pages.

In those cases we map the fields, build the webhook and sync functions, and support them after launch. More on that work: our Salesforce integration services page.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Yuri Rudenya
Written byYuri Rudenya

Head of Mobile Development at Gilzor. Leads iOS and Android delivery and the mobile app audits, from release process to architecture.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights