---
title: "Monitor Product Reviews & Auto-Summarize Sentiment in n8n"
description: "Build an n8n workflow that monitors product reviews, runs AI sentiment analysis, and alerts you to negative feedback automatically — no API key needed."
canonical: https://agentroost.app/en/blog/review-monitoring-sentiment-n8n
date: 2026-06-03T12:00:00Z
---

[Canonical URL](https://agentroost.app/en/blog/review-monitoring-sentiment-n8n)

# Monitor Product Reviews and Auto-Summarize Sentiment in n8n

A single 1-star review with "terrible experience, never again" can sit unanswered for a week while you're busy shipping. By the time you notice it, three more have piled on. The fix is a scheduled n8n workflow that collects reviews, scores sentiment, and alerts the right person before a bad thread turns into a public incident.

This guide shows you exactly how to build it — nodes, configuration, and a real example JSON prompt — and how to run it continuously on your own n8n instance without managing a server.

---

## What the Workflow Does

At a high level:

1. **Schedule Trigger** wakes the workflow every hour (or every 15 minutes during business hours).
2. **HTTP Request** nodes fetch raw review data from one or more sources (Google Business API, Trustpilot, App Store Connect, Shopify reviews, a custom endpoint — your choice).
3. **Split in Batches** fans out the review list so each item is processed individually.
4. **IF** checks whether the review has already been processed (using a timestamp or review ID stored in a Google Sheet or simple database node) to avoid double-alerting.
5. **AI/LLM node** sends the review text to an LLM that scores sentiment (positive / neutral / negative) and extracts up to three themes (e.g., "shipping delay", "wrong item", "great packaging").
6. **Switch** branches on the sentiment score: negative reviews go to a Slack/email alert; positive ones get queued for a weekly "wins" digest.
7. **Set** normalises the output into a flat object before writing to your log sheet.

The result: your team sees negative reviews within minutes of them appearing, with the key complaint theme already extracted — no manual reading required.

---

## Building It Step by Step

### 1. Schedule Trigger

Drop in a **Schedule Trigger** node. Set the interval to `Every Hour` for most shops. If you're running a high-volume SaaS or a sale event, switch to `Every 15 Minutes` — n8n handles the polling, and the AI node only runs when there is actually something new to score.

```json
{
  "rule": {
    "interval": [{ "field": "hours", "hoursInterval": 1 }]
  }
}
```

### 2. Fetch Reviews via HTTP Request

Add an **HTTP Request** node for each source. For a typical Trustpilot integration you would target their Business API:

```
GET https://api.trustpilot.com/v1/business-units/<id>/reviews
Headers:
  Authorization: Bearer {{ $env.TRUSTPILOT_TOKEN }}
Query:
  orderBy: createdat.desc
  perPage: 50
```

For Google Business Profile reviews (via the My Business API), the URL pattern is:

```
GET https://mybusiness.googleapis.com/v4/accounts/<account>/locations/<location>/reviews
```

Both return a JSON array of review objects. The fields you need are: `reviewId` (or equivalent), `starRating`, `comment`, `createTime`.

**Tip:** If you're pulling from Shopify's Product Reviews API or a WooCommerce endpoint, the field names differ (`rating` vs `starRating`, `body` vs `comment`). Use a **Set** node immediately after the HTTP Request to normalise everything into a consistent schema:

```json
{
  "reviewId":    "{{ $json.id }}",
  "rating":      "{{ $json.starRating }}",
  "reviewText":  "{{ $json.comment }}",
  "createdAt":   "{{ $json.createTime }}"
}
```

### 3. Deduplication with Google Sheets (or Postgres)

Add a **Google Sheets** node (or a **Postgres** / **MySQL** node if you have a database handy) in "Read" mode. Pull the list of already-processed `reviewId` values. Then add an **IF** node that passes a review through only when its `reviewId` is not in that list.

After processing, write the new `reviewId` back to the sheet with another Google Sheets node in "Append" mode. This simple pattern keeps the workflow idempotent across every scheduled run.

### 4. AI Sentiment + Theme Extraction

This is where the real value lives. Add the **AI/LLM** node (the "Basic LLM Chain" or "AI Agent" node in n8n's AI section). Set the model to whatever you prefer — GPT-4o-mini is fast and cheap for this task, but any capable model works.

Use a System Message like:

```
You are a customer-review analyst. Given a product review, return ONLY valid JSON with:
- sentiment: "positive", "neutral", or "negative"
- score: a number from 1 (very negative) to 5 (very positive)
- themes: an array of up to 3 short phrases (e.g., ["late delivery", "wrong size"])
- urgency: "low", "medium", or "high"

Do not include any explanation outside the JSON block.
```

And a User Message that passes the review text:

```
Review ({{ $json.rating }} stars): {{ $json.reviewText }}
```

The node returns structured JSON you can directly access in downstream nodes as `$json.sentiment`, `$json.themes`, `$json.urgency`.

### 5. Branch on Sentiment

Add a **Switch** node with three branches:

| Condition | Route |
|---|---|
| `$json.sentiment === "negative"` | Immediate Slack / email alert |
| `$json.sentiment === "positive"` | Append to weekly digest sheet |
| `$json.sentiment === "neutral"` | Log only, no alert |

For the **negative** branch, a **Slack** node (or **Send Email** node) with this message template surfaces the right information instantly:

```
*New negative review ({{ $json.rating }}★ — urgency: {{ $json.urgency }})*
Themes: {{ $json.themes.join(", ") }}

"{{ $json.reviewText }}"

Source: {{ $json.source }} | Created: {{ $json.createdAt }}
```

Now your support team has the complaint theme and urgency level before they even open the review platform.

### 6. Weekly Digest for Positive Reviews

For positive reviews, append the row to a Google Sheet. Add a second scheduled workflow (trigger: every Monday at 9 AM) that reads the week's positive rows, sends them to the LLM node with a prompt asking it to summarise common praise themes, and emails the digest to your product team.

Closing the loop this way means you act on negatives in real-time and harvest product intelligence from positives weekly — all automated.

---

## Pitfalls to Avoid

- **Rate limits:** Most review APIs cap requests per minute. Add a **Wait** node set to 1-2 seconds between batches if you're processing more than ~20 reviews at once.
- **LLM hallucinations on short reviews:** A review like "ok" gives the model little to work with. Add an **IF** node that skips AI analysis for reviews shorter than 10 words and labels them `neutral / low-urgency` by default.
- **API credential rotation:** Trustpilot and Google tokens expire. Store them in n8n's built-in **Credentials** manager (not hardcoded in nodes) so rotating them takes 30 seconds rather than hunting through every node.
- **Don't alert on every neutral review:** Teams stop reading alerts when too many are noise. The Switch node's neutral branch should log silently.

---

## Running This on AgentRoost

Building the workflow is one thing. Keeping it running 24/7 — with the LLM node actually calling an AI model — is another.

On a self-hosted n8n you need a server, SSL, persistent storage, and your own OpenAI/Anthropic API key billed separately. The AI cost is unpredictable and arrives as a surprise line item.

On AgentRoost you get **your own n8n instance** — your login, your workflows, your data, accessible at `https://<your-id>.agentroost.app` — and the AI nodes are already wired to included credits. You own the instance; AgentRoost handles the infrastructure so you don't have to.

**How to set it up:**

1. Sign up at agentroost.app (email/password, Google, Microsoft, or Discord).
2. Pick the **n8n** framework, give your instance a name.
3. Your private n8n editor opens in about 2 minutes at your public subdomain.
4. Build the workflow above. When you drop in the AI/LLM node and run it, it works — no API key, no billing dashboard, no surprise invoice.
5. Activate the workflow. The Schedule Trigger takes over; reviews are monitored around the clock.

Pricing starts at **$19.99/mo all-in**, which covers the compute, the included AI credits, HTTPS, and persistent workflow state. Hundreds of LLM models available, switch anytime. 14-day money-back guarantee, cancel whenever.

[Compare plans](/en/pricing) · [See the n8n framework](/en/agents/n8n)

---

## What You End Up With

A workflow that wakes up every hour, fetches fresh reviews across all your sources, skips anything already seen, runs AI sentiment scoring with theme extraction, and pings your team only when something actually needs attention — automatically, indefinitely, without you touching a server.

For e-commerce and SaaS teams that care about reputation and support response time, this is one of the highest-ROI automations you can ship in an afternoon.
