The Problem With Lead Response Time
The data is brutal: responding to a lead within 5 minutes makes you 100x more likely to connect than responding after 30 minutes. After an hour, that lead has already talked to your competitor.
Every agency knows this. Almost none of them solve it.
The human bottleneck is real: salespeople are in calls, on lunch, asleep in a different timezone. The leads keep coming at 11pm on a Saturday, and nobody's there to call them.
We solved this with a voice AI agent built on Retell AI. It calls new leads within 5 minutes, 24/7, qualifies them using our exact criteria, and hands off only the qualified leads to our team.
Here's exactly how we built it.
What Retell AI Is (and Isn't)
Retell AI is a platform for building conversational voice agents. It handles the hard parts: real-time speech-to-text, text-to-speech with natural-sounding voices, conversation state management, and low-latency response (<800ms).
What it's not: a magic button. You still need to design the conversation, define your qualification criteria, and integrate it with your CRM. That's where most people give up — and where the value actually lives.
We pair Retell with Claude Sonnet 4.6 as the underlying AI model. Claude handles the conversational intelligence — understanding context, handling objections, asking follow-up questions naturally.
Our Qualification Agent: The Full Spec
Before writing a single line of code, we defined exactly what the agent should accomplish:
Goal: Qualify inbound leads for a discovery call booking
Qualification criteria (10-point rubric):
- Has a real business (not a side project): +2 pts
- Monthly ad spend >$5k: +2 pts
- Has an existing marketing team or agency: +1 pt
- Pain point is attribution or lead quality (our ICP): +2 pts
- Decision maker, not just an employee: +2 pts
- Timeline within 90 days: +1 pt
Score outcomes:
- 7-10: Hot lead → immediately books a call
- 4-6: Warm lead → sent to email nurture sequence
- 0-3: Not qualified → polite disqualification
Conversation flow:
- Introduction + verify it's the right person
- Build rapport (2 exchanges)
- Qualification questions (4-5 questions, natural conversation)
- Based on score: book call OR set email follow-up
- Thank them and wrap up
Total call length target: 3-5 minutes
The Technical Setup
Step 1: Create the Retell Agent
// Create agent via Retell API
const response = await fetch('https://api.retellai.com/create-agent', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.RETELL_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
agent_name: 'Vixi Lead Qualifier',
voice_id: 'elevenlabs-ryan-english', // Natural-sounding male voice
llm_websocket_url: 'wss://your-server.com/retell-llm',
language: 'en-US',
boosted_keywords: ['Vixi', 'marketing', 'automation'],
enable_backchannel: true, // "mm-hmm", "I see" responses
responsiveness: 1, // 0-1, higher = faster response
interruption_sensitivity: 0.8
})
});
Step 2: Build the System Prompt
The system prompt is where most voice AI implementations live or die. Here's the structure we use:
You are Alex, a friendly representative from Vixi Marketing Agency.
You're calling [LEAD_NAME] who just submitted a form on our website.
Your goal: Have a natural, professional conversation to understand their
situation and determine if they're a good fit for our services.
NEVER say you are an AI unless directly asked. You are a real person named Alex.
QUALIFICATION QUESTIONS (ask in natural conversation, not as a checklist):
1. "What's your business — what do you do?"
2. "Are you currently running any paid advertising? How's that going?"
3. "What's your monthly ad budget roughly?"
4. "What made you reach out to us today — what's the main challenge?"
5. "Are you the decision maker for marketing spend, or is there a team involved?"
SCORING: [internal rubric, not spoken aloud]
...
BOOKING: If qualified (score 7+), say:
"Based on what you've shared, I think we could really help. Our founder Carlos
has a few slots this week for discovery calls — are you free Thursday or Friday?"
[Use Calendly booking link]
TONE: Warm, professional, never pushy. If they seem rushed, respect their time.
If they ask to call back, schedule a specific time.
Step 3: Handle the Webhook
When a lead submits the form, your server triggers the call:
// POST /api/trigger-lead-call
app.post('/api/trigger-lead-call', async (req, res) => {
const { name, phone, email, formData } = req.body;
// Create outbound call
const call = await fetch('https://api.retellai.com/v2/create-phone-call', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.RETELL_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
from_number: process.env.RETELL_PHONE_NUMBER, // Your Retell number
to_number: phone,
agent_id: process.env.RETELL_AGENT_ID,
metadata: { name, email, source: formData.source }
})
});
const callData = await call.json();
// Log to database
await supabase.from('lead_calls').insert({
lead_email: email,
call_id: callData.call_id,
status: 'initiated',
initiated_at: new Date().toISOString()
});
res.json({ success: true, call_id: callData.call_id });
});
Step 4: Process the Call Results
When the call ends, Retell sends a webhook with the full transcript and call analysis:
// POST /api/retell-webhook
app.post('/api/retell-webhook', async (req, res) => {
const { event, call } = req.body;
if (event === 'call_ended') {
const transcript = call.transcript;
const duration = call.end_timestamp - call.start_timestamp;
// Score the lead using Claude
const scoring = await claude.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 500,
messages: [{
role: 'user',
content: `Score this lead call transcript using our rubric.
Transcript: ${transcript}
Return JSON: {
"score": 0-10,
"qualified": true/false,
"key_info": "brief summary",
"next_action": "book_call | nurture | disqualified"
}`
}]
});
const result = JSON.parse(scoring.content[0].text);
// Update CRM
await updateMondayCRM({
leadEmail: call.metadata.email,
callScore: result.score,
qualified: result.qualified,
transcript: transcript,
nextAction: result.next_action
});
// Alert sales team if hot lead
if (result.qualified) {
await sendTelegram(
`🔥 Hot lead qualified!\n${call.metadata.name}\nScore: ${result.score}/10\n${result.key_info}`
);
}
}
});
The Numbers After 90 Days
We've been running this system for 90 days. Here's what we've measured:
| Metric | Before | After | |--------|--------|-------| | Average response time | 4.2 hours | 4 minutes | | Leads contacted within 5 min | 12% | 98% | | Qualification accuracy | N/A (manual) | 87% (vs human review) | | Sales team time on unqualified calls | 8 hrs/week | 45 min/week | | Conversion rate (lead → discovery call) | 18% | 31% |
That last number is the one that matters most. Going from 18% to 31% conversion on the same volume of leads means we're booking 72% more discovery calls without spending a dollar more on ads.
Cost Breakdown
People always ask about cost. Here's the honest math:
Retell AI: ~$0.05/minute (after optimization, started at $0.12) Average call duration: 4.2 minutes Cost per call: ~$0.21
For 200 leads/month: $42 total calling cost.
Compare that to the cost of a human SDR handling the same volume: $2,000-4,000/month for a part-time person who still can't respond in 4 minutes at 2am.
ROI at our volume: We're spending $42/month on calling to book an average of 8 additional discovery calls per month. At our close rate, that's 2 additional clients per month. The ROI math is not close.
Common Mistakes to Avoid
1. Making it sound too robotic
Don't script every response. Give the agent a personality and let Claude handle the natural variation. Rigid scripts make conversations feel unnatural and people hang up.
2. Not handling objections
People will say "I'm busy right now" or "Can you email me instead?" Train your agent to handle these gracefully. We include 10 objection handling examples in our system prompt.
3. Calling numbers that can't receive calls
Always validate phone numbers before triggering calls. Invalid numbers waste credits and can get your Retell account flagged.
4. Ignoring the post-call workflow
The call is only half the system. The value is in what happens after: the CRM update, the scoring, the Telegram alert to your team. If you don't build the downstream automation, you're leaving the best part out.
5. Not monitoring call quality
Listen to the first 50 calls manually. You'll find phrases the AI says that sound off, questions it handles poorly, and moments where the conversation derails. Each one is a prompt improvement opportunity.
Want This Built for Your Business?
We've deployed Retell AI voice agents for roofing contractors, marketing agencies, SaaS companies, and medical practices. Each takes about 2 weeks to build and test properly.
Book a free consultation — we'll assess whether voice AI makes sense for your lead volume and sales process.