← blog
workflow
2026-03-30 6 min read

How We Built a Lead Qualification Bot in a Weekend

A Typeform webhook, 90 minutes of n8n work, and a scoring formula. By Monday morning, every new lead was automatically graded, routed, and sitting in the CRM — without a human touching it.

The Problem With Manual Lead Triage

A SaaS founder was spending two hours every morning reviewing intake form submissions. The form data was all there — company size, budget range, use case — but someone had to read it, make a judgement, and route it. The information for a decision already existed. The decision itself didn't need a human.

The Scoring Model

Before touching n8n, we spent an hour defining what a "good" lead looked like. Five signals, each worth a different number of points:

signalcriteriapts
company size50+ employees+30
budget stated$1k+/month+25
use case fitcore product use case+20
timelineready within 30 days+15
decision makerself-identified as buyer+10

Score ≥ 70 = Hot. 40–69 = Warm. Below 40 = Nurture. Weights stored in a Sheets config tab — no developer needed to adjust them.

The Workflow

n8n workflow — lead qualification bot
Typeform / Tallywebhook trigger
n8n JS Nodescore formula
Switch Nodehot / warm / nurture
SlackDM or channel notify
HubSpotcreate / update contact
Google Sheetslog score + timestamp
trigger: form submit → lead scored, routed, and in CRM in < 60 seconds

Plugging In the Webhook

Typeform and Tally both support native webhooks. Payload structures differ slightly — a Set node normalises the shape before the scoring logic, so the formula works identically regardless of which form tool fires it.

The scoring JavaScript is ~25 lines. Weights are read from a Google Sheets config tab. This single decision saved the most back-and-forth later — the founder tweaks weights without opening n8n.

The CRM Step

HubSpot's n8n node creates or updates a contact, sets lead score as a custom property, and applies a tag. Deduplication by email — check if contact exists, branch on new vs. update. Two lines. Most people skip this and end up with duplicate contacts.

Weekend Build Log

The Result

outcome
Lead triage time: 2 hours/day → zero
Hot leads reach founder within 60 seconds of form submission
Warm and nurture leads auto-enrolled in the right sequences
Scoring weights adjustable via Sheets — no developer needed
~44 hours/month returned to the founder

Build It Yourself?

The hardest part isn't the code — it's the scoring model. Spend an hour with whoever handles sales and nail down what signals actually predict a closed deal. Once you have that, the n8n build is straightforward.

If you'd rather skip the weekend and have it live on Monday, we can build it for you. Lead qualification bots are one of our most requested projects.