Voice of customer: 12 review sources, one AI-classified stream
Reviews from maps, app stores, social networks, the hotline and the in-store complaint book flow into one system that classifies each by topic, sentiment, store and severity, escalates critical ones to the responsible manager within minutes, and gives management a live, per-store picture instead of a monthly digest.
- Duration
- 3 months to production
- Published
- 26 August 2026
- Stack
- PythonTransformersPostgreSQLClickHouseLaravelVueTelegram Bot APIGoogle & Apple APIs
2.4 h
median reaction to a critical review, from 52 h
9.4k
reviews classified per week
12
sources in one stream
91%
topic-classification agreement with humans
What was the starting point?
The starting point was feedback for a chain of more than a thousand stores scattered across Google Maps, Apple Maps, two app stores, three social networks, marketplaces, a hotline and paper complaint books — monitored manually and by sampling. A critical review, such as expired goods on a shelf or a threat to complain to a regulator, was typically noticed days later, after it had collected views. That lag matters because reviews are read: BrightLocal’s consumer survey (2024) reports that a large majority of consumers read online reviews of local businesses, and PwC (2018) found that about a third of customers would stop dealing with a brand they loved after one bad experience.
The initiative scored 4/5 on data readiness in Glanit’s registry: history of reviews existed on the platforms, API access could be arranged, and the marketing director owned the outcome. It went into the second wave.
What problem had to be solved?
Three problems had to be solved at once: collect everything (each source has a different API, rate limit and data shape); understand each review in several languages — topic, sentiment, which store, how urgent; and act — get a critical signal to the right person on their phone, not into a weekly report. The classifier had to match the company’s own taxonomy of issues, not a generic sentiment score. And handling had to stay compliant: since the EU Omnibus Directive (2019) traders must not present reviews as verified without checks and must not solicit or commission fake ones, so the system reads and routes reviews but never generates them.
The management dashboard
Sentiment by week across the network, negative topics ranked, the anti-rating of stores and the escalation log — all from the same classified stream.
How was it built?
It was built as one stream: twelve connectors feed a fine-tuned multilingual transformer that assigns topic, sentiment, store and severity, and severity drives escalation to the responsible manager’s phone within minutes. Replies stay human — the system drafts, a person edits and posts through the platform’s own tools, in line with Google’s guidance that business owners reply to reviews from their Business Profile (2024).
- Connectors. Twelve source connectors with incremental sync, deduplication and retry; a manual upload path for the complaint book and hotline transcripts.
- Classification. The transformer assigns topic (assortment, prices, staff, cleanliness, queues, …), sentiment, the store (resolved from the platform listing or the text) and a severity level. Severity rules combine model output with keywords the legal team cares about.
- Escalation. Critical reviews go to Telegram to the store and regional manager, with an acknowledgement button; unacknowledged alerts escalate up the chain after a set time.
- Dashboard and replies. Trends by network, region and store; weekly emerging topics; an anti-rating of stores; draft replies for typical reviews.
Manual monitoring vs AI-classified stream: what does the team gain?
The table contrasts how the chain handled reviews before and after. Manual monitoring by sampling is cheap to start but cannot scale to a thousand stores and twelve sources, and the reaction time is measured in days. The classified stream costs a model and connectors up front and then reads everything, every hour, in every language.
| Criterion | Manual monitoring | AI-classified stream (this project) |
|---|---|---|
| Coverage | Sample of sources and stores | All 12 sources, all stores |
| Reaction to a critical review | 52 h median | 2.4 h median after three months |
| Languages | Whoever is on shift | One multilingual model |
| Taxonomy | Free-text notes | Company taxonomy, 91% agreement with humans |
| Who acts | Marketing reads a digest | Store and regional manager get the alert |
| Analytics | Monthly report | Live per-store dashboard |
Results
The number the business cared about most: how long a critical review sits before someone responsible knows about it. From more than two days to under three hours, measured as the median across the network.
Data table
| Hours | |
|---|---|
| Before | 52 h |
| Pilot month 1 | 9 h |
| Month 2 | 4.1 h |
| Month 3 | 2.4 h |
Queues and out-of-stock together are more than half of all negative feedback — the input for the next two initiatives.
Data table
| Share | |
|---|---|
| Queues at checkout | 31% |
| Out of stock | 24% |
| Staff attitude | 17% |
| Cleanliness | 12% |
| Price labels | 9% |
| Other | 7% |
From a review to a manager's phone
The pipeline is deliberately simple: connectors, one classifier, a rules layer for severity, a messenger for escalation, a dashboard for everything else.
Stack
The stack is Python collectors and a fine-tuned multilingual transformer for classification; PostgreSQL for reviews and decisions and ClickHouse for the analytics; a Laravel + Vue dashboard; the Telegram Bot API for escalation; and the Google Business Profile, Apple, app-store and social-network APIs as sources. Everything is deployed in the client’s own cloud account, so review texts and the store-level analytics stay under the client’s control.
Who is this approach for?
This approach is for any business with many locations or a large customer base — hospitality, pharmacy chains, banks with branch networks, marketplaces with seller reviews — where feedback lives in many places and is understood late. Gartner (2023) expected generative AI to be used by the majority of customer-service organisations within a few years, and McKinsey (2023) lists customer operations among the areas with the largest generative-AI value; the practical first step is usually the same as here: one classified stream and a fast escalation path.
Frequently asked questions
Services behind this case
Services
AI & Machine Learning
AI agents, LLM pipelines with retrieval, forecasting, computer vision and document AI — built into your product and measured by before/after numbers.
AI & Machine Learning
Free Open-Source AI Chatbot for Business Automation
Discover Glanit's open-source AI chatbot solution. Automate customer support 24/7 using Grok, Gemini, and ChatGPT. A self-hosted, free alternative to expensive SaaS tools—pay only for API usage.
AI & Machine Learning
How AI agents work: architecture of a production agent
An AI agent is not a chatbot with a longer prompt. It is a system: a model for reasoning wrapped in perception, memory, tools, orchestration and monitoring. We build agents for clients and for our own products — this is the architecture behind them.
More case studies
AI knowledge assistants for a 30 000-employee grocery chain
Three RAG assistants on one platform — for commercial staff, store directors (by voice, from the shop floor) and HR — answer questions from corporate regulations with a citation to the exact clause, or say honestly that they do not know — so staff stop phoning head office for routine questions.
- Retail
- Python
- LangChain
- PostgreSQL + pgvector
Document AI that reads 1 300 supplier invoices a day
Scans and photos of invoices, delivery notes and acts go through a multimodal model that extracts typed fields with a confidence score per field, reconciles them with the supplier and contract master data, and posts to the ERP. Only low-confidence documents reach a human — roughly one in nine.
- Retail · Finance
- Python
- PyTorch
- Multimodal LLM
Catalogue AI: classifying new SKUs and cleaning 182 000 product cards
Two models on the product catalogue of a grocery chain: one suggests the classification code and category for every new item with top-3 probabilities, the other finds duplicate product cards semantically. Category managers confirm with one click instead of searching the classifier by hand; every confirmation feeds back into training.
- Retail · Master data
- Python
- scikit-learn
- Sentence Transformers