SaaS AI

AI-Powered Live Chat

A support chat that actually works — with a human handoff that doesn't feel like failure.

AI-Powered Live Chat — featured screenshot

Client

Confidential

Year

2025–2026

Duration

Ongoing

The challenge

A multi-tenant SaaS platform needed a live chat where every tenant's customers could get instant, accurate answers — grounded in that tenant's own knowledge, not generic AI guesses. Support teams were spending most of their time on questions their documentation already answered, while the genuinely complex conversations waited.

The AI layer had to resolve the easy questions automatically and hand off the hard ones to humans cleanly — without the frustration that usually comes with chatbot experiences, and without any tenant's data leaking into another's answers.

What we built

  • Laravel-native live chat: built directly into the platform rather than bolted on as a third-party widget — same codebase, same tenancy model, same deployment pipeline.
  • Tenant-isolated retrieval: each tenant's knowledge indexed as embeddings in PostgreSQL + pgvector, so the AI answers only from that tenant's own content.
  • Conversation layer: LLM-powered responses via OpenAI and Anthropic APIs, with a tight system prompt and a clear "I don't know — let me get you to someone who does" escape hatch.
  • Handoff UX: when the AI escalates, the full conversation transcript goes to the human agent, so the customer never has to re-explain.
  • Real-time infrastructure: Redis-backed queues and events keeping conversations responsive across all tenants.

Results

  • Live in production across all tenants of the platform.
  • Routine questions answered instantly from each tenant's own knowledge base, around the clock.
  • Human agents step into conversations with full context instead of starting from zero.

What we learned

The single biggest quality lever is retrieval, not the model. Swapping one LLM for a cheaper one changes cost a lot; improving retrieval changes correctness a lot. Most AI-support products under-invest in retrieval and over-invest in prompt engineering.

The second biggest lever is the handoff. A chatbot that confidently fails is worse than no chatbot. One that says "I'm not sure, let me get you a human" within a few seconds actually builds trust.

Technology

PHP / Laravel Livewire PostgreSQL + pgvector Redis OpenAI API Anthropic API

Working on something similar?

Send the shape of the problem. We'll tell you what it would take to solve.

Start a project