Every time I start a new project that needs any kind of lead capture, I spend an hour rebuilding the same n8n workflow. Webhook receiver, email validation, Google Sheets append, welcome email. Every. Single. Time.
So I finally sat down and documented three of them properly — error handling, duplicate detection, null-safe field parsing, the works. Sharing the first one free here.
Workflow 1: Lead Capture → Google Sheets CRM → Welcome Email
This one handles the full lead intake loop:
- Webhook — New Lead — receives a POST from any source (Typeform, Tally, plain HTML form, whatever)
- Validate & Normalise — trims whitespace, lowercases the email, checks it matches a basic regex before anything else runs
- Google Sheets — Append Lead — checks for duplicates first (lookup by email), only appends if new
- Gmail — Welcome Email — sends a personalised welcome using the name field from the webhook payload
- Error — Notify — if anything in the chain fails, logs to a separate error sheet and optionally pings a Slack channel
All built-in nodes. Zero paid integrations required.
Why I bother with the validation step
Most tutorials skip it. The problem: if you let garbage through to Sheets, you end up with rows like undefined@undefined.com or as a name, and your welcome email looks broken. The validate step costs one extra node and saves hours of cleanup.
The duplicate check is the other thing people skip. Without it, a lead who submits twice gets two welcome emails. Small thing, looks unprofessional.
Setup (under 10 minutes)
- Import the JSON into n8n (Workflows → Import from clipboard)
- Connect your Google Sheets credential — point it at a sheet with columns:
timestamp,name,email,source - Connect your Gmail credential (or swap to SMTP/Resend if you prefer)
- Activate the webhook and grab the production URL
- Point your form POST action at it
That is it. The workflow handles the rest.
The JSON
Drop a comment below and I will share the JSON file directly. Happy to paste it in a comment or send via DM.
I also put together a Starter Pack with all three workflows (Lead CRM, Stripe Payment Fulfillment, and Form to Sheets + Slack) plus full setup docs and a testing checklist for each one. If you are tired of rebuilding this stuff from scratch: https://pirateprentice.gumroad.com/l/sxcoe ($29 one-time).
What workflows do you find yourself rebuilding most often? Curious what to build next.
Top comments (1)
Here's the JSON for Workflow 1 as promised — Lead Capture → Google Sheets CRM → Welcome Email. Import via Workflows → Import from File in n8n.
Three variables to set before activating:
CRM_SHEET_ID— your Google Sheet ID (from the URL)REPLY_TO_EMAIL— reply-to address shown to leadsOPERATOR_EMAIL— your own email for error alertsYou'll also need Google Sheets OAuth2 and Gmail OAuth2 credentials connected in n8n.
Let me know if you hit any snags on the credential setup — happy to help.