Voice AI for lead qualification: design the scorecard before the script

Voice AI qualifies leads well when you treat qualification as a data problem, not a script problem: define a typed scorecard, capture each answer the moment it's given, give every outcome a destination, and audit the agent's verdicts against your reps every week. Here's the playbook, and the metric most teams get wrong.

CCallaro TeamSep 28, 202610 min read
Voice AI for lead qualification: design the scorecard before the script

An AI voice agent can qualify leads as well as a consistent SDR, but only if you decide what "qualified" means before anyone writes a script. The programmes that work design three things first: a typed scorecard the agent fills in during the call, a destination for every possible outcome, and a weekly check of the agent's verdicts against a rep's. The conversation itself is the easy part.

Most failed projects run in the opposite order. Someone writes a friendly script and points it at the lead list; a month later, sales says the "AI-qualified" leads are junk, and nobody can say how many good leads the agent quietly turned away.

This playbook is the order of operations we recommend, grounded in how Callaro's orchestration engine actually captures, routes and stores qualification data. If you're new to how voice agents work, start with the complete guide to AI voice agents.

The metric most teams get wrong

Qualification rate, the share of connected calls the agent marks qualified, is the first number on every dashboard. On its own it tells you very little, because it moves with the leniency of the prompt. Loosen one instruction and the rate climbs, and sales gets more meetings it doesn't want.

What you need instead is agreement between the agent and the people who own the pipeline. Every qualification call lands in one of four boxes:

  • Agent says qualified, rep agrees. The outcome you're paying for.
  • Agent says qualified, rep disagrees. A false positive. It wastes rep time, but at least it's visible: reps complain.
  • Agent says not qualified, rep would have taken it. A false negative, or a leak. This is revenue you never see, because nobody reviews the leads that were turned away.
  • Agent says not qualified, rep agrees. Correct filtering, which is the whole reason to automate.

Two numbers fall out of this. Precision is rep-accepted leads divided by everything the agent marked qualified. Leak rate is the share of a sample of disqualified calls that a rep would have wanted. Precision tells you whether sales will trust the channel; leak rate tells you whether the agent is throwing money away.

There's no universal target, and anyone quoting one is guessing.

If leads are scarce and each deal is large, accept lower precision to keep leaks near zero and let reps make the final cut. If you're buried in low-intent form fills, push precision up and accept that some borderline leads will go to nurture instead of a rep. Either way, treat a rising qualification rate with suspicion until precision confirms it.

Step 1: write the scorecard as a typed schema

BANT (budget, authority, need, timeline) or CHAMP is a fine starting list, but a voice agent can't record "authority: sort of". Every criterion needs a field name, a type and, wherever possible, a closed set of allowed values.

Here's a worked example for an inbound demo request on a B2B software product:

  • Role: enum (decision maker, influencer, end user, unknown). Asked as "What's your part in choosing a tool like this?"
  • Team size: integer. A number, not "medium-sized".
  • Primary need: enum of your three or four real use cases, plus "other". Free text here produces hundreds of unique answers nobody can report on.
  • Timeline: enum (this quarter, next quarter, later, unknown).
  • Budget owner involved: boolean.
  • Current solution: string, in the caller's own words. Useful context for the rep; never scored.
  • Next step agreed: enum (transfer now, callback booked, send information, none).
  • Disqualification reason: enum (no need, too small, student or job seeker, competitor, wrong number, asked not to be called).

Three rules make a schema like this hold up on live calls.

"Unknown" is a valid answer. Force the agent to pick a value and it will infer one, and inferred authority is how junk leads reach reps. Callaro's extraction instructions are blunt about this: record only what the caller explicitly stated, and leave a field empty rather than guess.

Types do real work. Each field in a Callaro agent's extraction schema has a type: string, number, integer, boolean, enum with allowed values, array, date or datetime. Dates come back in a fixed format in the agent's configured timezone, so "next Thursday afternoon" arrives as something a calendar or CRM can use without a person reinterpreting it.

Keep scoring out of the conversation. The agent collects facts; a rule decides what they mean. Don't ask the model to tell a caller "you qualify". Put the threshold in your routing logic (Step 3), where you can change it in a minute without touching the script.

Step 2: capture each answer when it's given

A qualification call that drops at minute three should still leave you with the four answers the caller already gave. That means extraction has to happen during the call, not in a summary written afterwards.

