💬 Customer Support Automation

The Anatomy of an AI-Resolved Support Ticket

What happens, end to end, when an AI agent resolves a support ticket? The full trace — from inbound call to resolved CRM record — is more interesting than most marketing materials show. Walking through a real example helps demystify what AI customer support actually does.

Rohan Pavuluri
Rohan Pavuluri
January 30, 2026 · 5 min read
Speechify

What happens, end to end, when an AI agent resolves a support ticket? The full trace — from inbound call to resolved CRM record — is more interesting than most marketing materials show. Walking through a real example helps demystify what AI customer support actually does.

TL;DR

  • A typical AI-resolved support ticket has 8 distinct steps from pickup to close.
  • The most-cited bottleneck (the LLM "thinking") is usually 200–500ms; the bigger time sinks are function calls and TTS.
  • Every step generates data your operations team should be looking at.

A worked example

Scenario: a customer named Sarah calls Acme Outdoor at 2 PM Tuesday. Her order arrived missing one of three items. She wants a refund or replacement.

Walking through what happens:

Step 1: pickup (0ms)

Twilio routes the call to the SIMBA agent endpoint. The agent's webhook fires. A new call session is created, tagged with caller ID +1-415-555-0199.

Step 2: greeting (200ms after pickup)

Pre-rendered or freshly synthesized: "Hi, this is Aria from Acme Outdoor. How can I help?"

Step 3: caller speaks (turn 1)

Sarah: "Hi, I just got my order but one item is missing."

STT runs in parallel with her speaking. Endpointer fires 300ms after her last word. Total transcript ready ~250ms after she stops.

Step 4: agent decides (turn 1 reply)

LLM gets the transcript + system prompt + tool definitions. Decides to call lookup_caller_by_phone with the caller ID (already known). TTFT: 220ms.

Function call: 80ms. Returns Sarah Chen, account #4521, 8 prior orders.

LLM continues. "Sorry to hear that — let me pull up your order. Was it order number 1976?" (Inferring from the most recent order on her account.)

Time elapsed since Sarah finished speaking: ~600ms.

Step 5: caller speaks (turn 2)

Sarah: "Yes, that's the one."

Step 6: agent looks up (turn 2 reply)

LLM calls get_order_details({ order_id: 1976 }). Returns order info: 3 items shipped, marked delivered yesterday.

LLM: "Got it. I see all three items shipped together — which one is missing?"

Step 7: agent diagnoses (turns 3-4)

Sarah: "The hiking poles."

LLM calls get_item_inventory({ sku: 'POLE-001' }) to check if a replacement is available. Yes, in stock.

LLM: "I can either send you a replacement at no cost, or process a refund of $45 for that item. Which would you prefer?"

Sarah: "A replacement is fine."

Step 8: agent acts (turns 5-6)

LLM calls initiate_replacement({ order_id: 1976, sku: 'POLE-001', reason: 'missing_item' }). Returns confirmation.

LLM: "Done. I've initiated a replacement for the hiking poles. You'll get a confirmation email and tracking information within an hour. Anything else I can help with?"

Sarah: "No, that's it. Thanks!"

LLM: "You're welcome. Have a great day!"

Call ends.

Step 9: post-call (after hangup)

  • Transcript saved to database.
  • Summary generated: "Customer reported missing item from order #1976. Initiated replacement for hiking poles SKU POLE-001. Resolved without escalation."
  • Summary written to CRM as a closed ticket.
  • Webhook fires to send the customer a follow-up SMS with tracking expected timing.
  • Analytics computed: duration 2:15, intent "missing_item", outcome "resolved", cost ~$0.32.

What was happening underneath

A few details worth highlighting:

Streaming throughout. STT, LLM, and TTS all streamed. Total perceived latency per turn was 600–900ms.

Function calls. Three function calls in the call. Each took 50–200ms. The LLM bridged the slower ones with brief acknowledgments ("let me pull up your order").

No escalation. The agent stayed within its authority (replacement, no refund over $50). Confident handling.

Caller never repeated info. Caller ID identified Sarah; the agent inferred the order. No "what's your account number?" needed.

What could have gone differently

Failure modes:

STT misheard "hiking poles" as "hiking holes." Agent calls get_item_inventory({ sku: 'HOLE' }) → fails. Agent says "let me try that again" → asks for clarification. Recovers.

Function call timed out. initiate_replacement hangs for 5 seconds. Agent says "I'm having trouble processing that — let me get you to someone who can help." Escalates with full context.

Sarah was upset. "I've been waiting 3 days for this!" Agent acknowledges briefly and proceeds, but tags the call with "elevated_emotion" for human review.

Sarah requested a $200 refund instead. Above agent authority. Agent escalates: "I'd like to get you to someone who can review the full order with you." Doesn't promise the refund.

What the operations team sees

After the call:

  • Real-time dashboard shows the call closed, intent tagged, outcome resolved.
  • Daily report aggregates: 247 missing-item calls today, 218 resolved by AI, 29 escalated.
  • Weekly: this intent has 87% AI resolution rate, average handle time 2:30.
  • A sample of these calls is auto-flagged for human grading.

What the CRM sees

Ticket #98432
Customer: Sarah Chen (#4521)
Channel: Voice (AI)
Intent: missing_item
Order: #1976
Resolution: replacement initiated for SKU POLE-001
Duration: 2:15
Status: closed
AI confidence: high
Human review: not flagged

Clean, structured, queryable.

What this looked like in 2020

Before AI:

  • Sarah waits in queue for 4 minutes.
  • Human agent picks up, asks for her account number (she doesn't remember), looks up by name (typos), takes 30 seconds.
  • Human asks what's wrong, Sarah explains, human pulls up order.
  • Human discovers missing item, offers replacement, processes manually.
  • Human types up notes after the call (or doesn't).
  • Total time: 8 minutes. Cost: $5–$10 in agent time.

The AI version: 2 minutes. $0.32. Same outcome.

For more on the cost math, see the real cost of a voice agent conversation.

FAQ

How long are typical AI-resolved calls? Tier-1 support: 90 seconds to 4 minutes. Faster than humans typically.

Does the customer notice the AI? Most do, especially if disclosed. Most don't seem to mind for tier-1 cases.

What about edge cases? The example above is the happy path. Edge cases get escalated with context. That's the design.

Where does the cost come from? Mostly TTS ($0.20 of the $0.32) and LLM ($0.05). Telephony and STT are smaller.

Can I see the full transcript? Stored in the dashboard. Searchable. Tied to the customer record.

Rohan Pavuluri
Rohan Pavuluri
Building SIMBA Voice Agents

Rohan Pavuluri builds SIMBA Voice Agents at Speechify. Previously, he founded and led Upsolve, the largest nonprofit in the United States serving low-income Americans through technology. He writes about real-world voice-agent deployments — customer support, outbound sales, AI receptionists — and the practical product, design, and operational lessons that actually move the needle.

More from Rohan Pavuluri

View all →

Related reading

Voice AI, twice a month.

Get the best of the SIMBA resources hub — new articles, trend notes, and operator guides. No spam.