Webflow forms to Google Sheets
Paste one webhook URL into your Webflow site settings and every form submission lands as a row in a sheet you own. No Zapier, no code on the page.
Webflow is good at collecting form submissions and quietly awkward at handing them over. Submissions accumulate in the project's Forms tab and in notification emails, and getting them into a spreadsheet - the place where most teams actually sort, filter, and follow up on leads - usually means a manual CSV export or a Zapier plan that meters every submission as a billable task.
SheetLink Forms removes the middle layer. It is a hosted endpoint with a native Webflow webhook: Webflow's own server calls it on every form submission, and an asynchronous worker writes the row directly to the Google Sheets API or Microsoft Graph. Rows land in your Google Sheet or Excel Online table seconds after submit, with automatic retries at 5 minutes, 30 minutes, and 2 hours if a destination is briefly unreachable, and a delivery log in the dashboard so you can see exactly what happened to every submission.
Suspicious submissions are never silently dropped - they are quarantined for one-click review, so a false positive costs you seconds instead of a lead. See how it works or watch a real form feed a public sheet on the live demo.
The best path for Webflow
The best path for Webflow is the native webhook - no embed script, no changes to your design. Webflow fires a webhook on every form submission, so you point it at your SheetLink Forms endpoint in Site settings -> Integrations -> Webhooks with the trigger set to "Form submission". One webhook covers every form on the site, and the originating form's name is recorded with each row, so you can tell your contact form from your newsletter signup in the same sheet.
The webhook is additive: Webflow's own success message, Forms tab, and email notifications keep working exactly as before. Full details are in the developer docs.
1. Create the form in the SheetLink Forms dashboard
Create a form in the dashboard and connect a destination: Google Sheets uses a one-click OAuth flow with the drive.file scope, which means SheetLink Forms can only touch sheets you pick in the Google picker or create inside the product - never the rest of your Drive. Excel Online connects to a Microsoft 365 account and writes into an Excel table you pick. On an empty Google Sheet, the header row is seeded for you and rows append under it.
2. Copy your Webflow webhook URL
Every form gets a permanent token. The Webflow-specific webhook URL has the shape https://sheetlinkforms.com/w/webflow/YOUR_TOKEN - copy it from the form's setup panel. This is different from the generic /f/ endpoint: the /w/webflow/ path understands Webflow's webhook payload, including which form on the site fired it.
3. Add the webhook in Webflow
- Open your project's Site settings.
- Go to the Integrations tab and scroll to Webhooks.
- Click Add webhook, choose the trigger type Form submission, and paste your URL.
- Save. From now on, Webflow calls SheetLink Forms every time any form on the site is submitted.
4. Check your field names against your columns
Webflow sends each input's name with its value. Field names that match your column headers map automatically, and matching is case- and punctuation-insensitive: Email, email, and E-mail all land in an Email column. If your Webflow field labels do not line up with the columns you want, set an explicit per-field mapping in the dashboard instead of renaming things in your design.
5. Publish and send a test submission
Publish the site, then submit each form once. The row should land within seconds. Confirm it in the sheet, then open the delivery log in the dashboard - every submission shows its delivery status there, and anything the spam heuristics found suspicious sits in quarantine for one-click review rather than disappearing. Approve it and it delivers.
FAQ
Is this free to use with Webflow?
SheetLink Forms is free during the beta, with an invite required - join the waitlist. There are no per-submission or per-task fees, ever, which is the structural difference from running Webflow forms through Zapier. Planned post-beta pricing (planned, not final): a free tier around 50 submissions a month and a paid plan around $15-19/mo, unmetered.
Do submissions still show up inside Webflow?
Yes. The webhook is an extra recipient, not a replacement. Webflow's Forms tab, notification emails, and on-page success message all keep working. Your sheet just fills up in parallel.
I have several forms on one site - do I need a webhook for each?
No. One webhook covers every form on the site, and each row records the name of the form that produced it, so you can filter or split by form inside the sheet. If you would rather send different forms to different sheets, create separate SheetLink forms and post those forms to their /f/ endpoints directly instead.
How is spam handled on the webhook path?
Published Webflow forms attract bots. Submissions arriving via the webhook run through content heuristics - link stuffing, disposable email domains, empty payloads - plus per-form and per-IP rate limits, with a per-form strictness dial (loose, normal, strict). Anything suspicious is quarantined for one-click review, never silently dropped. Only the honeypot marks a submission as spam outright, and that applies to HTML forms using the embed.
Can I capture gclid and UTM parameters from Webflow?
The webhook records what Webflow sends, which is the form's fields. Automatic ad attribution - utm_* plus gclid, wbraid, gbraid, fbclid, and msclkid, persisted across pages - is a feature of the sl.js embed. If attribution matters, put a plain HTML form in a Webflow Embed element pointing at your /f/ endpoint and load sl.js; the docs cover both paths.
Also on: Framer · Squarespace · Plain HTML