Webflow to Google Sheets, leads logged cleanly
Your Webflow form leads are coming in. The problem is what happens next: someone has to notice them, copy them, paste them, and hope nothing gets missed.
Marketing managers feel it when campaigns spike and the spreadsheet lags behind. A small business owner sees it when a “hot” lead sits for a day. And an agency gets the angry email when a client asks why their lead list is incomplete. This Webflow Sheets leads automation fixes that by logging every submission in one clean place.
You’ll see exactly how the workflow captures the submission, prepares fields (including a date), and writes a reliable row to Google Sheets so your team has one source of truth.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Webflow to Google Sheets, leads logged cleanly
flowchart LR
subgraph sg0["On Form Submission Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Prepare Fields"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webflow.svg' width='40' height='40' /></div><br/>On Form Submission"]
n2@{ icon: "mdi:database", form: "rounded", label: "Append New Row", pos: "b", h: 48 }
n0 --> n2
n1 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 trigger
class n2 database
class n0 code
classDef customIcon fill:none,stroke:none
class n0,n1 customIcon
The Problem: Webflow leads get messy fast
Webflow forms are great at collecting leads, but they’re not great at keeping your team aligned. Someone exports a CSV “later.” Someone else copies details into a sheet “when they have a minute.” Then you end up with duplicates, missing phone numbers, weird formatting, and no consistent timestamp for when the lead actually came in. The worst part is the uncertainty. You stop trusting the spreadsheet, so people create their own versions, and now the mess is official.
It adds up fast. Here’s where it usually breaks down.
- Leads get checked once or twice a day, so response time quietly slips.
- Manual copy-paste introduces tiny errors that are painful to spot later.
- You lose the “received at” context, which makes reporting and follow-up harder.
- Multiple people editing the same sheet leads to inconsistent columns and broken filters.
The Solution: Webflow submissions written to Sheets automatically
This workflow connects Webflow form submissions directly to Google Sheets using n8n. When a visitor submits your Webflow form, the workflow triggers instantly. It then prepares the data for your spreadsheet by organizing the incoming fields, normalizing them into a predictable structure, and adding a submission date so every row has a clear timeline. Finally, it creates a new row in your chosen Google Sheet with the mapped fields, so your lead list updates the moment the form is submitted. No exporting. No reminders. No “who copied this over?” messages in Slack.
The workflow starts with a Webflow trigger for new form submissions. Next, an “assemble fields” step shapes the data and adds the date. Then Google Sheets logs the submission as a clean row your team can sort, filter, and route.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you get about 20 form leads a day. If someone spends roughly 2 minutes per lead exporting, copying, pasting, and sanity-checking the row, that’s about 40 minutes daily, or roughly 3 hours a week. With this workflow, the “manual” part is basically zero: Webflow triggers instantly, n8n formats the fields in seconds, and the row is written to Google Sheets right away. You still qualify leads, obviously. You just stop doing data entry.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Webflow to trigger on new form submissions
- Google Sheets to store leads as rows
- Webflow API access (enable the modern API, disable legacy APIs)
Skill level: Beginner. You’ll connect accounts, pick a spreadsheet, and confirm field mapping once.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Webflow form submission triggers the workflow. As soon as someone submits your form, n8n receives the payload (name, email, message, and whatever custom fields you collect).
The workflow prepares your fields. It organizes the submission into a clean structure, and it adds a submission date so every record is time-stamped consistently instead of relying on “when someone exported it.”
Google Sheets gets a new row. The workflow writes the mapped fields into your selected spreadsheet, using the columns you define so the sheet stays tidy and usable.
Your team works from the sheet they already use. Sales can filter by date, marketing can review lead quality, and ops can build downstream processes off that single tab.
You can easily modify the captured fields to match your form (for example, adding UTM parameters or a “Lead Source” value) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webflow Trigger
Set up the workflow to listen for new form submissions from your Webflow site.
- Add and open Form Submission Trigger.
- Set Site to
[YOUR_ID](your Webflow site ID). - Credential Required: Connect your webflowOAuth2Api credentials.
Step 2: Connect Google Sheets
Prepare the destination spreadsheet where submissions will be stored.
- Add and open Add Spreadsheet Row.
- Set Operation to
append. - Set Document to
[YOUR_ID]and ensure the list selection showsAutomation test. - Set Sheet to
Sheet1(valuegid=0). - Credential Required: Connect your googleSheetsOAuth2Api credentials.
Step 3: Set Up Processing Logic
Normalize incoming form data before writing to Google Sheets.
- Add and open Assemble Input Fields.
- Paste the JavaScript into Code to extract and add a timestamp:
const formData = $input.all()[0].json.payload.data const Date = $input.all()[0].json.payload.submittedAt || new Date() return { ...formData, // creates a new field for every element inside formData Date } - Connect Form Submission Trigger to Assemble Input Fields.
payload.data. If your form structure differs, adjust the code accordingly.Step 4: Configure Output Mapping
Map the processed fields into spreadsheet columns.
- In Add Spreadsheet Row, confirm the column mappings:
- Set Name to
={{ $json.data.Name }}, Email to={{ $json.data.Email }}, and Message to={{ $json.data.Message }}. - Connect Assemble Input Fields to Add Spreadsheet Row.
Name, Email, and Message.Step 5: Test and Activate Your Workflow
Validate the end-to-end flow before turning it on.
- Click Test Workflow and submit a Webflow form.
- Confirm Assemble Input Fields outputs the expected fields and timestamp.
- Verify a new row appears in your spreadsheet via Add Spreadsheet Row.
- Click Activate to enable the workflow for production use.
Common Gotchas
- Webflow credentials can expire or lack access to the right site. If things break, check your Webflow API settings and connected site permissions first (and confirm legacy APIs are disabled).
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Google Sheets often “fails silently” when the target sheet/tab name changes. If rows stop appearing, confirm you’re still writing to the correct spreadsheet and worksheet.
Frequently Asked Questions
About 5–10 minutes if your Webflow and Google accounts are ready.
No. You’ll connect Webflow and Google Sheets, then match fields once.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Webflow/Google access (usually no extra API cost for this use case).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s one of the best reasons to use n8n. You can update the “Assemble Input Fields” step to include new Webflow fields, then map them into new columns in Google Sheets. If you have multiple Webflow forms, you can either point them to the same sheet (and add a “Form Name” column) or route each form to a different tab using simple conditions. People also add UTM values, page URL, or a “Handled” status column so sales can work from one view.
Usually it’s API access. In Webflow, confirm you’re using the current API setup and that legacy APIs are disabled as noted inside the workflow. Then re-check the connected site permissions in n8n and re-authenticate if the token has expired. If it still fails, test with a fresh form submission and confirm the trigger is pointing at the correct Webflow site and form.
A lot. On n8n Cloud, your limit depends on your plan’s monthly executions, while self-hosting mainly depends on your server. Practically, most small teams can log hundreds of submissions a day without thinking about it, since each form submit is just a single workflow run and a single Sheets row write.
Often, yes, especially if you care about consistent field shaping and future changes. n8n makes it easy to add logic (like routing by form, adding calculated fields, or filtering duplicates) without paying extra for every branch. You also get the self-hosting option, which is honestly a big deal if your volume grows. Zapier and Make can be faster for a simple two-step “send to sheet,” but they get awkward once you want to standardize fields or add conditional routing. If you’re deciding between them, Talk to an automation expert and you’ll get a straight recommendation.
Once this is live, every Webflow submission shows up as a clean, dated row in the same sheet, every time. Set it up once, then get back to work that actually moves revenue.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.