Voice Agent (Retell AI)

Purpose

The Voice Agent handles outbound calling at scale using Retell AI’s conversational AI platform. It calls marketplace sellers, delivers a concise pitch about daily payouts, qualifies interest, handles objections, and either books a demo directly or warm-transfers to a BDR on Five9. It also handles inbound calls from sellers who call back after receiving a voicemail or email.

Retell AI Configuration

Agent Setup

  • Voice: Select a natural, confident, friendly voice. Male or female — test both. Avoid robotic-sounding options. Retell AI’s voice cloning can create a custom voice that matches your brand.

  • Language: English (US)

  • Latency mode: Low latency for natural conversation flow

  • Interruption handling: Allow the seller to interrupt — the agent should stop speaking and listen. This is critical for natural conversation.

  • Call recording: Enable for all calls. Store recordings in S3 via webhook for compliance and training.

  • Call summary: Enable post-call summary generation. Push to HubSpot via webhook.

Telephony

  • Provision phone numbers through Retell AI or bring your own numbers via SIP trunk.

  • Use local area code numbers matching the seller’s region when possible (increases answer rates by 15–30%).

  • Caller ID should display your company name where supported.

Conversation Flow

Outbound Call Script

The Retell AI agent follows this conversation flow. Design it as a state machine in Retell’s conversation builder:

State 1: Opener (max 15 seconds)

"Hi, is this {first_name}? ... Great. This is [Agent Name] calling from [Company].
I work with Amazon sellers — I'll be really quick, do you have 60 seconds?"

If no → "No problem. When would be a better time to call back?" → Schedule callback in HubSpot → End call. If yes → State 2.

State 2: Hook (max 20 seconds)

"The reason I'm calling — most sellers we talk to have $20,000 to $50,000
sitting in Amazon at any given time just waiting to be paid out. We help sellers
get that money every day instead of waiting two weeks. Have you ever thought
about how much cash you have locked up in there right now?"

This is designed to trigger the "aha moment." Wait for response → State 3.

State 3: Qualify (max 45 seconds) Listen to their response. The agent should: * If they’re curious: Explain briefly how it works ("You keep selling normally. We analyze your balance and deposit your earnings into your bank account every day. Or you can use our Seller Visa Card for instant access. It’s not a loan — it’s your own money, just faster.") * If they ask about cost: "It’s a small percentage of your sales volume — typically 2 to 3 percent. Most sellers find it pays for itself because they can reinvest faster." * If they push back: Go to objection handling (State 4). * If they’re interested: Go to close (State 5).

State 4: Objection Handling

Trigger Phrase Response

"Is this a loan?" / "sounds like debt"

"No, not at all. It’s your own money — you’ve already made the sale. We just get it to you faster. No interest, no credit check, no repayment schedule."

"What’s the catch?" / "What’s the fee?"

"The fee is typically 2 to 3 percent of your sales. For most sellers doing $30K or more a month, that’s a few hundred dollars to free up tens of thousands in working capital. It usually pays for itself through faster inventory turns and fewer stockouts."

"I’m fine waiting" / "I don’t need this"

"Totally fair. Can I ask — when you’re stocking up for a busy period, or when you want to launch a new product, does the timing of your Amazon payouts ever slow you down?" (Re-engage with pain)

"Never heard of this" / "Is this legit?"

"You’re not alone, most sellers haven’t heard of this yet. We work with over 100 sellers right now. I can connect you with one of our team members who can walk you through it and even introduce you to a seller in your niche. Would that be helpful?"

"I’m too busy right now"

"Completely understand. Can I send you a quick case study by email? If it looks interesting you can book a call when it’s convenient. What’s the best email?" (Capture email → HubSpot → Email Agent sends case study)

"How does it actually work?"

"It’s simple — you connect your Amazon or Walmart account to our platform, we see your sales in real time, and we deposit your earnings into your bank account every day. No changes to how you sell, ship, or run your business. Takes about 10 minutes to set up."

