60-Second Lead Reply Playbook
Website, LinkedIn, and WhatsApp leads read, scored, and answered in under a minute, with the unclear ones routed to a human.
Just want the file? Grab it here ↓Founder, OperateAI
- first reply, down from 3.5 hours
- < 60 sec first reply, down from 3.5 hours
- of leads need no human touch
- 80% of leads need no human touch
- intent read correctly
- 92% intent read correctly
Numbers are from the live build, measured across 40 to 50 inbound leads a day.
The problem
Most teams do not have a follow-up problem. They have a gap problem. Between the moment a lead arrives and the moment someone replies, there is a queue. That queue grows when the team is busy, which is exactly when the good leads are landing. Response time ends up tracking how loaded your team is, not how hot the lead is.
In this build, the gap averaged 3.5 hours and stretched to 6 or 7 on heavy days. Every lead was researched by hand on LinkedIn and the company website before anyone typed a word. Roughly 5 minutes of human work per lead, across 40 to 50 leads a day.
The fix is not a faster human. It is taking the human off the path for the leads the system can read confidently, and keeping them on the ones it cannot.
How it works
One webhook for all three channels
Website forms, LinkedIn, and WhatsApp all POST to a single n8n endpoint. One entry point instead of three trigger nodes keeps the scoring and reply logic in one place. Website forms and the WhatsApp Cloud API fire natively. LinkedIn has no webhook, so its messages reach the endpoint through a forwarder: a browser extension, an automation bridge, or an email rule on LinkedIn notification emails.
Normalize three shapes into one record
A code node flattens all three payloads into a single contract, so nothing downstream ever has to ask where a lead came from. Phone numbers get stripped to digits and a plus sign, because WhatsApp rejects anything else. Free email domains like gmail.com get blanked out rather than stored, which turns the company domain into a clean signal: present means a real business, empty means a personal address.
The AI extracts facts, nothing more
An Information Extractor node pulls six fields at temperature 0: job title, company, what they actually want, any timing signal, whether budget came up, and a one-line summary. Every field has an explicit escape hatch, and the system prompt tells the model to return empty rather than guess. That one instruction does most of the work. A model told to fill every field will fill every field, and it will invent a job title out of nothing.
The code decides the tier, not the model
Scoring runs in plain JavaScript, 0 to 10. Seniority is worth 3, because a founder or director can say yes without asking anyone. A business email domain is worth 2. Intent keywords are capped at 4, so one message stuffed with the word pricing cannot dominate. Stated timing is worth 2, a mentioned budget 2, and a website form 1 over a DM, because filling a form takes deliberate effort. The keyword list includes Hinglish words like kitna and kab, which is the step most people skip and then wonder why Indian leads score low. Keeping this out of the model means the tier is explainable line by line, it does not drift between runs, and fixing a bad score is one number in one place.
A completeness check catches what the AI could not read
Before anything gets sent, three conditions have to pass: a usable way to reply, a name to use, and enough message to understand. Fail any one and the lead lands in a Manual Review tab with a reason field explaining exactly why. Early attempts at parsing LinkedIn and WhatsApp messages hit around 60% accuracy, and the instinct was to fix the prompt. The right move was to ask for less. Roughly 80% of leads now run with zero human touch, and on that 80% the system reads intent correctly more than 92% of the time. If the AI node times out or returns broken JSON it continues instead of stopping, so an AI failure turns into a human task, never a bad automated reply.
Draft and send on the lead's own channel
Hot leads only. Warm and cold go to a nurture list. A second model call writes the first reply in under 90 words: open on their actual message, one concrete sentence on how this problem usually gets solved, then ask for a 15-minute call. The calendar link is appended in code after the model finishes, because a model cannot mangle a URL it never touches. WhatsApp leads get a WhatsApp reply, everyone else gets email. The Slack alert to sales fires after the reply has already gone out, so the team sees the lead and the reply together with nothing left to do except take the call.
Built with
Get the workflow
You have seen the whole build. Now run it yourself.
- The full 16-node workflow, import-ready, with sticky notes on the canvas
- Both prompts: the extraction schema and the reply writer
- The scoring code, with thresholds and the keyword list
- The Google Sheet header row for all three tabs
- Setup notes, the placeholder list, and four test payloads
Bring your own model API key, plus Google Sheets, Gmail, WhatsApp Cloud API, and Slack credentials. LinkedIn needs a forwarder to POST into the webhook, since it has no native one. Works on n8n cloud or self-hosted.
