Leads land in Webflow's form inbox. Every Friday someone exports a CSV, pastes it into the sheet sales works from, and that sheet is always a week behind. Or it runs the other way: your job listings, locations or resources live in a spreadsheet, and someone retypes them into the CMS row by row.
Here is the plain fact about any Webflow Google Sheets integration. Webflow does not include a built-in connection to Google Sheets, and there is no official Google Sheets app on the Webflow Marketplace (see Webflow's Google Sheets integration page). Every working setup runs through something in between: an automation tool, a sync app, an embed or the APIs.
So the first question isn't which tool to use. It's which way the data flows. Webflow forms into Sheets, Sheets into the Webflow CMS, or sheet data shown on a page. Decide that first and the method follows.
This guide gives you step-by-step instructions for each Webflow Google Sheets integration direction, what you need before you start, Webflow's real limits (form submissions, CMS items, API rate limits) and the pitfalls that silently drop data. Every limit and interface step comes from the vendor's own documentation, linked where it is used.
We connect Webflow to the tools marketing teams already use. Before we install anything, we map five things: the trigger, the fields, the destination, the failure handling and the owner. This guide follows the same order.
Which way should your Webflow Google Sheets integration flow?
There are three directions, and each one has a different best method. Pick the direction first, then the tool.
- Webflow forms to Google Sheets. Lead logging, event signups, a shared tracking sheet for sales. Best methods: Zapier or Make, a Webflow webhook, or Google Apps Script.
- Google Sheets to the Webflow CMS. Blog pipelines, job listings, directories, programmatic pages, product data. Best methods: a sync app (Whalesync, Byteline or Sheetflow), Zapier or Make, or a one-off CSV import.
- Sheet data shown on a page, without touching the CMS. Pricing tables, event schedules. Best method: Publish to web plus a Webflow Code Embed.
Webflow's own guide lists four approaches: marketplace sync apps, direct embeds, automation platforms, and the Webflow and Google Sheets APIs. It also notes that most implementations combine two or more. A common combination: forms go to a sheet through Zapier, while a sync app feeds a job board from a different sheet.
Quick comparison
- Forms to Sheets. No-code: Zapier or Make. Code: a webhook to your own endpoint, or Apps Script. Timing: real time. Plan: a paid Site plan on your custom domain. Main risk: a renamed form or field silently breaks the mapping.
- Sheets to CMS. No-code: a sync app, or Zapier/Make. Code: the Webflow Data API. Timing: scheduled or on new rows. Plan: one with CMS access. Main risk: API rate limits and duplicate items.
- Sheet on a page. No-code: Publish to web and a Code Embed. Code: not needed. Timing: follows the sheet, sometimes with a short delay. Plan: no CMS needed. Main risk: exposing tabs you meant to keep private.
Before you start: what you need
Five things to sort out before you open Zapier or install an app for your Webflow Google Sheets integration.
- A published site on a paid Site plan. Per Webflow's Help Center, the free Starter plan limits a site to 50 form submissions in total. That limit doesn't reset, and once you hit it new submissions are no longer collected. Other Site plans have unlimited submissions. Test on the live site, not in the Designer: form submissions only work once the site is published (Webflow University).
- CMS access, if data goes into the CMS. Webflow has changed its plan names and bundles over time, so don't rely on a number quoted in a blog post, including this one. Webflow's Google Sheets page has stated 2,000 CMS items on the CMS plan and 10,000 on the Business plan. Confirm the current limit for your plan on Webflow's pricing page before you sync a large sheet.
- A Google account with edit access to the spreadsheet, and a header row in row 1. Zapier reads column names from the first row. No headers, no columns to map.
- Clean, unique names. Give every form and every form field a unique name. By default a new Webflow form is called "Email Form", and Webflow's developer docs say field names become the keys in the data that is sent. Three forms all called "Email Form" will end up in one muddle. More on structuring forms in our guide to Webflow forms.
- One owner. Name the person who notices when the connection breaks and gets the error emails. Our Webflow integrations checklist covers the full list: trigger, fields, permissions, transformations, destination, failure handling and owner.
How to send Webflow form submissions to Google Sheets
This is the most common Webflow Google Sheets integration. Four routes, from simplest to most control. Start with the baseline so you know what you're replacing.
The zero-cost baseline: Webflow stores every submission in Site settings > Forms, and you can download submissions as a CSV (see Webflow's form submissions documentation). Fine for a monthly report. Not fine for a lead sheet sales works from every day.
Why we keep a sheet of every submission
Our view: a Google Sheet is more than a copy of your form inbox. Once every submission lands in one place, you can filter, sort and extract value from your data without asking a developer. It also becomes a working layer: you can do calculations in the sheet before the data moves on to the next automation, such as a CRM, an email or a Slack alert.
We have built this for clients. For SendClospoint.nl, a sheet sits inside an automation for the contact form. For Boekhouden voor Beginners, we use Google Sheets to calculate whether people pass a test, and the result decides what happens next. Set up well, it is a robust and easy-to-maintain system, because the logic is visible to everyone on the team. Set it up badly and it breaks silently, which is why the pitfalls below matter.
Option 1: Zapier (fastest no-code setup)
- Create the sheet. Add column headers in row 1 that match your form fields, for example Name, Email, Company, Message.
- Submit a test entry on the live form. Webflow's Help Center says a form needs at least one submission before you can connect it to a Zap.
- Set the trigger. In Zapier, create a Zap with Webflow as the trigger app and New Form Submission as the event. Connect your Webflow account and pick the site and form.
- Set the action. Add Google Sheets as the action app with Create Spreadsheet Row. Choose the drive, spreadsheet and worksheet.
- Map, test, publish. Map each Webflow field to its column, run the test, check the row in your sheet, then publish the Zap.
Example mapping for a contact form (an illustration of how the mapping looks, not a recorded Overflow test): Webflow field Name goes to column A "Name", Email to column B "Email", Company to column C "Company", Message to column D "Message". A successful test shows one new row with those four values under the matching headers. If a column stays empty, the field name and header don't match.
Zapier also lets you add filters (only send certain submissions) and extra steps, such as a Slack alert for the sales team.
Watch out for forms inside Components. Forms placed inside Webflow Components are not detected by the standard Webflow trigger. The workaround: in Webflow, go to Site settings > Apps & Integrations, add a webhook with Form Submission as the trigger type, and paste a Zapier Catch Hook URL as the destination. Then filter in the Zap on the form name so only the right form passes.
On cost: Zapier has a free plan with task limits. Check Zapier's current pricing against your monthly form volume before you rely on it.
Option 2: Make (more control, visual scenarios)
- Create a new scenario in Make.
- Add the Webflow Watch Events trigger and set it to form submissions.
- Add the Google Sheets Add a Row module and choose your spreadsheet and sheet.
- Submit a test entry on the live form, click Run once, and map the incoming fields to your columns.
- Activate the scenario.
Make lists Watch Events as its Webflow trigger, and its visual builder makes multi-step flows easier to follow than a long Zap. One catch: users in the Make community report that the trigger doesn't let you pick a specific form. If your site has several forms, add a router or filter on the form name so each form lands in its own sheet or tab. Make has a free plan; check its current limits on Make's pricing page.
Option 3: Webflow webhook to your own endpoint
For teams with a developer or an existing automation endpoint. A webhook pushes each submission the moment it happens, instead of a tool checking for new ones.
- Create the webhook. In Site settings > Apps & Integrations, add a webhook with trigger type Form Submission and your endpoint URL. Or create it through the Data API's Create Webhook endpoint with your site_id, url and triggerType form_submission (Webflow developer docs).
- Filter by form. The API version supports a filter on the form name, which helps when a site has several forms. Webflow also notes that webhooks created in the dashboard don't include the headers needed to verify signatures, so create production webhooks through the API.
- Inspect the payload. Submit the live form and look at what arrives (Webflow's tutorial uses webhook.site). The payload holds the form name, the site ID and the field data keyed by field name.
- Append the row. Your endpoint writes the row with the Google Sheets API's values append call.
Security rule from Webflow: never put API credentials in client-side JavaScript on your Webflow site, because any visitor can read them in the page source. Run the code server-side, for example on a Node server, a Cloudflare Worker or a Vercel function. Respond fast: Webflow treats redirects, SSL problems and slow responses as failed deliveries, and repeated failures deactivate the webhook with an email to the site owner.
Option 4: Google Apps Script (free, some copy-paste)
An Apps Script web app attached to your sheet receives the submission and writes a row. In BRIX Templates' version, a small script on your Webflow site sends the form data to that web app.
The rule that trips people up: field names must match exactly in three places, the Webflow field names, the sheet headers and the script, capitalization included. "firstName" and "First Name" are different fields. When they don't match, the data simply isn't saved.
The trade-off is honest: no subscription, but you own the script, its deployment and its permissions. When it breaks, nobody gets an alert unless you build one. Also check that submissions still appear in Site settings > Forms after you install it, so you keep a backup inside Webflow. For the script itself, follow Google's Apps Script documentation rather than an untested snippet.
How to sync Google Sheets rows to the Webflow CMS
This Webflow Google Sheets integration is for teams that plan content in spreadsheets: job boards, location pages, directories, resource libraries and programmatic SEO pages.
Before any tool, build the Collection. Create your CMS Collection first and make the sheet mirror it, with one column for each Collection field. If you're new to Collections, start with our guide to Webflow CMS collections.
Option 1: A sync app (Whalesync, Byteline or Sheetflow)
Sync apps handle the mapping, retries and scheduling for you. Webflow's guide describes the Whalesync setup like this:
- Install Whalesync from the Webflow Marketplace and connect your Webflow account.
- Connect your Google account and select the spreadsheet.
- Map spreadsheet columns to your Collection fields.
- Choose one-way or two-way sync, and activate.
Whalesync offers two-way sync, so an edit in the CMS can write back to the sheet. Webflow says it uses Whalesync internally. Byteline offers a similar product, positioned for agencies managing data across several client sites.
Sheetflow is a newer option. According to its listing on Webflow Apps, it can sync on a schedule as often as every 5 minutes, convert Markdown in your sheet to Rich Text, map reference fields, format dates to ISO 8601 and optionally publish the site after a sync.
Two checks before you switch any of them on. First, compare your row count with your plan's CMS item limit. Second, check each vendor's own pricing page: plans and record limits change, and we don't print prices that may be out of date by the time you read this.
Option 2: Zapier or Make (a new row creates a CMS item)
- Trigger: New Spreadsheet Row, or New or Updated Spreadsheet Row if edits should flow through too.
- Action: Create Item or Create Live Item in Webflow, then pick the site and Collection.
- Map: match each column to a Collection field.
- Test and turn on: run a test row, check the item in the CMS, then activate.
Some fields need the formats the Webflow API expects. Webflow's Help Center gives the date example: 2023-07-28T19:41:52.325Z. Use a date format column in the sheet that produces exactly that.
Draft or live is a real decision. Create Item stages the item for review; Create Live Item puts it on the published site. If someone should read content before it goes out, use the staged version.
Updates are harder than creates. To update an existing item, the automation needs a stable ID to find it. Add an Item ID column to the sheet, write the ID back after each create, and match on it. Matching on titles is how you end up with duplicates.
Option 3: One-off CSV import (no tool needed)
For a single bulk load or a migration. In Google Sheets, go to File > Download > Comma-separated values (.csv), then import the file into your Collection in Webflow, following Webflow's CMS import guide.
- Webflow accepts CSV files up to 4 MB, and the number of items you can import depends on your Site plan.
- To update existing items: export the Collection first, keep the Item ID column, edit in Sheets, re-import and choose Link and update matching items.
- Reference fields are matched by slug. Plain text is converted to a slug and matched; items with custom slugs won't match unless the custom slug is in the CSV. Import the referenced Collection (authors, categories) first.
- It isn't a live connection. Every change means another export and import.
How to display Google Sheets data on a Webflow page
When you only need to show a table, not turn rows into pages, an embed is the simplest route. Steps from Webflow's guide:
- In Google Sheets, go to File > Share > Publish to web. Pick the tab or range, choose Embed and copy the iframe code.
- In Webflow, drag a Code Embed element into a container or div block. The wrapper keeps the embed responsive. (More on how embeds behave in our guide to Webflow custom code.)
- Paste the iframe code into the Code Embed, save, and publish the site.
The embed follows changes in the sheet, with no automation tool or API key involved. Allow a few minutes for edits to show.
Only use this for public data. Publish to web makes the content readable by anyone with the link. Webflow also warns that changing single=true to single=false in the published URL exposes every tab in the spreadsheet, not just the one you picked. Never embed a sheet that also holds leads, prices you haven't announced or internal notes. Make a separate spreadsheet for public output.
One more thing to weigh. The content in an iframe is served from Google's domain, not yours, so it doesn't strengthen your page the way content in your own HTML does. If the data should help the page rank or be quoted in AI answers, sync it into the CMS instead so it's part of the page. That's the kind of decision our Webflow SEO services cover: what lives in the CMS, how it's structured, and which pages it powers.
Webflow limits that break a Google Sheets integration
Most broken Webflow Google Sheets integration setups don't fail on day one. They fail the day someone pastes in 800 rows. These are the limits behind that, taken from Webflow's rate limit documentation. Check the page again before you build: limits and plan names change.
- API rate limits. The docs set the limit by plan: 60 requests per minute on Starter and Basic, 120 on CMS, eCommerce and Business, and custom on Enterprise. Go over it and the API returns a 429 Too Many Requests error, with a Retry-After header that is typically 60 seconds. If your plan has been renamed since, look up its current limit on the same page.
- One publish per minute. Site publishing through the API is limited to one successful publish per minute. A sync that publishes the site after every row will fail.
- Every item is a request. Each create or update counts against the limit. Push a 1,000-row sheet one item at a time and you'll hit it. Batch the work, throttle it, or use a sync app that handles retries for you.
- Plan caps. Your CMS item limit (see the prerequisites above) and the Starter plan's 50 lifetime form submissions both stop data without much warning.
- Polling eats the budget. Webflow recommends webhooks over frequent polling to stay within the limits. A tool that checks for changes every minute uses requests even when nothing changed.
Common pitfalls and how to avoid them
- Custom form action URLs bypass Webflow. Some tools ask you to paste their URL into the form's Action field. Webflow's Help Center is clear that a custom action bypasses Webflow's form processing: submissions aren't stored in Webflow and no notification emails go out. Our view: keep native Webflow forms and push the data on with a webhook or automation. Then there's always a record in Webflow to fall back on.
- Forms inside Components don't trigger Zapier. Use the webhook and Catch Hook workaround from Option 1 above.
- Duplicate form names and missing field names. Data merges across forms or arrives empty. Give every form and field a unique, stable name.
- Renaming breaks the mapping. Renaming a form, or adding or renaming a field, doesn't update your Zap or scenario. Webflow notes a renamed form can break the Zap until you reselect it. Re-test after every form edit.
- Spam rows. Bots fill your sheet as fast as they fill your inbox. Keep Webflow's spam protection on: bot blocking and spam filtering sit under Cloudflare Turnstile spam protection in Site settings > Apps & Integrations.
- File uploads. To move uploaded files through Zapier, Webflow requires you to turn off Restrict uploaded file access, so no login is needed to open them. Decide whether that's acceptable for what people upload.
- Personal data in a shared sheet. A lead sheet holds names and email addresses. Limit who it's shared with, never use Publish to web on it, and agree who can see submissions. Webflow reminds site owners to review their responsibilities as data controller when sending personal data through tools like Zapier. Check the details with whoever handles privacy in your company.
- Nobody owns it. Name one person who receives the failure alerts from Zapier, Make or the sync app, and who checks the sheet against Webflow's form inbox every week.
When your Webflow Google Sheets integration is no longer enough
Google Sheets works well as a lead log, a calculation layer or a staging layer for content. Used that way it is robust, as long as the setup is clean. You've outgrown it when:
- sales needs lifecycle stages, owners and follow-up tasks, not just rows
- several forms feed several sheets and nobody knows which one is current
- your calculations or logic have grown too complex for a sheet to stay readable
- your content needs relations between collections that a flat sheet can't hold
For leads, the next step is a CRM. See how we connect Webflow to HubSpot, Salesforce and Pipedrive.
For content that behaves like a database, look at the Webflow Airtable integration or the Webflow Notion integration.
Whichever tool you land on, we hand over documentation so your marketing team runs it without a developer. You own the setup, not us. See all Webflow integrations we build.
FAQ
Does Webflow have a native Google Sheets integration?
No. Webflow has no built-in spreadsheet connection, and there is no official Google Sheets app on the Webflow Marketplace. You connect them through Zapier, Make, a sync app such as Whalesync, an embed or the APIs.
Can Webflow forms send data to Google Sheets without Zapier?
Yes. You can use Make, a Webflow webhook to your own endpoint, Google Apps Script or a form backend service. Be careful with tools that need a custom form action URL: that bypasses Webflow's own submission storage and notifications.
Can I update Webflow CMS items from Google Sheets automatically?
Yes, with a sync app like Whalesync, Byteline or Sheetflow, or with Zapier or Make using an action such as Update Live Item. You need a Site plan with CMS access and a stable item ID in the sheet so the tool knows which item to update.
Is the Webflow Google Sheets sync two-way?
Only with tools built for it. Whalesync and Byteline offer two-way sync. Most Zapier and Make setups move data one way per Zap or scenario, so two-way needs two flows and careful loop prevention.
Why is my Webflow form not showing up in Zapier?
Usually because no submission exists yet, the site isn't published, or the form sits inside a Component. Submit a test entry on the live site, or use a Webflow webhook with a Zapier Catch Hook.
Is it safe to embed a Google Sheet on my Webflow site?
Only for public data. Publish to web makes the sheet readable by anyone with the link, and a change to one URL parameter can expose every tab. Keep public output in a separate spreadsheet.
Timing depends on your site's condition, competition, authority, content, and implementation pace. Overflow sets priorities and realistic expectations without promising a specific ranking or universal result date.
Overflow can support content migration, CMS transition, URL mapping, redirects, and SEO protection when included in scope. The NedCargo Webflow case study documents these activities in a WordPress-to-Webflow migration.
Overflow can combine recommendations with direct Webflow implementation when that work is included in scope. This keeps strategic priorities connected to the technical changes required on the site.
Yes, Webflow's official SEO guidance documents built-in tools for meta tags, structured data, and image alt text. SEO outcomes depend on strategy, content, technical implementation, and continued improvement.
They are designed for B2B founders and marketing teams that need stronger search visibility and faster publishing. They also support clearer buyer journeys with less reliance on developer queues or disconnected agency handoffs.
Webflow gives marketing teams control over their website while providing the flexibility, performance, and scalability growing B2B companies need.
We strengthen the content, technical foundations, brand authority, and external signals that influence how AI platforms discover, understand, and cite your company.
B2B buyers increasingly use platforms such as ChatGPT, Gemini, and Perplexity to research problems, compare solutions, and evaluate potential partners. Investing in AI Search helps your company become visible and considered during these buying decisions.
We work with ambitious B2B companies whose marketing teams need to launch faster, improve conversion, and generate more qualified pipeline.
Most website projects take six to eight weeks. The exact timeline depends on the scope, content, integrations, and speed of feedback.
We build scalable B2B marketing websites and help companies increase their visibility across Google and AI platforms such as ChatGPT, Gemini, and Perplexity.




