The average sales rep spends 21% of their day writing emails. Most of those are follow-ups that could be automated—if done intelligently.
This guide shows you how to build an AI-powered follow-up system that:
- Qualifies leads automatically
- Personalizes responses based on context
- Escalates hot leads to humans
- Handles the 80% that don’t need human attention
The System Architecture
[New Lead] → [AI Qualification] → [Route by Score]
↓
┌──────────────────────┼──────────────────────┐
↓ ↓ ↓
[High Score] [Medium Score] [Low Score]
↓ ↓ ↓
[Slack Alert + [Personalized [Generic
Calendar Invite] Email Sequence] Resources]
Prerequisites
- n8n instance (cloud or self-hosted)
- Anthropic API key (for Claude)
- Email service (Gmail, SMTP, or email platform)
- CRM or database for leads (optional)
Step 1: Capture Incoming Leads
Start with a webhook to receive lead data:
{
"name": "Sarah Chen",
"email": "sarah@techstartup.io",
"company": "TechStartup Inc",
"message": "We're looking to automate our customer onboarding. Currently takes 2 hours per customer and we're scaling to 100+ customers/month. Need a solution ASAP.",
"source": "contact_form"
}
n8n Webhook Node Settings
- HTTP Method: POST
- Path:
/lead-intake - Response Mode: When Last Node Finishes
Step 2: AI Lead Qualification
This is where Claude analyzes the lead and assigns a score.
Anthropic Node Configuration
System Prompt:
You are a lead qualification assistant. Analyze incoming leads and return a JSON response with:
- score (0-100): likelihood of becoming a paying customer
- priority (high/medium/low): urgency level
- reasoning: brief explanation of the score
- suggested_response_tone: formal/casual/technical
- key_points: array of important details to address
Consider:
- Budget signals (mentioning scale, urgency, specific numbers)
- Company size indicators
- Problem clarity (do they know what they need?)
- Timeline urgency
- Fit with automation services
User Message:
Qualify this lead:
Name: {{ $json.name }}
Company: {{ $json.company }}
Message: {{ $json.message }}
Source: {{ $json.source }}
Response Format: JSON
Sample AI Response
{
"score": 85,
"priority": "high",
"reasoning": "Clear problem statement with quantified pain (2 hrs/customer), scaling urgency (100+/month), and explicit timeline need ('ASAP'). Strong buying signals.",
"suggested_response_tone": "professional but warm",
"key_points": [
"acknowledge the onboarding pain point",
"mention experience with customer onboarding automation",
"offer specific time savings estimate",
"suggest a quick call given urgency"
]
}
Step 3: Route by Score
Use an IF node to branch based on score:
Branch 1: score >= 70 (High Priority)
Branch 2: score >= 40 AND score < 70 (Medium)
Branch 3: score < 40 (Low Priority)
Step 4: High-Priority Path
For hot leads, we want immediate human involvement plus a personalized touch.
4a: Send Slack Alert
🔥 *High-Value Lead Alert*
*Name:* {{ $json.name }}
*Company:* {{ $json.company }}
*Score:* {{ $('AI Qualification').item.json.score }}/100
*Why they're hot:*
{{ $('AI Qualification').item.json.reasoning }}
*Key points to address:*
{{ $('AI Qualification').item.json.key_points.join('\n• ') }}
<{{ $json.email }}|Send Email> | <calendar_link|Book Call>
4b: Generate Personalized Email Draft
Another Claude call, but for email generation:
System Prompt:
You are writing a follow-up email for an automation consultant. Write warm, helpful emails that:
- Acknowledge their specific situation
- Show relevant experience
- Propose a clear next step
- Keep it under 150 words
- Sound human, not templated
User Message:
Write a follow-up email for:
Name: {{ $json.name }}
Company: {{ $json.company }}
Their message: {{ $json.message }}
Tone: {{ $('AI Qualification').item.json.suggested_response_tone }}
Key points to address: {{ $('AI Qualification').item.json.key_points.join(', ') }}
4c: Save Draft for Review
Don’t auto-send high-value leads. Save as draft for human review:
// Gmail: Create Draft
{
"to": $json.email,
"subject": "Re: Automating your customer onboarding",
"body": $('Generate Email').item.json.email_content
}
Step 5: Medium-Priority Path
These leads get automated sequences with personalization.
5a: Add to Email Sequence
If you use a platform like ConvertKit, Customer.io, or your own system:
// Add to automated sequence
{
"email": $json.email,
"sequence_id": "lead_nurture_medium",
"custom_fields": {
"first_name": $json.name.split(' ')[0],
"company": $json.company,
"pain_point": $('AI Qualification').item.json.key_points[0]
}
}
5b: Personalized First Email
Send immediately with AI personalization:
Subject: Quick question about {{ $json.company }}
Hi {{ $json.name.split(' ')[0] }},
Thanks for reaching out about {{ $('AI Qualification').item.json.key_points[0] }}.
I work with companies like yours to automate workflows and eliminate manual work. Based on what you shared, there might be a few quick wins we could explore.
Would a 15-minute call this week be helpful? I can share some relevant examples.
Best,
[Your name]
Step 6: Low-Priority Path
Automated but still helpful:
Subject: Resources for your automation journey
Hi {{ $json.name.split(' ')[0] }},
Thanks for your interest in automation.
Here are some resources that might help:
• [Guide to Getting Started with Automation]
• [ROI Calculator for Automation Projects]
• [Common Automation Mistakes to Avoid]
If your needs become more urgent, just reply to this email.
Best,
[Your name]
Step 7: Log Everything
Every lead should be logged for analysis:
// Google Sheets or Database
{
"timestamp": $now.toISO(),
"name": $json.name,
"email": $json.email,
"company": $json.company,
"score": $('AI Qualification').item.json.score,
"priority": $('AI Qualification').item.json.priority,
"path_taken": "high_priority",
"response_status": "draft_created"
}
Complete Workflow JSON
Here’s the exportable n8n workflow. Import this directly:
{
"name": "AI Lead Follow-Up System",
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"httpMethod": "POST",
"path": "lead-intake",
"responseMode": "onReceived"
}
},
{
"name": "AI Qualification",
"type": "@n8n/n8n-nodes-langchain.anthropicChat",
"parameters": {
"model": "claude-3-5-sonnet-20241022",
"systemMessage": "[System prompt from above]",
"messages": "[User message from above]"
}
}
]
}
Full workflow available in my n8n templates repository.
Measuring Success
Track these metrics weekly:
| Metric | Target |
|---|---|
| Lead response time | < 5 min (automated) |
| High-priority accuracy | > 80% become calls |
| Email open rate | > 40% |
| Time saved per lead | 15-20 min |
Common Issues & Fixes
AI Scoring Too High/Low
Adjust the system prompt with examples:
Example high score (85+): "We need to automate ASAP, budget approved"
Example low score (<30): "Just exploring options for someday"
Emails Sound Robotic
Add more context to the generation prompt. Include:
- Your typical writing style examples
- Specific phrases you use
- Topics to avoid
Too Many Slack Alerts
Raise the high-priority threshold or add cooldown logic.
Want this workflow customized for your business? Book a free consultation.