The Problem
A B2B SaaS company in the US — a project management tool serving operations teams at mid-market companies — was generating 180–220 inbound leads per month through their website and content marketing.
The leads were good. The response wasn't.
Their sales team of four was handling leads manually: reading form submissions, sending initial emails, following up over several days, and booking demo calls when prospects responded. Average time from form submission to first meaningful contact was 4.2 hours. After 5 PM and on weekends, that stretched to the next morning.
They knew this was hurting them. They had data showing that leads contacted within five minutes of submitting a form converted to demos at 21% — but their actual conversion rate was 8.3%. The gap between those two numbers was roughly 25 demos a month they weren't booking. That's not a marketing problem; that's a response-time problem.
They came to us with a clear goal: get every lead a real response within two minutes, qualify them automatically, and book demo calls without the sales team having to manage the scheduling.
What We Built
A three-stage lead qualification and booking agent integrated with their HubSpot CRM, their website form, and their Calendly account.
Stage 1 — Instant response (within 60 seconds of form submission)
The moment a form is submitted, HubSpot fires a webhook to our agent. The agent reads the submission data — name, company, role, how they heard about the product, and their primary use case description — and sends a personalised email within 60 seconds.
The email is not generic. It references what they said on the form. If they mentioned "project tracking for distributed teams," the email addresses that specifically. If they came from a specific blog post, the email acknowledges the context.
The email closes with a single, low-friction question: "To make sure I connect you with the right person and prepare for a useful conversation — what's the biggest challenge you're currently facing with project visibility?"
Stage 2 — Qualification conversation (over email, 1–3 exchanges)
When the prospect replies, the agent reads their response and assesses it against qualification criteria the sales team defined:
- Company size (they focus on 50–500 employee companies)
- Current tool (replacing spreadsheets or a specific competitor)
- Timeline (actively evaluating vs exploring)
- Decision-making role (economic buyer, champion, or end user)
Based on the response, the agent asks one or two follow-up questions if needed to complete the picture. If the prospect is clearly a fit, it moves to Stage 3. If they're clearly not (solo freelancer, too small, wrong industry), it sends a helpful response explaining why the product might not be right for them and suggests alternatives.
This honest disqualification was something the sales team specifically asked for — they'd been spending calls on leads that were never going to convert.
Stage 3 — Demo booking
For qualified prospects, the agent sends a Calendly link embedded in a warm, personalised message. It explains what the demo will cover, confirms it will be with a human sales rep (not another bot), and sets expectations for the 30-minute call.
When the demo is booked:
- HubSpot contact is updated with qualification data
- A deal is created at the "Demo Booked" stage
- The assigned sales rep receives a Slack notification with a summary of the conversation and the prospect's key information
- The prospect receives a confirmation email with prep materials
The rep walks into every demo already knowing who they're talking to, why they're interested, and what their current pain is.
The Technical Architecture
The agent runs on our infrastructure as a Node.js service. The components:
Trigger: HubSpot webhook on new contact creation, filtered to the website form source.
Email sending and reading: We used the prospect's email for the qualification conversation, reading replies via a dedicated inbox with IMAP access. Each prospect's conversation is tracked by email thread ID and stored with their HubSpot contact.
LLM: GPT-4o-mini for the response generation — fast, cheap, and accurate enough for this structured task. We use GPT-4o for the qualification assessment step where judgment matters more.
Qualification logic: The agent uses a structured prompt that assesses the conversation against the defined criteria and outputs a JSON object with qualification scores and recommended next action.
CRM writes: HubSpot API to update contact properties, create deals, log activities, and update deal stages.
Calendar integration: Calendly API to retrieve available slots and generate personalised booking links.
Monitoring: Every conversation is logged. We review a sample of 20–30 conversations weekly, checking for qualification errors, off-brand responses, and edge cases. The client has access to a simple dashboard showing response times, qualification rates, and demo booking rates.
The Results (90 Days)
We launched in week 6 of the project. By day 90 of live operation:
| Metric | Before | After | Change |
|---|---|---|---|
| Average first response time | 4.2 hours | 47 seconds | -99% |
| After-hours leads contacted | 23% | 100% | +77pp |
| Lead to demo conversion | 8.3% | 16.1% | +94% |
| Demos booked per month | 15–18 | 28–34 | +88% |
| Sales team time on lead admin | ~14 hrs/week | ~3 hrs/week | -79% |
| Disqualified early (time saved) | ~5/month | ~22/month | +340% |
The demo booking rate improvement was the headline number — close to double the demos from the same lead volume. The disqualification improvement was quietly valuable too: the sales team was spending much less time on calls that were never going anywhere.
The sales team's feedback after 90 days: "It feels like we added two SDRs but they work 24/7 and never drop a lead."
What We Learned
Personalisation matters more than we expected. We initially thought any fast response would be better than a slow one. The data showed that fast and personalised meaningfully outperformed fast and generic. The conversion rate from personalised first messages was 2.3x the conversion rate from template messages, even when the templates were sent within the same time window. Generic-but-instant isn't the win you'd think.
Honest disqualification built trust. The client was nervous about the agent telling prospects it might not be a fit. In practice, prospects who were told the product wasn't right for them sent positive replies, and a few asked for referrals. Honest disqualification turned out to be a brand-building activity, not just lead cleaning.
The handoff matters as much as the qualification. We spent serious time designing the handoff from agent to rep. The deal summary the rep receives before the demo, the tone of the booking confirmation email, the prep materials sent to the prospect — all of those affect the quality of the demo call itself. The agent's job isn't just to book the meeting; it's to set the meeting up for success.
Monitoring is not optional — and we'd skip it at our peril. In the first three weeks live, the agent had two categories of failure: very short one-word replies ("yes" / "no" to qualification questions without context), and prospects who replied in a language other than English. Both were caught in the weekly review and fixed with prompt adjustments. Without that review cadence, they would have quietly degraded performance for months and nobody would have known.
A fair caveat: this only works because the sales team showed up to define the qualification criteria honestly and review the conversations weekly in the early period. Without that engagement, we'd have built a faster version of the same problem.
The Cost and Payback
Build cost: $11,500 (6-week project — discovery, build, three integrations, testing, launch)
Monthly running cost: $180 (hosting, LLM API, monitoring)
Monthly maintenance retainer: $800 (weekly conversation review, prompt tuning, HubSpot field updates as their sales process evolves)
Total first-year cost: $11,500 + (12 × $980) = $23,260
Value generated: 16 additional demos per month at their historical close rate and ACV — significant incremental ARR from the first quarter.
Full payback in month 2.
Could This Work for Your Business?
The pattern we built — instant response, structured qualification, automated booking — is repeatable across B2B SaaS, professional services, and any business where inbound leads go through a qualification step before a call or meeting.
The specific integrations, qualification criteria, and conversation design change every time. The architecture and the kind of results it produces are consistent. Where it tends not to work as well: very long, multi-stakeholder sales cycles where the first reply isn't really the bottleneck.
Talk to us about your lead flow — if you're losing leads to slow response times, we'll show you what this would look like for your specific setup.