The problem
Growth across three language markets outran operations. Inbound arrived in Spanish, Portuguese, English. The sales team read two of three. The third routed to a queue not processed in months.
The audit traced 5,400 unanswered messages a month. Quantified revenue leak: roughly $96,000 monthly to prospects who got no reply and went elsewhere. Every month on the existing stack added to it.
The approach
An AI sales agent on Claude reading, classifying, and responding in all three languages. Tiered model routing for cost control. 93% classification accuracy threshold validated against historical conversion data before launch. One mis-classified intent at scale corrupts a CRM. The threshold was the engineering, not the model.
The build
Phased across two engagements. Phase 1: audit and migration. 309,000 contacts cleaned and migrated into GoHighLevel from a fragmented data layer. Phase 2: classifier, drafter, response loop, observability stack.
Highlights:
- Three-language classifier validated to 93% accuracy on a held-out historical dataset before any production message was touched
- Tiered model routing (Haiku for language detection, Sonnet for intent classification) cutting inference cost roughly 70% versus a flat-tier approach
- Langfuse observability tracking every classification, draft, send, and downstream conversion outcome
- Confidence-threshold routing: anything below 90% confidence goes to a human review queue, not auto-sent
- $2.7M+ annual opportunity mapped in Phase 2 expansion (additional revenue paths surfaced by the now-clean data)
The outcome
5,400 messages monthly handled by a production AI classifier at 93% accuracy under continuous load. The $96K/month leak sealed during the first post-launch sprint. Full observability so the team sees the moment classification confidence drops.
Phase 2 surfaced an additional $2.7M annual opportunity from segments the previous architecture had buried. A properly architected system makes those segments visible. A fragmented one keeps them invisible, quarter after quarter.
The structural shift: Inbound went from backlog to a routed, classified, logged stream. Every interaction generates structured data. The AI did not replace the sales team. It handed them only the conversations worth having.
Tech stack
Claude API (Haiku and Sonnet, tiered routing), Trigger.dev (orchestration and webhooks), GoHighLevel (CRM), Supabase (agent state and queue), Langfuse (observability), Python (migration and ETL). 309,000 contacts migrated from spreadsheets, legacy CRMs, and a custom internal tool.
Have a backlog of messages nobody is reading?
Same shape of problem across education, professional services, franchises. The discovery call maps yours.
Book a Discovery Call