Multi-Tenant AI Customer Support, Shipped to Production
A regulated-grade AI support platform with 90-second integration, per-tenant RAG isolation, and one knowledge base powering chat, web, and voice.
Suprix replaces the "ticket-queue + canned-reply bot" workflow with a multi-tenant AI agent that answers live questions on web chat, in an embeddable widget, and on the phone — all powered by the same knowledge base. Paste one script tag, point it at your docs and tickets, and the AI is in production before lunch.
Two broken paths to AI support — neither shipped.
Generic chatbots failed compliance review at every regulated buyer because they ran on a shared embedding store. The "build it yourself" alternative consumed a full engineer indefinitely and silently degraded as the docs drifted. Suprix had to be plug-and-play like the first and provably isolated like the second.
- Compliance-grade tenant isolation — provable in code, not in policy
- Five-minute install with one <script> tag, no SDK or Webpack wiring
- Channel parity — one knowledge base behind chat, embed widget, and voice
- Humans in the loop with full context on every handoff
How we built it.
Map the failure modes
Audited five competing AI-support tools and interviewed five design partners across SaaS, healthcare, e-commerce, freight, and dev tools. Shared-tenant retrieval was the universal compliance blocker.
Pick the primitives
Convex for real-time backend with first-class namespace support on the RAG component. Clerk Organizations as the tenancy primitive. Turborepo for one backend, three frontends.
Design voice as a plugin
Vapi modeled as the first row in a plugin/secrets system keyed by organizationId. Swapping providers is a config change, not a refactor.
Ship to design partners
Three apps live (operator dashboard, embeddable widget, 1-line embed loader), Sentry instrumented end-to-end, real billing and auth in production.
The solution.
Per-organization RAG isolation
Every embedding write and retrieval call carries the organizationId namespace. The retrieval set for org A is mathematically incapable of returning a chunk from org B's corpus — isolation at the storage layer, not an application filter.
One knowledge base, three channels
The same Convex RAG namespace serves the operator dashboard, the embeddable widget, and the Vapi voice agent. Update once; every channel reflects it on the next retrieval.
The 1-line embed
A tiny Vite-built loader mounts an isolated iframe and hands off to the full Next.js widget. Host pages never share React, CSS, or globals with Suprix.
Operator dashboard with AI assist
Live conversations grouped by status. Operators can take over from the AI at any point, and a one-click message-enhancement action polishes typed replies without changing meaning.
Plugin system with per-org secrets
Adding Stripe, Slack, or HubSpot is a new plugin row and a thin adapter — no architectural change. Credentials live in a per-org secret store, not a shared vault.
Production observability
Sentry wired into client, server, and edge runtimes. Real errors, real source maps, real alerts — not a "we'll add telemetry later" promise.
Inside the build.
Outcomes that shipped.
Shipped a production multi-tenant AI support platform on a small team without an infra team. Compliance review with the toughest design partner closed in 40 days against three prior vendors killed at procurement. Zero cross-tenant retrieval incidents in 6 months. Multiple design partners cancelled planned support-engineering hires after Suprix went live.
What we took with us.
- 01Picking Convex was a force multiplier — namespace-isolated retrieval was a storage primitive, not a code-review item.
- 02Designing voice as a plugin (not a feature) cost a week and bought permanent optionality.
- 03Refusing to ever have a "chat KB" and a separate "voice KB" was the single most important product decision.
Want something like this?
The tiers below are how we'd quote a build in the same space.
Have a build that needs this level of thinking?
Free 30-min audit. We'll tell you what to build, what it'd cost, and whether we're the right shop.