Tutorial

How Do You Connect Webflow Forms to Google Sheets Without Zapier in 2026?

Written by
Pravin Kumar
Published on
May 24, 2026

Why Did I Rip Zapier Out of My Webflow Form Setup?

One of my Bengaluru clients runs a busy lead form, and last quarter their Zapier task count blew past the free tier in the first week of the month. The forms kept working, but the rows stopped landing in their sheet, and the sales team did not notice for two days. Two days of leads, sitting in Webflow, never copied across. That is when I decided to remove the middleman.

Zapier is fine, but for a simple job like copying a form submission into Google Sheets, it adds cost, a task limit, and one more thing that can quietly break. The free Zapier plan caps you at 100 tasks a month, and a single busy form eats that fast. I wanted something free, direct, and under my control.

In this tutorial I will show you how I connect Webflow forms straight to Google Sheets using Google Apps Script, with no Zapier and no Make. I will cover the script, the connection, the trade-offs, and how to test it so you trust it with real leads.

What Does It Take to Send Webflow Form Data to Google Sheets in 2026?

You need three things: a Google Sheet to hold the data, a Google Apps Script web app that receives a submission and writes a row, and a way for Webflow to call that script. Once those three connect, every form entry appears in your sheet within a second, with no third-party automation tool in the middle.

The whole setup is free because Google Apps Script runs on your own Google account. Consumer accounts get generous limits, including around 20,000 URL fetch calls and roughly 90 minutes of script runtime per day, which is far more than a normal lead form will ever use. For most small businesses this never costs a rupee.

I have used this pattern on a dozen client sites now, including some that switched after Webflow's May 13, 2026 pricing reset made them rethink every paid add-on. The appeal is simple. Fewer tools means fewer bills, fewer logins, and fewer silent failures when a plan limit gets hit.

Why Use Google Apps Script Instead of Zapier or Make?

Because it is free, direct, and you own it. Zapier and Make are great for complex, multi-step automations across many apps. But for moving one form into one sheet, they are overkill. Apps Script does the same job with no monthly task cap and no extra subscription, which matters when budgets are tight.

The trade-off is honesty about skill. Apps Script asks you to paste a small bit of JavaScript, while Zapier is pure point and click. If you are comfortable copying a script and changing a sheet name, you will be fine. If the idea of any code scares you, the no-code routes I covered for sending Webflow forms to Notion without Zapier follow the same shape and may feel friendlier.

How Do You Build the Google Apps Script Endpoint?

Open your Google Sheet, go to Extensions and then Apps Script, and create a function called doPost. Inside it, read the incoming form fields from the event parameter, append them as a new row with the sheet append method, and return a small text response. Then deploy the script as a web app set to run as you and reachable by anyone.

The script is short, often under fifteen lines. The key parts are reading the event parameter for each field name from your Webflow form, calling the sheet append row method in order, and returning a ContentService text response so the request completes cleanly. When you deploy, Google gives you a web app URL ending in exec, and that URL is the address Webflow will send data to.

Save that web app URL somewhere safe, because it is the bridge between the two systems. I keep a short note for each client listing the sheet, the script, and the URL, so future me can find it in seconds instead of digging through menus.

How Do You Connect the Webflow Form to That Script?

There are two clean ways. The simplest is to set your Webflow form's action to the Apps Script web app URL with the method as POST, so the form posts directly to your script. The other way keeps Webflow handling the form and uses a form submission webhook that calls the script after each entry.

If you point the form action straight at the script, your field names in Webflow must match the names your script reads. Webflow uses the field name attribute, so set those carefully. The form posts to Google, your script writes the row, and you can redirect users to a thank-you page afterward.

Should You Use the Form Action or a Webflow Webhook?

Use the webhook if you want Webflow to keep storing submissions and showing its native success message. Use the direct form action if you want the leanest possible setup and do not need Webflow to keep a copy. I usually pick the webhook, because keeping a backup inside Webflow has saved me more than once.

With the webhook approach, you register a form submission webhook through the Webflow Data API or your site settings, pointing at the Apps Script URL. Webflow still handles the form, shows the success state, and stores the entry, while your script quietly adds the same data to the sheet. You get the native experience and the spreadsheet at the same time.

But What About Spam and Bad Data?

Spam is the real risk with any public form, so add a filter before the data reaches your sheet. I keep Webflow's built-in spam protection on, add a honeypot field, and have the Apps Script skip rows where required fields are empty. That keeps the sheet clean enough to trust for sales work.

I also avoid asking for more than I need. Baymard Institute research has long shown that shorter forms convert better, so every field you cut lifts completion and reduces junk. Fewer fields means cleaner data in the sheet and more leads actually finishing the form, which is the whole point.

How Do You Test That It Actually Works?

Submit the form yourself with obvious test data, then watch the sheet for the new row. Check that every field landed in the right column, that the timestamp is correct, and that the success message still shows. Do this on both desktop and mobile before you trust it with a single real lead.

I run one more test that people skip. I submit a form with a missing field and a fake spam entry to confirm my filters hold. If the good row appears and the junk does not, the pipe is solid. Then I send the client a test lead so they can see it arrive in their own sheet and feel confident.

How to Wire This Up This Week

Block out thirty minutes. First, create the sheet and the Apps Script doPost function. Second, deploy it as a web app and copy the URL. Third, connect your Webflow form by webhook or form action and match the field names. Fourth, test with real and junk submissions until you trust every column.

If you want related setups, my guide on sending Webflow forms to Notion without Zapier uses the same script pattern, my walkthrough on Slack notifications without Zapier adds instant alerts, and my piece on connecting forms to HubSpot, Salesforce, and Mailchimp covers the CRM side. Together they replace most of what people pay Zapier for.

Removing tools you do not need is one of the easiest wins in a Webflow stack. Less cost, fewer failures, more control. If you want help wiring your forms straight into Google Sheets or anywhere else, I am happy to walk through it. Let's chat.

Get your website crafted professionally

Let's create a stunning website that drive great results for your business

Contact

Get in Touch

This form help clarify important questions in advance.
Please be as precise as possible as it will save our time.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.