Trustpilot to Google Sheets, reviews summarized in Gmail
Review monitoring falls apart the moment it becomes “someone should check Trustpilot today.” A week later, you’re skimming dozens of comments, guessing what changed, and pasting highlights into an email that no one reads.
This Trustpilot review automation hits marketing managers first (brand perception moves fast), but customer experience leads and founders feel it too. You end up reacting late, because you don’t have a clean, consistent review history anywhere.
This workflow pulls reviews into Google Sheets, has AI summarize the patterns, and emails a tidy Gmail report you can forward to the team. You’ll see what it does, what you need, and how the pieces fit together.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Trustpilot to Google Sheets, reviews summarized in Gmail
flowchart LR
subgraph sg0["Start Review Collection Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Start Review Collection", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Review Source URL", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Review Collection Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Decodo Review Scraper", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Review Data Parser", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Enrich Review Data", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Review Analyzer", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Store Reviews in Database", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Read Aggregated Reviews", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Summary Agent", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Summary Analyzer", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Summary Parser", pos: "b", h: 48 }
n12@{ icon: "mdi:message-outline", form: "rounded", label: "Send error alert", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate URL Format", pos: "b", h: 48 }
n14@{ icon: "mdi:message-outline", form: "rounded", label: "Send Summary Report via Email", pos: "b", h: 48 }
n9 --> n14
n11 -.-> n9
n5 --> n7
n4 -.-> n2
n13 --> n2
n13 --> n12
n3 -.-> n2
n1 --> n13
n6 -.-> n2
n10 -.-> n9
n8 --> n9
n2 --> n5
n0 --> n1
n7 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n4,n9,n11 ai
class n6,n10 aiModel
class n13 decision
class n7,n8 database
Why This Matters: Reviews Don’t Become Insights on Their Own
Trustpilot reviews are “free research,” but only if you can actually use them. Manually collecting reviews is annoying enough; interpreting them consistently is worse. One person flags three angry comments and calls it a crisis. Someone else reads the same week and says everything is fine. Meanwhile, the real signal (shipping delays, a confusing feature, support wait times) gets buried under noise. And because there’s no reliable history, you can’t answer basic questions like “Is sentiment improving?” or “What’s driving the last 1-star spike?” without another round of scrolling.
It adds up fast. Here’s where it usually breaks down.
- You lose about 2 hours a week copying ratings, dates, and quotes into a spreadsheet or slide deck.
- Different people summarize differently, which means your “insights” change depending on who wrote the email.
- Teams stop looking at reviews because the update is inconsistent and hard to scan.
- When something goes wrong (bad URL, scraping fails), you only find out after someone asks, “Where’s the report?”
What You’ll Build: Automated Review Intelligence from Trustpilot to Email
This workflow turns Trustpilot (and other review pages you choose) into a repeatable intelligence loop. You kick it off with a manual run, and the workflow first validates that the review source URL is usable. If the link is wrong, it emails an error alert so you can fix it immediately instead of silently missing a week. When the URL checks out, an AI agent uses a Decodo scraping tool to collect the review content, then parses it into structured fields like rating, comment text, date, and location. Those rows get enriched with extra metadata and quality markers, then appended to Google Sheets so you build a clean review history over time. Finally, the workflow pulls the aggregated reviews back out, generates an AI summary of trends and recurring themes, and sends a Gmail report you can share as-is.
The workflow starts on demand, which is useful when you want a weekly report or you’re responding to a sudden spike in negative feedback. Scraping and parsing create a consistent “review dataset” in Google Sheets. Then AI turns that dataset into an executive-friendly summary delivered via Gmail.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you run a weekly reputation check and you normally scan about 50 recent Trustpilot reviews. Manually, it’s maybe 2 minutes per review to read, pull a quote, and categorize it, plus another 20 minutes to write an update email, so around 2 hours total. With this workflow, you start the run (about 2 minutes), wait for scraping and analysis (often 10–20 minutes in the background), and then you receive a Gmail summary that’s ready to forward. For most teams, that’s roughly 2 hours back every week, with cleaner trend tracking.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing review history and trends.
- Gmail to deliver summaries and error alerts.
- Decodo API key (get it from your Decodo dashboard).
- OpenAI API key (get it from the OpenAI API settings page).
Skill level: Intermediate. You won’t code, but you will connect credentials and map a few fields in Sheets and email.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
You manually start a run. This workflow is designed for on-demand reporting, so you can run it weekly, after a launch, or any time your team wants an updated read on sentiment.
The review source link gets validated. The workflow assigns the Trustpilot URL you want to monitor, then checks the format. If it fails validation, Gmail sends an error message so you can fix the input fast.
Scraping and structuring happens in the middle. An AI agent coordinates the Decodo scraper, then a structured output parser converts the raw page content into usable fields (ratings, comments, dates, locations). A quick “augment” step adds helpful metadata so rows stay consistent over time.
Storage and reporting are automatic. New reviews get appended to Google Sheets, aggregated reviews are pulled back for analysis, and a second AI agent plus an OpenAI chat model generates a clean summary. Gmail delivers the report to whoever needs it.
You can easily modify the review source URL to monitor a different Trustpilot page (or another supported review platform) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts manually so you can control when review intake runs.
- Add the Begin Review Intake node as your trigger.
- Keep the trigger settings as-is (no parameters required).
- Connect Begin Review Intake to Assign Review Source Link to follow the execution flow.
Step 2: Connect Google Sheets
These nodes store and read review data in your spreadsheet.
- Open Append Reviews to Sheet and set Operation to
append. - Set Document ID to
[YOUR_ID]and Sheet Name togid=0(Sheet1). - Credential Required: Connect your
googleSheetsOAuth2Apicredentials in Append Reviews to Sheet. - Open Retrieve Aggregated Reviews and set the same Document ID
[YOUR_ID]and Sheet Namegid=0. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials in Retrieve Aggregated Reviews.
Step 3: Set Up Review Intake and Validation
Define the review source URL and validate that it’s correctly formatted before scraping begins.
- In Assign Review Source Link, set URL to
https://www.trustpilot.com/review/football-mall.com. - In Validate Link Format, set the condition Left Value to
={{ $json.URL }}, Operation tocontains, and Right Value tohttp. - Ensure Assign Review Source Link connects to Validate Link Format, and that the true path continues to Review Gathering Agent.
http, Validate Link Format will route to the error alert instead of scraping reviews.Step 4: Set Up Review Gathering Agent
This agent scrapes reviews via Decodo and parses structured review data.
- In Review Gathering Agent, set Text to
=Use Decodo to collect reviews and ratings from URL URL: {{ $('Assign Review Source Link').item.json.URL }}. - Confirm Review Gathering Agent has Has Output Parser enabled.
- Open Decodo Scrape Tool and set URL to
={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}, Headless tofalse, and Markdown totrue. - Credential Required: Connect your
decodoApicredentials for Decodo Scrape Tool. This tool is attached to Review Gathering Agent, so manage credentials via the agent’s tool connection. - Open OpenAI Review Insights and set the model to
gpt-4.1-mini. - Credential Required: Connect your
openAiApicredentials in OpenAI Review Insights, which is the language model for Review Gathering Agent. - Open Review Data Extractor and confirm the JSON Schema Example matches your expected review structure.
- Note: Review Data Extractor is an AI output parser for Review Gathering Agent; no credentials are added to the parser itself.
Step 5: Configure Review Field Augmentation and Storage
Normalize the extracted fields and append them to your sheet.
- In Augment Review Fields, map fields using expressions:
- output.overall_rating →
={{ $json.output.overall_rating }} - output.total_reviews →
={{ $json.output.total_reviews }} - output.review_summary →
={{ $json.output.review_summary }} - output.detailed_reviews →
={{ $json.output.detailed_reviews }}
- output.overall_rating →
- In Append Reviews to Sheet, map columns to:
- total_reviews →
={{ $json.output.total_reviews }} - overall_rating →
={{ $json.output.overall_rating }} - review_summary →
={{ $json.output.review_summary }} - detailed_reviews →
={{ $json.output.detailed_reviews }}
- total_reviews →
- Ensure the flow follows Review Gathering Agent → Augment Review Fields → Append Reviews to Sheet.
Step 6: Configure Summary Insights and Email Delivery
Aggregate stored reviews, generate insights, and send a report.
- Confirm Append Reviews to Sheet connects to Retrieve Aggregated Reviews, then to Insights Summary Agent.
- In Insights Summary Agent, set Text to
=Summarize the reviews and provide key insights. Data: {{ $json.reviews }} Average Rating: {{ $json.average_rating }}. - Open OpenAI Summary Engine and set the model to
gpt-4o-mini. - Credential Required: Connect your
openAiApicredentials in OpenAI Summary Engine, which is the language model for Insights Summary Agent. - Open Summary Output Parser and confirm the JSON Schema Example is:
{ "summary": "string", "key_insights": ["string"] }. - Note: Summary Output Parser is an AI output parser for Insights Summary Agent; no credentials are added to the parser itself.
- In Email Summary Report, set Send To to
[YOUR_EMAIL], Subject toReport, and Message to={{ $json.output.summary }}. - Credential Required: Connect your
gmailOAuth2credentials in Email Summary Report.
Step 7: Add Error Handling
Invalid links trigger an email alert so you can intervene quickly.
- In Validate Link Format, ensure the false output is connected to Dispatch Error Alert.
- In Dispatch Error Alert, set Send To to
[YOUR_EMAIL], Subject toError in workflow, and Message toYour workflow has stopped working. - Credential Required: Connect your
gmailOAuth2credentials in Dispatch Error Alert.
Step 8: Test and Activate Your Workflow
Run a manual test to confirm the full execution flow works end-to-end.
- Click Execute Workflow on Begin Review Intake to run a manual test.
- Verify Append Reviews to Sheet writes a new row and Retrieve Aggregated Reviews returns data.
- Check that Email Summary Report sends a message with
={{ $json.output.summary }}populated. - If the URL is invalid, confirm Dispatch Error Alert sends the error email.
- When satisfied, toggle the workflow to Active for production use.
Troubleshooting Tips
- Google Sheets credentials can expire or need specific permissions. If things break, check the connected Google account access to the target spreadsheet (and sharing settings) first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Quick Answers
About 30 minutes if you already have API keys and a Google Sheet ready.
No. You’ll connect credentials and paste your Trustpilot URL into the workflow configuration.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage plus your Decodo scraping requests.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s straightforward. You can swap the review source by changing the URL set in the “Assign Review Source Link” step, and you can adjust what gets stored by editing the “Augment Review Fields” mapping. Many teams customize the summary prompt to match their KPI language (for example: shipping, refunds, onboarding, bugs). You can also change who receives the Gmail report, or send it to a shared inbox.
Usually it’s permissions or the wrong spreadsheet selection. Reconnect Google Sheets in n8n, confirm the connected account can edit the target file, and double-check the sheet tab name matches what the workflow expects. If you recently moved the sheet to a Shared Drive, access rules can change. Also watch for header mismatches if you edited columns after the first run.
If you self-host, volume is mostly limited by your server plus your Decodo and OpenAI rate limits.
Often, yes. This workflow leans on AI agents, structured parsing, and a scraping tool, which can get awkward (and pricey) in simpler automation tools once you add branching, retries, and data shaping. n8n also gives you the self-hosting option, so you can run more without paying per tiny step. Zapier or Make can still be fine for basic “new review → send message” alerts, but they’re not ideal for building a historical dataset plus a recurring insights report. If you’re torn, Talk to an automation expert and you’ll get a clear recommendation.
Once this is running, you stop “checking reviews” and start getting decisions-ready insights in your inbox. Set it up, keep the history, and let the workflow do the busywork.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.