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.
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.
Before touching n8n, we spent an hour defining what a "good" lead looked like. Five signals, each worth a different number of points:
| signal | criteria | pts |
|---|---|---|
| company size | 50+ employees | +30 |
| budget stated | $1k+/month | +25 |
| use case fit | core product use case | +20 |
| timeline | ready within 30 days | +15 |
| decision maker | self-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.
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.
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.
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.