Capture and deduplicate website leads in Google Sheets with Slack alerts
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 11 nodes and runs when an HTTP POST request hits its webhook URL. Along the way it connects Google Sheets and Slack.
How it runs
Trigger: When an HTTP POST request hits its webhook URL.
- Normalize Lead Data (Code): runs custom JavaScript code
- Check Lead Validity (If): checks a condition and branches into true / false
- Acknowledge Valid Lead (Respond to Webhook): sends the response back to the webhook caller
- Reject Invalid Lead (Respond to Webhook): sends the response back to the webhook caller
- Search Lead in Sheets (Google Sheets): uses Google Sheets
- Classify Lead as New or Returning (Code): runs custom JavaScript code
- Check If Lead is New (If): checks a condition and branches into true / false
- Add New Lead to Sheets (Google Sheets): append
- Update Lead in Sheets (Google Sheets): append or update
- Notify New Lead in Slack (Slack): uses Slack
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (6)
- Webhook
n8n-nodes-base.webhook - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Respond to Webhook
n8n-nodes-base.respondToWebhook - Google Sheets
n8n-nodes-base.googleSheets - Slack
n8n-nodes-base.slack
From the author
Quick overview This workflow receives website lead submissions via a webhook, normalizes and validates the fields, prevents duplicate rows by matching on email in Google Sheets, and posts a Slack alert only when a genuinely new lead is captured. How it works…