Capture leads from any source, deduplicate by email, score by intent, track in Google Sheets, and notify your team — all automatically via n8n workflows.
Leads come from multiple sources (website forms, newsletters, strategy calls, product waitlists). Manually entering them into a CRM and following up is error-prone and slow. Hot leads go cold.
This pipeline captures, deduplicates, scores, and routes leads in real-time.
appendOrUpdate)> Note: This pipeline does not include third-party enrichment integrations (e.g., Clearbit, FullContact). To add enrichment, insert an HTTP Request node between the webhook and the Sheets node in the workflow, calling your preferred enrichment API.
| # | File | Purpose |
|---|---|---|
| --- | ------ | --------- |
| 1 | lead-tracker.json | Webhook → deduplicate → store in Sheets → notify owner |
| 2 | lead-magnet.json | Lead magnet download → store lead → send PDF attachment email |
| 3 | newsletter.json | Newsletter signup → store subscriber → send welcome email |
Lead Source (form, chatbot, API)
│
▼
Webhook Endpoint (n8n)
│
├── Validate required fields (name, email)
├── Check for duplicates (email match in Sheets)
│
├── IF new lead:
│ ├── Score lead (source type + available fields)
│ ├── Append to Google Sheets
│ └── Send notification email to team
│
└── IF existing lead:
├── Update engagement count
└── Log new touchpoint
You must create these credentials in your n8n instance before importing:
| Credential Type | Used For | Placeholder in JSON |
|---|---|---|
| ---------------- | ---------- | --------------------- |
| Google Sheets OAuth2 | Reading/writing lead data | YOUR_GOOGLE_SHEETS_CREDENTIAL_ID |
| SMTP (Gmail or custom) | Sending notification and welcome emails | YOUR_SMTP_CREDENTIAL_ID |
After importing, open each workflow and reconnect the credential nodes to your own credentials.
Replace these placeholders in the workflow JSON before deploying:
| Placeholder | Description |
|---|---|
| ------------- | ------------- |
YOUR_LEADS_SHEET_ID | Your Google Sheet ID for lead tracking |
YOUR_GOOGLE_SHEETS_CREDENTIAL_ID | Your n8n Google Sheets credential ID |
YOUR_SMTP_CREDENTIAL_ID | Your n8n SMTP credential ID |
YOUR_FROM_EMAIL | Sender email address |
YOUR_NOTIFICATION_EMAIL | Where to send lead notifications |
YOUR_NAME | Your name for email templates |
YOUR_DOMAIN | Your website domain for email links |
| Source | Webhook Path | Fields |
|---|---|---|
| -------- | ------------- | -------- |
| Newsletter signup | /webhook/newsletter | |
| Lead magnet download | /webhook/lead-magnet | name, email, company |
| Strategy call booking | /webhook/strategy-call | name, email, phone, company, message |
| Product waitlist | /webhook/product-waitlist | name, email |
| Contact form | /webhook/contact | name, email, subject, message |
| Custom | /webhook/add-lead-enriched | Any JSON payload |
| Column | Type | Description |
|---|---|---|
| -------- | ------ | ------------- |
| name | text | Full name |
| text | Email address (primary key for dedup) | |
| company | text | Company name |
| phone | text | Phone number |
| source | text | Where they came from |
| score | number | Lead score (0-100) |
| status | text | new / contacted / qualified / converted |
| created_at | date | First captured |
| updated_at | date | Last activity |
| touchpoints | number | Total interactions |
| notes | text | Additional notes |
Set up a Google Sheet with the columns above. Enable appendOrUpdate matching on email column to prevent duplicates.
Import the 3 JSON files from the workflows/ directory into n8n. Replace all YOUR_* placeholders with your actual values.
curl -X POST https://your-n8n.com/webhook/add-lead-enriched \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"email": "john@company.com",
"company": "Acme Inc",
"source": "website-contact"
}'
| Factor | Points | Example |
|---|---|---|
| -------- | -------- | --------- |
| Source: Strategy call | +40 | High intent |
| Source: Lead magnet | +25 | Medium intent |
| Source: Newsletter | +10 | Low intent |
| Has company name | +10 | B2B signal |
| Has phone number | +15 | Ready to talk |
| Repeat visitor | +10 per touchpoint | Engaged |
共 1 个版本