After handling objection → return to qualify or close.

State 5: Close

"It sounds like this could be a good fit. The best next step would be a quick
15-minute call with one of our team — they can pull up your actual numbers and
show you exactly how much cash you'd free up. Do you have time [tomorrow/later
this week]?"

If yes → Transfer to BDR queue or book in calendar. If "send me info first" → Capture email → HubSpot → Email Agent sends info → Schedule follow-up call.

State 6: Warm Transfer to BDR When the seller is qualified and interested, the agent transfers to a live BDR:

"Great. Let me connect you with [BDR Name] right now — they specialize in
setting up sellers in your category. One moment."

Retell AI initiates warm transfer to Five9 queue. The agent provides a whisper to the BDR with seller context (name, marketplace, category, estimated revenue, key interest signals).

State 7: Voicemail If the call goes to voicemail (detect after 4–5 rings or voicemail greeting):

"Hi {first_name}, this is [Agent Name] from [Company]. I work with Amazon sellers
and wanted to share something quick about getting paid daily on your sales instead
of waiting two weeks. I'll follow up by email — or feel free to call me back at
[callback number]. Thanks!"

Keep under 20 seconds. Log voicemail in HubSpot. Trigger Email Agent to send follow-up email within 2 hours.

AWS Orchestration

Runtime: AgentCore Runtime (marketplace-voice-agent)

The Voice Agent orchestrator runs as an AgentCore Runtime deployment. Retell AI handles the actual conversation; this agent manages call scheduling, TCPA compliance, and result processing. Lambda is used only as a thin webhook receiver and a scheduled dispatcher.

AgentCore services used by this agent: * AgentCore Runtime — hosts the orchestration logic; handles both scheduled outbound runs and inbound Retell webhook events as separate sessions * AgentCore Memory (voice-calls store) — per-contact call attempt history, callback schedules, cooldown timestamps, daily call counts; replaces manual DynamoDB call tracking * AgentCore Memory (cross-agent-leads shared store) — reads contact score and email sequence status; writes call outcomes visible to LinkedIn Agent * AgentCore Identity — manages Retell AI API key, HubSpot token * AgentCore Gateway — exposes retell_trigger_call, hubspot_get_contact, hubspot_update_stage, hubspot_create_task, dynamo_check_suppression as MCP tools * AgentCore Policy — enforces TCPA calling window as a guardrail on retell_trigger_call tool; agent cannot trigger calls outside permitted hours regardless of reasoning

Triggers: * Scheduled run: EventBridge every 30 min → dispatch-voice Lambda → InvokeAgentRuntime * Call result: Retell webhook → Vercel /api/webhook/retell → webhook-retell Lambda → InvokeAgentRuntime with call outcome payload

AgentCore Runtime: voice-orchestration-session

Trigger: EventBridge every 30 minutes, 9am–5pm ET Tue–Thu

Steps:
1. Read from AgentCore Memory (cross-agent-leads + voice-calls):
   - Score >= 70 AND not yet called (high priority)
   - Email sequence completed, no reply, score >= 40 (escalation)
   - Callback scheduled for today's window
2. Read daily call counts and cooldowns from AgentCore Memory (voice-calls store)
3. For each eligible contact:
   a. Verify TCPA compliance — AgentCore Policy guardrail on retell_trigger_call
      blocks calls outside 8am–9pm seller's local timezone automatically
   b. Call `retell_trigger_call` tool to trigger Retell AI outbound call
   c. Write call attempt to AgentCore Memory: timestamp, attempt count, session ID
   d. Call `hubspot_update_stage` tool to set ai_call_status = "attempted"

AgentCore Runtime: `voice-result-session` (separate invocation per call result)
Trigger: Retell webhook event → webhook-retell Lambda → InvokeAgentRuntime