Callaro turns an agent's extraction schema into a data-capture tool, and the agent is instructed to call it in the same turn the caller provides a new answer. Two details from running this in production matter:

  • Speak first, save second. Data capture is fire-and-forget; the platform doesn't wait on it. So the agent says its next line (usually the next question) before saving, and doesn't read the value back. A failure mode we've seen is a model ending its turn with a tool call and no speech, which leaves the caller in dead air while the platform recovers. Fixing the order of the turn removes it at the source.
  • Speech-to-speech models extract in the background. With a full-duplex speech-to-speech model, a tool call for every fact adds a backend round trip on the conversational path. On that path, Callaro extracts the same schema from the transcript in the background every few turns and once at call close, entirely off the audio path.

The tradeoff is real. In-call capture is immediate but adds tool calls to the conversation; background extraction costs nothing in latency but can trail a turn or two behind. For qualification, either works. "We'll parse the transcript later" doesn't.

When should the agent read a value back? For hard identifiers such as an email address, a callback date or a spelled surname, a short confirmation is worth the seconds. For soft fields like team size or timeline, a readback makes the call sound like a form being filled in, and callers disengage.

Step 3: give every outcome a destination

A scorecard without routing is just a report. Here's the mapping we recommend, as a decision sequence:

  1. Hot: must-haves met and the caller wants to talk now. Warm-transfer while intent is live. In Callaro, the agent announces the handoff in its own voice, then transfers only to a destination on that agent's allowlist, or to one your own routing endpoint returns at transfer time (the rep who owns that territory, for example). A caller can't talk the agent into dialling an arbitrary number. Our outbound campaigns guide covers the context a rep should receive on transfer.
  2. Qualified, but not now. Book the callback the caller asked for. The agent can schedule a follow-up mid-call; the platform deduplicates it against existing follow-ups, respects the campaign's calling windows, and places it through the same telephony route as the original call.
  3. Unknown on a must-have. Don't let the agent reject. Send it to a rep or schedule another call to fill the gap. Callaro's follow-up rules can do the second automatically: a rule can fire on the call's outcome code, its telephony status or a specific extracted value (timeline is "next quarter", say), and the highest-priority matching rule wins.
  4. Not qualified. Record the typed reason and stop calling. Pass the record to your marketing tools if nurture fits your model.
  5. Asked not to be called. Add the number to the Do-Not-Call list with its reason. In Callaro, that also cancels any follow-up calls already scheduled for the person, so a "please stop" on Monday isn't followed by a booked callback on Wednesday.

One case gets missed more than any other: the lead calls you back. Callaro's inbound routing checks whether the number belongs to someone in an active campaign, with a retry or follow-up pending, or who recently spoke to a particular agent, and routes the call back to that context.

Once the contact has actually engaged, their other pending follow-ups can be closed automatically, with a configurable reach from the same campaign up to everything pending for that contact. A missed call, busy line or voicemail doesn't count as engagement, so it never unenrols anyone.

Step 4: write back with provenance, and let humans win

Qualification data only matters once it's in the system your reps work in. Callaro's post-call webhook always carries the structured extracted data, and it can be signed so your receiver can verify the payload really came from Callaro. Your CRM or middleware gets typed fields, not a paragraph to parse, and because it's a generic webhook it works with any system that accepts one.

The harder problem is the second call. Leads rarely qualify in one conversation. If call two re-asks everything, the lead hangs up. If call two overwrites a rep's correction with a fresh AI guess, your data gets worse with every call.

Callaro's contact memory, when switched on for an agent or campaign, handles both. After each call it builds a short summary, a list of open items and structured insights for the contact, and the next call starts from that summary.

Every stored value records where it came from, and a value a person edited is never overwritten by a later AI extraction. Mirror that rule in your CRM: tag AI-written fields, and never let an automated write replace a human one.

Step 5: calibrate every week

