← field notes
case study

How We Built a Lead Qualification Bot That Books Calls Automatically

Mar 29, 2026 5 min read

A B2B agency was jumping on discovery calls with whoever filled out their contact form — qualified or not. We built a bot that asks the right questions first, scores the lead, and only books a Calendly call if it's worth anyone's time.

The problem

Marko runs a B2B agency offering done-for-you marketing services. His website contact form was working — leads were coming in. The problem was what happened next.

Every form submission triggered a manual 30-minute discovery call. No pre-screening, no filters. A solo founder with a $500 budget got the same slot as a funded startup ready to spend $5k/month. Marko was burning 6–8 hours a week on calls that went nowhere.

He'd tried adding a budget field to the form. People either skipped it or lied. What he needed wasn't a better form — he needed a conversation that felt human enough to get honest answers, but automated enough to run without him.

What we built

We built a qualification bot using n8n and the Telegram Bot API, triggered the moment a lead submits the contact form. Here's the full flow:

lead qualification automation — B2B agency
📋
Contact Form
Lead submits
──▶
n8n Webhook
Trigger
──▶
🤖
Telegram Bot
Qualifies lead
──▶
🎯
Lead Scorer
Score answers
IF qualified →Calendly link sent. Slack alert to Marko.
ELSE →Nurture email sequence. No call booked.
↳ Only qualified leads reach Marko's calendar. Everyone else enters a nurture sequence automatically.

The bot sends a short Telegram message to the lead within 60 seconds of form submission — while their interest is still hot. It asks four questions: company size, current monthly marketing spend, main challenge, and timeline to start. Conversational, not interrogative.

Each answer feeds a simple scoring model. Leads above the threshold get a Calendly link and a warm message. Leads below the threshold get a polished "not quite yet" email that keeps the door open without wasting Marko's time. Marko gets a Slack ping either way — a brief summary of the lead and their score.

The build

The stack was deliberately simple: n8n as the workflow engine, the Telegram Bot API for the conversation layer, and the Calendly API to generate one-time booking links on the fly. No custom backend, no database — everything routes through n8n's built-in data handling.

We self-hosted n8n on a $6/month VPS. Marko owns the full workflow and can adjust the scoring thresholds himself — we documented it clearly enough that he doesn't need us for tuning.

The qualifying questions were the part that took the most thought. We went through three iterations before landing on four questions that felt natural to answer and gave enough signal to score reliably. The tech was the easy part.

Total build time: 2.5 days. Day 1: webhook → Telegram flow + question sequence. Day 2: scoring logic, Calendly integration, Slack notifications. Half of day 3: testing with real form submissions and refining edge cases.

The result

after 4 weeks
5+ hours of unqualified discovery calls eliminated every week
Close rate on booked calls jumped from 22% to 41% — only real fits getting through
Lead response time dropped from 4–6 hours to under 60 seconds
Marko's first message: "I had my first zero-call Monday in two years"

The unqualified leads don't disappear — they go into a nurture sequence that re-engages them when their situation changes. Two leads who scored below threshold in week one became paying clients six weeks later.

The project was $490. Marko was spending roughly that in billable hours every week on dead-end calls. Week one paid for it.

Wasting time on leads that never convert? We can fix the filter.

[ let's talk ]

home work pricing blog about