An n8n workflow kit by GRIDGO
Every enquiry saved, thanked and in your team chat before you finish your coffee.
Lead Capture → Sheet + Alerts takes each form submission from your website or a hosted n8n form, cleans it, checks for spam and repeats, writes it to Google Sheets, emails the lead a thank-you and pings your team. One Config node holds every setting.
Website formPOST /webhook/lead-capture
Google Sheet, Leads tabnew row
Team alertsplus a thank-you email to Angelo
What happens to one enquiry
The same path runs whether the lead came from your website, the hosted n8n form, or another workflow such as Facebook Lead Ads.
- Received
Your website posts the form (JSON or a normal HTML form), or the hosted n8n form hands the lead over.
- Cleaned
Common field names are mapped, email is lower-cased, PH numbers become
+639…, UTM tags are kept. - Spam dropped
Honeypot, speed check, link stuffing, keywords and throw-away domains. Bots get a quiet 200.
- Checked for repeats
Same email or phone? The existing row is updated instead of adding a new one.
- Saved
A row in your
Leadstab with alead_id, status and Manila-time timestamps. - Answered
Your website gets a JSON reply with
ok,lead_idandduplicate. - Thanked
New leads receive a Gmail thank-you with their reference number.
- Announced
Your team gets the details on Telegram, Slack or Discord, with a link to the Sheet.
How the workflows fit together
Three workflows: the main one does all the work, a small error handler catches outages, and an optional hosted form for clients without a website.
Entry
Check
Save
Tell people
Error Log tab.
What's built in
One place to configure
Sheet ID, business name, email wording, alert channels and spam rules all live in the Config node.
No duplicate rows
Repeat enquiries update the original row, raise submission_count and keep sales stages you set.
Quiet spam filter
Five checks drop bots without telling them why. Real typos get a clear 422 with the reason.
Philippine-ready
Local mobiles like 0917 123 4567 become +639171234567. Set another country code for SG, MY, VN or ID.
Leads are never lost
Google outages trigger the Error Handler; failed emails and alerts are logged in the Sheet.
Safe to hand over
No credentials in the files, formula-injection guard on every cell, and offline tests you can rerun.
See it working
Leads tab: one row per person, with status, first-touch UTM tags and a running submission count.Verified live
Run on a self-hosted n8n 2.47.3 on November 11, 2026, through the hosted Demo Form.
- Append Lead Row, Gmail and Telegram ran
- Lead
LC-20261111-EUNQcreated - Form showed the Thank-You page
- Email: “Thanks for contacting GRIDGO Demo Co.”
- Update Lead Row ran, no new row
status = returning,submission_count = 2- Note added: matched by email
- Telegram said “Returning lead (#2)”, no second email
The main workflow ran correctly while still unpublished; publishing is only needed for the public website URL. Still to be run live: a curl call to the website webhook, the spam path, and a forced error for the Error Log. The testing page shows how.
Who it's for
“Book a consultation” goes straight to the front-desk Telegram group with the patient's number.
Facebook ad enquiries land in one Sheet with utm_campaign, so you see which ad paid off.
Enrollment enquiries are thanked right away, even at 11 PM.
Catering and private-event requests reach the owner's phone.
Set the country code and time zone for Singapore, Malaysia, Vietnam or Indonesia.
One copy per client, each with its own Sheet and alert channel.
What's in the kit
| File | What it's for |
|---|---|
lead-capture-alerts.json | The main workflow. Import this. |
lead-capture-error-handler.json | Error workflow: logs outages to the Sheet and alerts you. |
lead-capture-demo-form.json | Optional hosted n8n form that calls the main workflow. |
Sample Sheet and sample/leads-sample.csv | The Leads and Error Log tabs with headers and 8 fictional leads. |
sample/payloads/*.json | Five test requests: new, duplicate by email, duplicate by phone, spam, invalid. |
test/harness.js, test/validate.js | Offline tests: 22 logic cases and a structure check of the workflow files. |
| Guide PDF and screenshots | This guide as a 31-page PDF. |
Get the kit
Want this running for your business, or for your clients? Send us a message and we'll reply with the files, pricing and a time to set it up together if you'd like help.
Contact usContact details are coming soon.
- Three ready-to-import n8n workflows
- Sample Google Sheet with the right headers
- Test payloads and offline test scripts
- This guide, plus the 31-page PDF
- Made for Philippine and SEA phone formats