Every inbound lead gets triaged the moment it arrives — no SDR touches a cold one. A webhook receives the lead, Claude scores it 0–100 against a fit & intent rubric, and the result is archived and returned immediately.
Claude scores every lead 0–100 on three things: seniority/title, how well the company fits the ideal customer profile, and how much urgency the message itself signals. The tier is just a strict cutoff on that score.
One straight path from intake to scoring, then a two-way fork on the result. Both forks land in the same archive and response.
mocked-demo-data in its own output.leads_scored Data Table.The people and companies below are made-up test data, not real leads. The scores, reasoning, and drafted messages are genuine, unscripted output — each one is what Claude actually produced from running that message through the live workflow.
The same AI call that scores the lead also drafts what happens next, matched to the tier: a hot lead gets an internal Slack/email alert telling sales to move now; a warm or cold lead instead gets an outbound email drafted directly to them, with the tone scaled down as urgency drops. Nothing goes out without a message attached — even the "tell me more" and class-project inquiries above got a real drafted reply.
leads_scored? It's a Data Table — a lightweight database built directly into this n8n workspace, not a separate external system. It lives inside this n8n project, viewable in n8n's own Data Tables screen and reachable by any other workflow in the same project. It isn't exposed to the public internet on its own — the only way anything outside n8n sees this data is through what a workflow deliberately sends back out, like the drafted messages above.
| lead_name | company_domain | score | tier | notified | reasoning |
|---|---|---|---|---|---|
| Marcus Cole | ironframe-inc.com | 97 | hot | true | CTO, hard compliance deadline, explicit readiness to sign, same-day call request. |
| Jamie Rivera | acme-startup.io | 74 | hot | true | VP-level title, explicit enterprise pricing request, defined seat count and timeline. |
| Priya Nair | brightloop-corp.com | 60 | warm | false | Good company fit, but mid-level title and explicitly low urgency. |
| Sarah Kim | nimbus-analytics.com | 56 | warm | false | Good fit, PM title lacks authority, early-stage low-urgency exploration. |
| info | quickmail.io | 22 | cold | false | Generic inbox alias, no seniority signal, near-zero-intent message. |
| Alex Student | gmail.com | 4 | cold | false | Personal email, no company affiliation, low-intent academic message. |
Nothing here runs on a manual trigger in production. A real lead has to enter this pipeline the moment it exists, and the result has to land somewhere a person actually sees it — usually a CRM.
Salesforce (Einstein) and HubSpot (predictive scoring) both ship native lead scoring, and at a company that already has one configured well, this workflow isn't a replacement for it.
Where a custom pipeline like this earns its place: native scoring is often a paid add-on gated behind a higher pricing tier, it needs a real volume of historical conversion data before it's trustworthy, it returns a bare number with no explanation of why, and none of the mainstream options draft the actual follow-up message. This build is the shape you reach for when native scoring isn't available at your tier, doesn't exist for your CRM, or needs rubric logic and messaging specific to your business that an off-the-shelf model can't give you.