Lead Capture Kitfor n8n
Get the kit

Reference

Customize

Almost everything is a Config field. The rest are small, well-marked edits.

#Common changes

You want to Change this
Use your own Sheet or tab names sheet_id, leads_tab, error_tab
Use another country default_country_code (63 PH, 65 SG, 60 MY, 84 VN, 62 ID, 1 US) and timezone (Asia/Manila, Asia/Singapore, …)
Switch alert channels alert_telegram, alert_slack, alert_discord, in any combination
Stop alerts for repeat leads alert_on_duplicate = false
Thank repeat leads too ack_on_duplicate = true
Turn off the thank-you email send_ack = false
Change the email wording ack_subject ([business] is replaced), ack_response_time, ack_signature, ack_from_name. The HTML layout is in Build Response & Alerts.
Only match repeats by email dedupe_by_phone = false
Keep more sales stages on repeat keep_status_on_duplicate (comma list)
Make spam rules stricter or looser spam_keywords, blocked_email_domains, max_links_in_message, min_fill_seconds, honeypot_field
Accept an unusual field name Add it to the pick(...) lists at the top of Normalize & Validate
Change the website or form address Webhook node Path (lead-capture). Demo Form: Demo Lead Form → Options → Form Path (lead-capture-demo).
Change the hosted form text Demo Lead Form for the title and fields; Thank-You Page and Error Page for the endings
Add a Reply-To address Gmail node → Options → Reply To

#Add a CRM

Add HubSpot, Notion, Airtable or Pipedrive after Build Response & Alerts. All lead data is available as:

Text
{{ $('Dedupe Check').first().json }}

For example {{ $('Dedupe Check').first().json.email }} or .lead_id.

#Add WhatsApp, Viber, Messenger or SMS

Add an output to Route Alerts and connect an HTTP Request node (or the WhatsApp Business Cloud node). The Discord alert already works this way, so copy its pattern, including the error output to Log Notification Failure.

#Send leads from another workflow

Any workflow can hand leads to this one, for example a Facebook Lead Ads trigger or a Typeform webhook:

  1. Add an Execute Workflow node: source Database, workflow Lead Capture → Sheet + Alerts, Wait For Sub-Workflow Completion on.
  2. Pass items with name, email, phone, message and so on. Any field alias works.
  3. Add a source field, such as facebook-lead-ads, so the Sheet shows where it came from.

The lead arrives with trigger = subworkflow, skips the website reply, and gets the same cleaning, dedupe, email and alerts.

#Run several clients on one n8n

Duplicate the three workflows per client. In each copy, change the webhook Path (for example lead-capture-santos-dental), the form path, and the Config values. Each client can use their own Google credential and Sheet.

#Keep spam for review

Spam is dropped by default. To review it, add a Google Sheets Append node on the false output of Valid Lead?, writing to a Spam tab.

Lead Capture Kit for n8n: website enquiries saved to Google Sheets, de-duplicated, thanked and sent to your team chat.

Checked against n8n 2.47.3. n8n, Google Sheets, Gmail, Telegram, Slack and Discord are trademarks of their owners; this kit is not affiliated with them. Sample data is fictional.