Automatically analyzing customer reviews with n8n and AI (Google, Trustpilot, internal surveys)
Published 21 July 2026 · 6 min read
An SMB getting fifty reviews a month across Google, Trustpilot, and its own internal satisfaction forms rarely ends up reading all of them with equal attention. Five-star reviews pile up unnoticed, and a one-star review posted on a Friday evening can sit unanswered until the following Monday — long enough for the dissatisfaction to spread. A pipeline in n8n that collects, classifies, and alerts automatically changes that dynamic: every negative review surfaces within minutes, and recurring patterns (a shipping delay that keeps coming up, a strength worth highlighting) become visible without manual review.
Why automate review analysis instead of doing it by hand
Reading one review takes thirty seconds. The problem isn't the per-review time, it's the cumulative volume and the reaction lag:
- An unaddressed negative review can spiral into a public back-and-forth where the customer replies to their own dissatisfaction, amplifying the problem's visibility;
- Recurring themes (delivery delays, quality issues on a specific product, a service pain point) stay invisible without systematic aggregation — nobody manually tallies "how many reviews mentioned delays this month";
- Replying to every review with a consistent, professional tone takes writing time few teams have to spare on an ongoing basis.
An automated pipeline doesn't replace human judgment on the final reply, but it eliminates the sorting and summarizing work that today delays the detection of what actually matters.
Step 1 — Collect reviews from multiple sources
Google Business Profile exposes an official API (the Google Business Profile API) for pulling an establishment's reviews, authenticated with Google OAuth2. In n8n, an HTTP Request node run on a Schedule trigger (every six hours, say) queries the accounts/{accountId}/locations/{locationId}/reviews endpoint, with the OAuth2 token handled through a Google credential configured once.
Trustpilot offers a Business API available on commercial request, which remains the recommended route for reliable, sustainable access — directly scraping the site is explicitly prohibited by Trustpilot's terms of service and risks an IP block at sustained volume. For businesses without API access, a regular manual CSV export, imported into n8n through a Read Binary File node or a form-triggered upload, is a workable stopgap while API access is being set up.
Internal reviews (post-purchase satisfaction forms, NPS surveys) most often arrive through an n8n Webhook, exactly like in the AI-driven lead qualification pipeline: the form posts straight to n8n on submission, no intermediate step.
Step 2 — Sentiment analysis and theme extraction with AI
Once a review is collected and normalized (text, rating, source, date), an AI Agent node or a plain LLM chain with structured output classifies it against a predefined schema instead of returning free text:
{
"sentiment": "positive | negative | neutral",
"confidence": 0.0,
"themes": ["price", "delivery", "quality", "customer service"],
"summary": "One-sentence summary of the review's main point"
}
The system prompt should explicitly list the possible themes (price, delivery, quality, customer service, ease of use — tailored to your business) rather than letting the model freely invent categories; otherwise you end up with dozens of near-duplicate labels that can't be aggregated afterward. The confidence field lets you isolate ambiguous cases (ironic, very short, or mixed-sentiment reviews) and route them to human review below a given threshold, via an IF node.
The underlying idea isn't new. As far back as 2004, a foundational study by Hu and Liu (KDD 2004) laid the groundwork for automated customer review analysis, showing it was possible to automatically extract the product features mentioned in a review and determine whether the opinion expressed about each one was positive or negative — exactly the mechanism an AI node in n8n replicates today, in a far simpler setup than back then, when it required hand-built lexicons and linguistic rules.
Step 3 — Aggregate into Supabase or Google Sheets for a dashboard
Each classified review gets written to a structured table rather than sitting in n8n's execution logs. A typical Supabase table:
| Column | Type | Example |
|---|---|---|
source |
text | google, trustpilot, internal |
rating |
int | 2 |
sentiment |
text | negative |
themes |
text[] | {delivery, customer service} |
summary |
text | "Delivery 5 days late, no follow-up" |
review_date |
timestamp | 2026-07-18T14:32:00Z |
n8n's Supabase node (Insert operation) writes each row after classification. For a team that prefers a dashboard without a dedicated BI tool, Google Sheets via the native node works just as well at moderate volume, with Sheets' built-in pivot tables to chart themes by month. See our n8n-Supabase connection guide for initial credential setup and a recommended table structure.
Once data is aggregated, a second scheduled workflow can generate a weekly trend summary — the same logic covered in our article on generating AI summary reports, applied here to reviews instead of an audit.
Step 4 — Immediate Slack alert on very negative reviews
A review rated 1 or 2 out of 5 deserves a fast reaction, not a discovery buried in a weekly report. Right after the database insert, an IF node checks the condition {{ $json.rating <= 2 }} and, if true, triggers a Slack node posting to a dedicated channel:
🔴 Negative review detected ({{ $json.source }})
Rating: {{ $json.rating }}/5
Themes: {{ $json.themes.join(", ") }}
Summary: {{ $json.summary }}
Link: {{ $json.review_url }}
This alert lets support or the founder reach out to the customer within the hour instead of within the week — often the single factor that determines whether an unhappy customer turns into a corrected review or one that stays online indefinitely.
Step 5 — Generating suggested replies
The same AI node that classifies the review can, in the same call or a separate one, generate a suggested reply with a professional, empathetic tone, informed by the identified theme and the rating. That reply should show up in the Slack message as a draft, not as an automatic publication: posting a badly calibrated response to a public, permanent channel like Google or Trustpilot carries a risk out of proportion with the time saved. A human approves or edits the draft before publishing, keeping control over the final tone while eliminating the blank-page problem of writing from scratch.
Common pitfalls
- Scraping Trustpilot without an API: violates the terms of service and risks an IP block, especially at sustained volume; prefer the official API or a manual export.
- Letting the model invent free-form themes: without a closed list in the prompt, themes multiply ("delivery delay," "slow shipping," "late" as three separate categories) and aggregation loses all meaning.
- Publishing a generated reply without review: a poorly calibrated tone on a public review stays visible indefinitely; keep a human validation step.
- Ignoring the Google Business Profile API's rate limits: as with any high-traffic third-party API, pacing calls with Loop Over Items and Wait avoids 429 errors on a large initial import — see our article on AI API rate limits in n8n.
Wrapping up
A customer review analysis pipeline in n8n breaks down into five pieces: multi-source collection (Google Business Profile, Trustpilot, internal forms), AI classification with structured output for sentiment and themes, aggregation into Supabase or Sheets, immediate Slack alerts on low ratings, and suggested-reply generation. None of these pieces is complex on its own; what turns a scattered stream of reviews into an actionable daily signal is chaining them together automatically. The Inbox AI Pack uses the same AI classification-with-structured-output architecture to triage incoming emails — a foundation that transfers directly to this use case.
FAQ
Frequently asked questions
Can I scrape Trustpilot directly instead of using its API?
Not recommended: Trustpilot's terms of service explicitly prohibit scraping its content, and an IP scraping at volume risks getting blocked. The Trustpilot Business API (paid, available on request) or a regular manual export remain the safer routes for a sustainable automation.
How much does AI sentiment analysis cost at meaningful review volume?
With a cost-efficient model (GPT-4o mini, Claude Haiku), classifying a few-sentence review costs a fraction of a cent. Across 1,000 reviews a month, the bill lands somewhere between a few tens of cents and a few euros depending on the model — easily offset by the time saved not reading every review by hand.
How do I stop the AI node from misclassifying an ironic or ambiguous review?
A prompt that explicitly asks for a confidence score alongside the sentiment helps isolate ambiguous cases: below a given confidence threshold, route the review to human review instead of blindly trusting the model's output. It's rare but happens on very short or sarcastic reviews.
Should replies be posted to reviews automatically, without human review?
No, that's not recommended for public reviews. The AI node generates a suggested reply, but auto-publishing without review risks a badly calibrated tone or a factually wrong response on a public, permanent channel. A draft in Slack or a validation email before publishing is the better practice.
Bundle FlowKit Complet
€269