The four-box model only works if someone fills it in. A light weekly process:

  1. Pull a random sample of calls the agent marked qualified, and an equal sample it marked not qualified. The second pile is the one nobody looks at.
  2. Have a rep label each call without seeing the agent's verdict.
  3. Compute precision and leak rate, then read every disagreement.
  4. Classify each one: a schema problem (the fields can't express the real answer), an extraction problem (the caller said it; the agent missed or misrecorded it) or a threshold problem (the facts were right; the rule was wrong).
  5. Fix one thing, then measure again.

For script changes, run a real A/B test instead of comparing this week with last. Callaro campaigns can split contacts across agent variants, with each contact pinned to the same variant on every retry, and the agent version is snapshotted at launch, so an edit halfway through can't contaminate the comparison.

When voice qualification is the wrong tool

Some honest limits:

  • Discovery-heavy enterprise sales. When the qualifying conversation is really the start of the sale, with several stakeholders and custom requirements, keep people on it. Use the agent for scheduling and fact-gathering around them.
  • Regulated advice. In insurance, lending and healthcare, an agent can check eligibility basics, but anything that becomes advice belongs with a licensed person.
  • A bad list. No agent fixes purchased contacts with weak consent; you get poor connect rates, complaints and legal exposure. In the US, the FCC ruled in February 2024 that AI-generated voices count as "artificial" under the TCPA, so these calls need the same prior consent as prerecorded ones. Rules differ by market and this isn't legal advice, but the safe default is simple: qualify people who asked to hear from you.
  • Low volume. If your reps already reach every lead within minutes, the speed gain is small. Consistency and clean data can still justify the project, so model it honestly.

Pre-launch checklist

  • Scorecard written as typed fields, with "unknown" allowed on every must-have.
  • Scoring threshold lives in routing rules, not in the prompt.
  • Every outcome has a destination, including "asked not to be called" and "called us back".
  • Transfers restricted to known destinations.
  • CRM receives typed fields, with AI-written values tagged.
  • A weekly sample-and-label review is on someone's calendar.

Voice agents are good at the part of qualification people find tedious: calling every lead quickly, asking the same questions the same way, and writing down the answers. Deciding what those answers mean is still your job. Do that first and the script almost writes itself.

If you're scoping a qualification programme, see how Callaro supports sales and revenue teams, or check current pricing to model it against your own lead volumes.

C

Written by Callaro Team

Field notes from the team building Callaro's voice AI platform.

Frequently asked questions

Can an AI voice agent qualify leads as accurately as a human SDR?+

On routine criteria such as role, company size, need and timeline, a well-designed agent can match a consistent SDR, because it asks every question the same way on every call and never skips one at the end of a long day. It is weaker at reading nuance in complex, multi-stakeholder deals. The only way to know for your funnel is to measure it: sample calls the agent marked qualified and not qualified, have a rep label them blind, and track precision and leak rate week by week.

What should an AI lead qualification call capture?+

Capture each must-have criterion as a typed field with a closed set of allowed values (for example, timeline as this quarter, next quarter, later or unknown), plus the agreed next step and a typed disqualification reason. Allow "unknown" on every must-have so the agent never has to guess, and keep free text for context the rep will read rather than fields you plan to score or report on.

How do I stop an AI voice agent from sending junk leads to sales?+

Keep the scoring threshold in your routing rules rather than in the prompt, let the agent record "unknown" instead of inferring answers, and route leads with gaps on a must-have to another call rather than straight to a rep. Then measure precision (rep-accepted leads divided by agent-qualified leads) every week, and don't trust a rising qualification rate until precision confirms it.

Should an AI agent ever reject a lead outright?+

Only for clear, typed reasons: a wrong number, an explicit statement of no need, or a request not to be called again. Anything uncertain should go to a rep or to another call. Review a sample of disqualified calls every week, because leads the agent wrongly turned away are invisible unless someone deliberately looks for them.

How does qualification data get from the call into my CRM?+

Callaro sends a post-call webhook that always includes the structured data extracted against the agent's schema, and it can be signed so your system can verify it came from Callaro. Because it's a generic webhook, it works with any CRM or middleware that can receive one. Tag AI-written fields in your CRM and make sure a value a person corrected is never overwritten by a later automated write.

Is it legal to use an AI voice agent to call and qualify leads?+

It depends on your market and on the consent you hold. In the US, the FCC ruled in February 2024 that AI-generated voices count as "artificial" under the TCPA, so these calls need the same prior consent as prerecorded calls. The safe default everywhere is to call people who asked to hear from you, respect calling hours and Do-Not-Call lists, and honour opt-outs immediately. This isn't legal advice; check the rules for each market you call into.

See the platform run a real call.

Book a demo and we'll show you outcomes executed end-to-end.

Book a demo