Background: A 2,400-Person US Insurer with a 18,000-Call Monthly Queue
This case study is a composite drawn from patterns observed across multiple insurance and insurtech engagements. No named customer is represented. The company profile, metrics, and timeline reflect the median outcome from a cohort of similar deployments, not a single client.
The company is a mid-size US property and casualty insurer with 2,400 employees, headquartered in Columbus, Ohio. It writes personal auto, home, and commercial lines. The customer support operation handles roughly 18,000 inbound calls per month, of which 60-70% are status inquiries: “Where is my claim check?”, “Has my replacement part shipped?”, “What is the ETA on my repair?” The existing stack includes a Genesys Cloud contact center, a custom TMS built on PostgreSQL with a REST API, and a Salesforce CRM. The support team is staffed 24/7 across three shifts, with an average handle time of 4 minutes 12 seconds for status calls and a first-contact resolution rate of 71%.
Challenge: 60% of Calls Were Status Checks, and the 4-Week Deadline Was Non-Negotiable
The operational pressure was threefold. First, the support team was at 94% utilization during peak hours (9 AM-1 PM ET), with average wait times exceeding 6 minutes. Second, the company had committed to a GDPR-aligned data handling policy for its US operations after a 2024 regulatory review, which meant any new system touching caller PII had to keep data on-premises or in a US-only cloud region with explicit consent logging. Third, the CFO had set a 4-week deadline for a pilot that would demonstrate measurable cycle-time reduction before the Q3 budget cycle closed. The specific need was to replace the manual data-entry step where agents typed shipment IDs into the TMS, waited for a status, and read it back. That step alone consumed 55-70 seconds of every status call.
Approach: Self-Hosted Voice Agent on LangGraph with a Fixed 4-Week Pilot Scope
The dedicated AI team consisted of one ML engineer, one full-stack developer, one product manager, and one QA specialist, embedded with the client’s IT and support operations teams. The architecture was model-agnostic by design: the LLM layer ran on a self-hosted Llama-3-70B instance on the client’s on-premises GPU cluster, the ASR used Whisper-large-v3 fine-tuned on insurance terminology, and the TTS used a fine-tuned Coqui TTS model. Orchestration was built on LangGraph, which managed the conversation state machine: greeting, identity verification, intent classification, TMS query, status readout, and transfer-to-human. The TMS integration used the existing REST API with webhook callbacks for status changes. No proprietary SaaS voice platform was used. The pilot scope was fixed: one carrier, one status type (shipment ETA), one language (English), and a hard boundary that the agent would not accept payment, modify policy terms, or initiate claims.
Outcome: 67% Cycle-Time Reduction and 88% First-Contact Resolution in 4 Weeks
The pilot ran for 4 weeks, with the agent handling 15% of inbound status calls in week 2, 30% in week 3, and 50% in week 4. Baseline metrics were captured in week 1 from 200 sampled calls in the human queue. By the end of week 4, the agent’s average handle time for status queries was 82 seconds, compared to the human baseline of 252 seconds — a 67% reduction. First-contact resolution for status-only calls reached 88%, up from the 71% human baseline. The error rate on status readout was 1.4%, below the 2% threshold. The agent transferred 22% of calls to humans, primarily for claim disputes and policy changes. The client’s support team reported that the 15-30% of calls absorbed by the agent freed agents to handle complex cases, reducing average wait time during peak hours from 6 minutes to under 3 minutes. The pilot met all three KPI targets for 5 consecutive business days before the client approved rollout to 100% of status calls.
Lessons for Similar Teams Scaling Voice Automation Across Departments
- Fix the TMS API before building the agent. The client’s TMS REST API had undocumented rate limits (50 requests/minute) and inconsistent status codes across three carrier integrations. Two days of the 4-week timeline were consumed normalizing the API response schema. If the API is not stable, the agent will inherit the inconsistency and the error rate will exceed the threshold.
- Identity verification is the single biggest failure point. The agent’s confidence in caller identity dropped below 90% when callers provided partial policy numbers or used different names than on file. The LangGraph state machine needed a fallback path that gracefully degraded to a human transfer rather than guessing. Budget time for this edge case.
- GDPR compliance is an architecture decision, not a checkbox. Keeping ASR and LLM inference on-premises was non-negotiable. The client’s legal team required that no raw audio or PII left the building. This constraint shaped the entire stack selection and added 3 days of infrastructure setup.
- The 4-week timeline is only realistic with a fixed scope. Expanding the pilot to multi-carrier, multi-language, or claim-initiation use cases would have pushed the timeline to 7-9 weeks. The client’s commitment to a single use case was the critical enabler.
- Human-in-the-loop is not optional for regulated industries. The agent’s hard boundary on payment, policy modification, and claim initiation was enforced in the LangGraph state machine, not in the prompt. Model-level instructions are not a compliance control.