Machinery distributor: a RAG assistant inside Bitrix24
A RAG assistant in Bitrix24 over 11,000 technical documents. Live since 05.2026.
- Scale
- 130 sales reps, sales across Russia
- Stage
- Phase 1
- Delivered
- May 2026
TL;DR. A RAG assistant inside the Bitrix24 messenger, sitting on 11,000 technical documents and 60 training videos (~120 GB). A rep gets the specs of a machine in seconds without leaving the conversation with the client.
Situation
The knowledge base held 11,000 PDF / DOCX / PPTX files and 60 training videos — around 120 GB. Finding the specs of one machine took a rep minutes: datasheets, catalogues and manuals were scattered across folders. New hires needed 3+ months to reach full productivity.
Task
- Answer any question about any machine model in seconds, inside the Bitrix24 messenger the reps already work in.
- Keep everything on servers in Russia — a requirement from the security team.
What we built
Architecture. Python and FastAPI on the backend. The LLM is Gemini 3 Flash over API, which balanced quality against cost at this request volume. Qdrant holds the vector index with hybrid search: semantic plus BM25. Celery runs the queues, and the whole thing sits in Docker on a Russian VPS.
Stages.
- Inventory and ingest the knowledge base — 11,000 documents and 60 videos, parsing tables and the structure of datasheets.
- Build the RAG pipeline with hybrid search (more on model numbers below).
- Integrate into the Bitrix24 messenger, so the rep queries the assistant in the same feed where they talk to the client.
- Pilot with a limited group of reps, then roll out.
Result
- The assistant answers reps in Bitrix24 in seconds instead of minutes.
- Onboarding got shorter: product questions get answered on the spot, without pulling a colleague away from their own work.
- In production since 05.2026, both phases delivered.
Key technical decisions
- Hybrid search. Purely semantic search handles machine model numbers badly — STD-120, TV-320. We added BM25 for exact matches on part numbers and indices. Without it, a rep asking for one model got a "similar" one back.
- Table parsing. Machine specifications usually live in awkward tables: several header levels, merged cells. We wrote separate parsing for them so the structure survived and the parameter-to-value link stayed intact.
FAQ
Does company data go to a cloud model API?
The knowledge base and the vector index sit on a VPS in Russia — that was the security team's requirement. What goes to the cloud model is the assembled prompt with the retrieved context, not the document base itself.
What happens when the documentation is updated?
Updated files get re-indexed, and the assistant answers from the new version. Skip that step and a RAG system starts confidently quoting outdated datasheets — the fastest way to lose the reps' trust in it.
Why does the assistant live in Bitrix24 rather than its own interface?
The rep already works in the Bitrix24 messenger, in the same place they message the client. A separate window means switching context for every question, and in practice people stop using it.
Can the assistant answer incorrectly?
It can, like any LLM-based system. Hybrid search (semantic plus BM25) cuts the main risk in this task: substituting a similar machine model for the one asked about. Every answer cites its source, so the rep can check the parameter in the original document.
What would come next
The natural continuation is adjacent processes: AI handling of inbound enquiries, automatic lead segmentation in the funnel, a service-desk assistant for routine operating questions.
If you have a similar problem — a technical knowledge base scattered across hundreds of files — let's talk it through in 30 minutes.
Stack
- Python
- FastAPI
- Gemini 3 Flash
- Qdrant
- Bitrix24
- Docker
- Celery