Our own product
Zavaro Assistant
Ask Zavaro anything. Every answer shows where it came from.
Zaphrix
- Industry
- AI customer support
- Timeline
- 1 week
- Platforms
- Website chat widget · Admin console
- Year
- 2025–2026
Results
What changed, and how we measured it
8
Knowledge source types the team can add
Source types supported in the knowledge base
4
Knowledge chunks retrieved per answer by default
Retrieval setting used by default for every answer
0
Redeploys needed to update what it knows
Knowledge updates need no redeploy
90days
Default log retention, with no IP address stored
Default log retention policy
The story
Ask Zavaro anything. Every answer shows where it came from.
Challenge
- Pre-sales questions about pricing, security and setup needed instant answers, at any hour.
- General-purpose LLMs can invent prices, features or policies that don't exist.
- Answers had to stay in sync with live pricing and plan limits as they change.
- The team needed to update what the bot knows without waiting for an engineering release.
What we did
- Retrieve with hybrid search: Each question is matched with keyword ranking (BM25) and semantic embeddings, merged by reciprocal-rank fusion, with a keyword-only fallback if embeddings are unavailable.
- Ground the answer: The top matches are passed to the model as numbered sources. Source text is treated as reference data, never as instructions, which guards against prompt injection.
- Answer with citations: An OpenAI model answers only from those sources, cites them as chips under the reply, and streams the answer word by word.
- Learn from every conversation: Exchanges are logged for review. Unanswered or thumbs-down questions can be turned into a new Q&A entry in one click.
Result
- Visitors get instant, cited answers about Zavaro Reach at any hour, with no sign-up.
- Pricing answers always match the live plans, so the bot never quotes an outdated price.
- The team updates what the assistant knows in minutes from the admin console, with no engineering deploy.
Product
The system in use

How it works
Five steps, every day
Ask
A visitor asks a question in the website widget; short follow-ups include the previous turn.
Retrieve
Hybrid search (BM25 + OpenAI embeddings, fused by reciprocal-rank fusion) finds the best knowledge chunks.
Ground
The top chunks become numbered sources, treated strictly as reference data.
Answer
An OpenAI reasoning model answers only from those sources and streams the reply over Server-Sent Events.
Review
The exchange is logged so the team can spot gaps and add new knowledge from the admin console.
What we built
Instant answers, no sign-up
Public chat on the website with four starter questions, follow-up memory and answers that stream in as they are written.
Cited answers you can check
Every answer links back to the knowledge-base sources it came from, shown as numbered chips under the reply.
Live pricing, never out of date
Plan prices, limits and AI credit packs are read from Zavaro's live plans, so the bot never quotes a stale number.
Honest when it doesn't know
Off-topic or unanswerable questions get a clear "I don't have that information" and a path to the Zavaro team.
Visitor feedback
Visitors rate any answer thumbs up or down, and the team can filter conversations by unanswered or negative feedback.
Admin console, no deploys
Knowledge, a test playground, conversation review and settings in one place. Changes apply on the next message.
Built with
- OpenAI o3-mini
- text-embedding-3-small
- BM25
- Vector search
- Reciprocal-rank fusion
- Python
- FastAPI
- Server-Sent Events
- React
- TypeScript
- Vite
- PostgreSQL
- Vercel
Delivery
Knowledge base & ingestion (knowledge) → Hybrid search (retrieval) → Grounded, cited, streamed (answers) → Team console (admin) → Privacy & limits (safety). A team of 2–4 engineers.
Related
Related client cases
Free · 30 minutes · No sales deck
Want results like Zavaro Assistant?
Talk to a senior engineer, not a salesperson. You'll leave with three concrete next steps — whether or not you work with us.