Skip to content
Grocery retail chain, EU & US (under NDA) · Retail · Customer experience

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.

Voice-of-customer dashboard with weekly sentiment, negative topic breakdown and a table of escalated reviews
Overview: KPIs, sentiment trend, negative topics and the last 24 hours of escalations with acknowledgement status.

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.

Manual, sampled monitoring vs a classified stream
CriterionManual monitoringAI-classified stream (this project)
CoverageSample of sources and storesAll 12 sources, all stores
Reaction to a critical review52 h median2.4 h median after three months
LanguagesWhoever is on shiftOne multilingual model
TaxonomyFree-text notesCompany taxonomy, 91% agreement with humans
Who actsMarketing reads a digestStore and regional manager get the alert
AnalyticsMonthly reportLive per-store dashboard
Manual, sampled monitoring vs a classified stream

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.

Median reaction time to a critical review
BeforeBefore: 52 h52 hPilot month 1Pilot month 1: 9 h9 hMonth 2Month 2: 4.1 h4.1 hMonth 3Month 3: 2.4 h2.4 h
Data table
Hours
Before52 h
Pilot month 19 h
Month 24.1 h
Month 32.4 h
Negative reviews by topic, share of all negative
Queues at checkoutQueues at checkout: 31%31%Out of stockOut of stock: 24%24%Staff attitudeStaff attitude: 17%17%CleanlinessCleanliness: 12%12%Price labelsPrice labels: 9%9%OtherOther: 7%7%

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 checkout31%
Out of stock24%
Staff attitude17%
Cleanliness12%
Price labels9%
Other7%

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.

Diagram of the feedback pipeline and a bar chart of reaction time falling from 52 hours to 2.4 hours
Pipeline and the reaction-time result over three months.

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