Steps:
1. Parse call outcome from Retell payload (summary, duration, disposition, transcript)
2. Match to contact via AgentCore Memory (voice-calls store) using Retell session ID
3. Process outcome:
   - warm_transfer: call `hubspot_create_task` (BDR alert), `hubspot_update_stage`
     (→ bdr_handoff), write to cross-agent-leads memory
   - callback_requested: update AgentCore Memory with next callback window
   - not_interested: call `hubspot_update_stage` (→ disqualified),
     `dynamo_check_suppression` (add to voice suppression)
   - voicemail: call `hubspot_update_stage` (ai_call_status = voicemail);
     write to cross-agent-leads memory to trigger Email Agent follow-up within 2 hours
   - no_answer: increment attempt count in AgentCore Memory; after 3 attempts
     write "voice_exhausted" flag to cross-agent-leads memory for LinkedIn Agent
4. Write full call summary (Retell transcript + outcome) to AgentCore Memory
5. Call `hubspot_update_stage` tool with ai_call_summary and updated ai_call_status

Retell AI Webhook Events

Configure Retell to send webhooks to your Vercel endpoint (/api/webhook/retell) for: * call.completed — Call finished, includes transcript, summary, duration, outcome * call.transferred — Warm transfer initiated to Five9 * call.failed — Call could not connect (invalid number, network error)

Call Scheduling Logic

  • Primary window: Tuesday–Thursday, 10am–12pm and 2pm–4pm in seller’s timezone

  • Secondary window: Monday and Friday, 10am–3pm (lower priority)

  • Max attempts per contact: 3 outbound calls over 10 days

  • Cooldown between attempts: Minimum 3 days

  • After 3 no-connects: Escalate to LinkedIn Agent, mark as "voice_exhausted"

Integration with Five9

Warm Transfer Flow

  1. Retell AI identifies a qualified, interested seller during conversation

  2. Retell initiates a SIP transfer to the Five9 inbound queue designated for warm transfers

  3. Five9 routes the call to the next available BDR

  4. Retell AI provides a "whisper" message to the BDR (heard only by the BDR, not the seller): "Warm transfer from AI agent. Seller: {name}, Amazon seller in {category}, estimated ${revenue}/month. Interested in daily payouts. Key interest: {summary}."

  5. BDR picks up and continues the conversation seamlessly

  6. If no BDR available within 30 seconds: Retell AI apologizes to the seller and offers to schedule a callback

Five9 Configuration

  • Create a dedicated skill group "AI Warm Transfers" in Five9

  • Assign all 3 BDRs to this skill group

  • Set max wait time to 30 seconds before failover

  • Configure whisper announcements from Retell webhook data

Inbound Call Handling

Configure your callback number to route to Retell AI for initial handling: . Retell AI answers with a greeting and identifies the caller (match phone number to HubSpot contact) . If recognized: "Hi {name}, thanks for calling back. You spoke with one of our team about getting paid daily on your Amazon sales. Would you like to hear more or would you prefer I connect you with someone right now?" . If new caller: "Thanks for calling [Company]. We help Amazon and Walmart sellers get paid daily instead of waiting for marketplace payouts. Are you an Amazon or Walmart seller?" . For interested callers: Attempt warm transfer to BDR. If none available, capture email and schedule callback.

TCPA Compliance

  • Only call during 8am–9pm in the seller’s local timezone

  • Maintain internal Do Not Call list — sync with HubSpot suppression properties

  • Record all calls (Retell AI does this by default) — retain for 2 years

  • Provide opt-out mechanism during every call ("If you’d prefer not to receive calls from us, just let me know and I’ll make sure we don’t call again")

  • Check against national DNC registry monthly (integrate with DNC.com or similar API)

  • Maximum 3 call attempts per contact per 30-day period

Expected Metrics

Metric Target

Outbound calls/day

100–200 (AI) + 200–300 (BDR via Five9)

AI call completion rate

60–75%

AI connect rate (live person)

20–30%

Warm transfer rate (of connections)

15–25%

Callback requests

10–15% of connections

Voicemails left

40–50% of attempts

Demos booked from voice

30–60/month