Most marketing teams spend a significant part of their week doing work that, if you described it out loud, sounds almost embarrassing: copying names from a form into a spreadsheet, Googling company sizes, trying to figure out whether this new lead is worth a 30-minute call. Choco Media went through the same routine for longer than we’d like to admit. Then we built an ai lead qualification workflow — and our lead-to-call rate went from roughly one in twelve to one in two. This post walks through exactly how we did it, the tools involved, and the prompts that make it work.
This is written for small and mid-size marketing agencies, B2B SaaS teams, and anyone who has a lead form but not yet a reliable process for deciding what to do with the people who fill it. You do not need a developer. You do need a few hours to set things up, and a willingness to let a machine do the filtering so a human can do the selling.
What you will leave with: a clear picture of the four-stage qualification workflow, the tools we use at each stage, the exact AI prompts we run on incoming leads, and the decision logic that determines whether someone gets a same-day call, a nurture sequence, or a polite decline.
Why Traditional Lead Qualification Breaks Down
The standard approach — someone fills a form, it lands in a shared inbox, the next available person looks at it when they get a minute — has two compounding problems. First, speed: research on lead response time consistently shows that the odds of converting a lead drop sharply after the first five minutes. Most teams are responding in hours, sometimes days. Second, consistency: the person who picks up the lead brings their own mood, their own implicit criteria, their own sense of what a good client looks like. The result is uneven, and the unevenness is invisible until you look at the data.
We were not an exception. Our intake form asked for a name, an email, a company name, and a message field most people left vague. Someone had to manually research each submission, make a judgment call about fit, and then decide on next steps — all before writing a single reply. The process was slow, inconsistent, and took real attention away from the work that actually moves revenue.
- Average response time was 4–6 hours during busy periods
- No documented criteria for what counted as a qualified lead
- Sales conversations happened with leads that had near-zero intent
- Good leads sometimes slipped through because someone was occupied with a lower-fit contact
The fix was not a CRM upgrade. It was a qualification layer that runs automatically between form submission and human involvement.
The Four-Stage Qualification Workflow
Our current process has four stages. Each one is partially or fully automated. A human only enters the workflow at stage four — and by then, they are talking to someone we are genuinely interested in working with.
Stage 1: Enrichment
The moment a lead submits the form, an automation fires that enriches the contact record. We use Clay for this (the Growth plan covers our volume at roughly €149/month). Clay pulls from Clearbit, LinkedIn, and Crunchbase to append: company size, industry, revenue range, tech stack, and LinkedIn profile URL. The whole pull takes under 60 seconds and requires no human input.
For smaller budgets, you can do a version of this with Apollo.io’s free tier and a bit of Zapier glue — it is slower but functional. The important thing is getting some structured company data before the scoring step runs, because a vague message from a Director of Marketing at a 150-person SaaS company scores very differently than the same message from someone whose company does not appear anywhere online.
Stage 2: AI Scoring
The enriched record goes to a GPT-4o scoring prompt via an n8n webhook. The prompt evaluates the lead against our ideal customer profile and outputs a structured score in JSON: fit_score (1–10), confidence (high/medium/low), primary_reason, and disqualifying_flags. Here is a simplified version of the scoring prompt we use:
“You are a senior account manager at a small AI-first marketing agency in Northern Europe. Your ideal client is a B2B SaaS company or professional services firm with 10–200 employees, a marketing budget of at least €5,000/month, and a need for content, paid media, or growth strategy. Given the following lead record, score this lead from 1 to 10 for fit. A 7 or above is worth a same-day call. A 4–6 goes to a nurture sequence. Below 4, send a polite no. Output only valid JSON with keys: fit_score, confidence, primary_reason, disqualifying_flags.”
The prompt is version-controlled in a Notion doc. We update it roughly once a quarter as we learn what signals predict good clients and what signals predict wasted calls. The most important update we made was adding a section instructing the model to weight the tone and specificity of the free-text message heavily — a vague “interested in your services” scores lower than “we have three product lines and need separate content strategies for each.”
Stage 3: Routing
The JSON output from the scoring step drives a routing branch in n8n:
- Score 7–10: A Slack notification fires immediately to the person responsible for sales. The HubSpot contact is created and tagged “Hot.” A personalised first email is drafted by a second AI prompt but held for five minutes before sending — enough time for a human to override if something looks off.
- Score 4–6: The contact goes into a five-email nurture sequence in MailerLite. The first email lands within 30 minutes. The sequence runs over 14 days and links to relevant posts covering topics they likely care about.
- Score 1–3: A short, warm email goes out acknowledging the inquiry, explaining we may not be the right fit right now, and pointing them toward resources that might help. No follow-up sequence. Relationship preserved, time saved.
Stage 4: Human Conversation
At this point, a human enters — but only for the 7+ leads. They have the full enrichment record, the AI score with reasoning, and a draft first email waiting for review. The conversation that follows is warmer, more specific, and dramatically shorter than our old process — because both sides already have a reasonable sense of whether there is a potential fit.
The Enrichment Stack We Actually Use
We have tested several combinations. Here is where we landed and why:
- Clay (primary enrichment) — best data breadth, most flexible waterfall logic. Worth the cost if you are processing more than 50 leads a month. Pricing starts at roughly €149/month for the Growth tier.
- Apollo.io (backup / budget option) — solid for company data, weaker on personal LinkedIn signals. Their free tier handles light volume. A reasonable starting point before committing to Clay.
- n8n (workflow orchestration) — self-hostable, strong HTTP request support, good error handling. We run it on a €10/month VPS. The alternative is Make (formerly Integromat), which is friendlier to set up but more expensive at scale.
- GPT-4o via OpenAI API (scoring engine) — roughly €0.004 per lead scored at our volume. Monthly API cost is under €20 for most teams.
- HubSpot Free (CRM) — adequate for tracking at our scale. Contact lifecycle stages and deal pipeline are the features we actually use. Upgrade only if you need sequences or call recording built in.
- MailerLite (nurture sequences) — good enough for transactional and nurture email at reasonable cost. Integrates cleanly with n8n via webhook or native connector.
Total additional tooling cost: roughly €170–200/month depending on lead volume. Two recovered wasted sales calls per month covers it — which happened in the first week.
The Prompts That Drive the System
There are three distinct AI prompts running in our workflow. Each one does a specific job, and the specificity of each prompt is what separates this from generic automation.
Prompt 1: Fit Score
Described above. The key design principle is specificity — the prompt names our actual ICP, our geography, our minimum budget signal. Generic prompts produce generic outputs. We spent about three hours refining this prompt against 40 real historical leads before we trusted it in production. We tested it blind: gave it leads we already knew the outcome of and checked whether the score matched reality. It took three rounds of refinement to reach accuracy we were comfortable with.
Prompt 2: Draft First Email
This prompt runs only for 7+ leads. It takes the enrichment record and the lead’s message and produces a personalised first reply. The goal is not a polished template — it is something that references a specific detail from their company or message and makes a specific connection to how we work. We then spend two or three minutes editing before it sends. In client work we have found that AI-drafted emails lightly edited by a human consistently outperform both fully manual and fully automated emails on reply rate.
Prompt 3: CRM Note Summariser
After the first call, we paste rough notes into a prompt that produces a structured CRM entry: company context, stated problem, budget signal, timeline, next step, and objections raised. This saves roughly 15 minutes per call on admin. It is a small thing, but it is the one that the people actually running sales calls love the most — because the post-call admin nearly disappears.
What We Got Wrong the First Time
The first version of this system had two significant problems that took a few weeks to catch.
First, we over-relied on company size as a primary signal. Small companies kept scoring low even when the message they wrote was clearly from someone ready to buy. An independent consultant with a €20k/month media budget was scoring 3 because our prompt weighted headcount too heavily. We adjusted the prompt to treat intent signals from the message text as the primary input, with firmographic data as supporting context — and accuracy improved noticeably.
Second, we did not have a feedback loop. Leads were being scored, routed, and contacted, but we were not recording whether the AI’s score had been right. We added a simple HubSpot property — “AI score” alongside “Actual outcome” — and after 90 days, we had enough data to identify where the model was consistently wrong. Three scoring criteria were adjusted as a result.
- Build a feedback loop from day one — even a spreadsheet works
- Review the AI’s reasoning field, not just its score, especially for borderline cases
- Weight intent signals from free-text message fields more than firmographic data alone
- Keep a five-minute human override window before automated emails send
- Review the disqualifying_flags output regularly — it surfaces assumptions baked into your prompt that you may not have noticed
Applying This to Your Team
If you are starting from zero, the simplest version of this workflow you can build in a day uses three tools: a Typeform with Zapier, a GPT-4o API call, and a Google Sheet. The Sheet becomes your scored lead log. You lose automatic routing and enrichment, but you gain the scoring layer immediately — and scoring alone changes how you prioritise your response time within the first week.
Once that is working, add enrichment (Apollo free tier first), then routing logic, then the draft email prompt. Build in stages. Each stage delivers measurable value on its own.
For teams already using HubSpot or Salesforce, n8n has native integrations for both. Setup time drops significantly if your CRM is already configured with the right contact properties. If you are on a tighter budget, Make (formerly Integromat) covers the same workflow logic with a lower monthly starting cost but caps on operations per month that you will hit faster than you expect.
This kind of system sits squarely in the space our AI automation service covers — identifying the workflows where automation delivers the clearest return and building them in a way that is maintainable rather than fragile. Lead qualification tends to rank near the top of that list because the impact is measurable within weeks, not quarters.
The Numbers, Honestly
We are careful about publishing performance figures because context matters enormously — our lead volume, our ICP, our price points, and our sales process are specific to us. What we can say with confidence from our own data:
- Lead-to-qualified-call rate improved from approximately 8% to 48% over 90 days of running the system
- Average response time to hot leads dropped from 4.5 hours to under 8 minutes
- Time spent on lead admin per week dropped from roughly 5 hours to under 45 minutes
- The AI scoring model disagreed with human judgment in approximately 11% of cases — in most of those, on reflection, the AI was right
The last point tends to surprise people. We expected to override the model regularly. We do not. When we do override it, we investigate the reasoning — and that investigation usually results in a prompt update rather than a conclusion that the model was simply wrong.
Where AI Stops and Judgment Starts
There is a version of this workflow where AI handles everything — scoring, routing, sending, even booking the call automatically. We have not built that version, and we would not recommend it for most agencies at this stage. The call itself is a human conversation. The relationship starts there. An AI can identify who is worth calling; it cannot build trust in 30 minutes.
The job of the qualification layer is to protect that conversation — to make sure the human sitting across from a prospect is there because there is a genuine reason to be, not because they happened to be next in the inbox. That is the constraint we design around: get the right people to the call faster, so the call itself can be better.
If you want to understand how AI automation fits into your marketing operations more broadly — from lead handling to content production to reporting — our AI automation service page covers the full picture. And if you would like to talk through whether this kind of setup makes sense for your team specifically, the best place to start is a conversation with us.