All case studies
AIClaudeNode.jsInngest
AI Customer Support Agent with Claude 4.7 + Tool Use
Resolved 73% of inbound tickets autonomously in first 30 days.
2026 · 5 weeksSaaS / AILead Engineer — backend agent + integrationsClient: B2B SaaS company (anonymized)

The summary
Built a production customer support agent backed by Claude 4.7 with 9 tools (account lookup, knowledge base search, refund issue, ticket escalation, etc.). Durable execution via Inngest. Handles 800+ tickets/day with 73% autonomous resolution rate.
The problem
- ▸Support team of 4 was drowning in 800-1,000 tickets per day. Average response time was 18 hours; SLA breaches mounting.
- ▸Previous chatbot attempt was rule-based, frustrated users with rigid flow, escalated 95% to humans anyway.
- ▸Most tickets were repetitive: account lookups, refund requests, feature questions answerable from docs.
The approach
- 1.Anthropic Claude 4.7 (Opus) as the primary model, Sonnet 4.6 as escalation router for simpler requests. Two-model setup cut average per-ticket cost ~60%.
- 2.Nine narrowly-scoped tools: get_customer, search_knowledge_base, create_refund, escalate_to_human, get_order_status, update_subscription, get_recent_tickets, send_followup_email, log_resolution.
- 3.Durable execution via Inngest — each tool call is a step, agent runs resume from last completed step if worker dies. Cut wasted token spend ~40%.
- 4.Observability via OpenTelemetry + Honeycomb. Every run traced with token cost, latency per tool, success/failure per step.
- 5.Aggressive prompt caching for system prompt (stable 320-word doc) — 80% cache hit rate after first hour of every day.
- 6.Hard escalation rules: any refund > $500, any churn signal, any ambiguous account state — always to human.
Results
73%
Tickets resolved autonomously
18h → 2m
Median first response time
62%
Reduced support headcount need
$3,400/mo
AI cost vs $14K/mo of headcount avoided
Tech stack
AI / LLM
Anthropic Claude 4.7 OpusClaude Sonnet 4.6 (router)Prompt caching
Backend
Node.js + TypeScriptInngest (durable execution)PostgreSQL
Observability
OpenTelemetryHoneycombLangSmith
Integrations
Zendesk APIStripeinternal billing API
What surprised me
The biggest unlock was narrow tools. Early iterations had a manage_account tool that did everything — Claude was great at calling it, but couldn't reason about side effects. Splitting into 9 single-purpose tools made the agent dramatically more reliable. Tool design > prompt engineering.