Automate New G2/Capterra Review → Slack Alert + HubSpot Note + Sheets Log in n8n — Step by Step

Every new review on G2 or Capterra is a signal — and most teams miss the ones that matter. A furious one-star review sits in an inbox nobody checks for six hours while the customer tweets about it. A

Automate New G2/Capterra Review → Slack Alert + HubSpot Note + Sheets Log in n8n — Step by Step

Every new review on G2 or Capterra is a signal — and most teams miss the ones that matter. A furious one-star review sits in an inbox nobody checks for six hours while the customer tweets about it. A glowing five-star from an enterprise buyer never reaches the AE who could turn it into an expansion conversation. The reviews land, but nobody routes them. This guide shows you how to build an n8n workflow that watches for new G2 and Capterra reviews and instantly fans them out: bad reviews trigger an urgent Slack alert, good ones go to a wins channel, every review gets logged to a HubSpot contact note and a Google Sheet — all without a human touching anything.

The problem: reviews are asynchronous, but your response window isn't

Review sites are a channel your team doesn't control and rarely watches in real time. The damage from a bad review compounds with every hour it sits unaddressed — prospects reading it, support unaware, the reviewer feeling ignored. Meanwhile positive reviews, which are pure sales and marketing fuel, evaporate into a dashboard nobody logs into.

The manual "fix" is worse than nothing: someone is supposed to check G2 and Capterra a few times a week, screenshot the good ones for the marketing channel, ping an account owner about the angry ones, and paste the context into your CRM. In practice this happens for maybe one review in five, on a delay measured in days, and the log is incomplete. You end up with no reliable record of what customers actually say, no SLA on negative feedback, and no systematic way to feed reviews back into sales conversations.

The core issue is routing. A review is a piece of structured data — a rating, a title, a body, a reviewer, a source. The moment it exists, a machine should decide where it goes based on that rating and deliver it to the right place. That's exactly what n8n is built for.

The solution: one workflow, sentiment-based routing

The workflow follows a simple shape. A trigger detects a new review. A normalization step flattens G2 and Capterra into one common structure. A branch splits on rating: anything at or below your threshold (say, 3 stars) is a "bad" review that needs urgency; anything above is a "win." Bad reviews hit an urgent Slack channel with an @here mention and a link to respond. Good reviews go to a celebratory wins channel. Regardless of sentiment, every review writes a note to the matching HubSpot contact or company and appends a row to a Google Sheet that becomes your permanent, searchable log.

The nodes you'll use: a Schedule Trigger (or Webhook if your source pushes), an HTTP Request node to pull reviews, a Code node to normalize, an IF node to route on rating, two Slack nodes, a HubSpot node, and a Google Sheets node. That's the entire machine — under a dozen nodes doing work no human should be doing manually.

Step-by-step setup in n8n

1. Trigger and fetch. G2 and Capterra don't hand out clean public review APIs to everyone, so most teams pull reviews one of three ways: the official G2 or Capterra/Gartner partner API if you have access, a review-aggregation service (Grade.us, ReviewTrackers) that exposes a webhook, or a polling HTTP Request against your available feed. Start with a Schedule Trigger set to every 15–30 minutes. Add an HTTP Request node pointing at your review endpoint, with auth stored in n8n Credentials (never hardcoded in the URL).

2. Deduplicate. Polling means you'll see the same reviews repeatedly. Add a Code node or use the Remove Duplicates node keyed on a stable review_id. A robust pattern: keep a "seen IDs" tab in your Google Sheet, read it at the top of the run, and filter out anything already logged. This is the single most important step — skip it and you'll spam Slack with duplicate alerts on every poll.

3. Normalize. Drop in a Code node that maps both sources into one object. G2 might call it star_rating and Capterra overall_rating; you want one field. Output something like:

return items.map(i => ({ json: { review_id: i.json.id, source: i.json.source, rating: Number(i.json.rating), title: i.json.title, body: i.json.comment, reviewer: i.json.author_name, company: i.json.author_company, url: i.json.permalink, date: i.json.published_at } }));

4. Route on rating. Add an IF node. Condition: {{ $json.rating }} is less than or equal to 3. The true branch is your bad-review path; false is the wins path. Keep the threshold in a single Set node at the top of the workflow so you can tune it in one place.

5. Bad-review Slack alert. On the true branch, add a Slack node (Send Message). Point it at #reviews-urgent, set the message to include <!here>, the star count, the reviewer, the company, and the full body plus a direct link to respond. Use a formatted block so it's scannable: a red-flag emoji, the rating, then the quote. This is the node that turns a six-hour blind spot into a two-minute response.

6. Good-review Slack post. On the false branch, a second Slack node targeting #wins — no @here, a celebratory tone, the quote, and the link so marketing can grab the testimonial.

7. HubSpot note (both branches). After each Slack node, merge back and add a HubSpot node. Use the Contact or Company resource, "Create/Update," and attach an engagement/note containing the review text, rating, and source. Match on the reviewer's company domain or email so the note lands on the right record — future you, reading a deal, will see "left a 2-star G2 review on March 12" in context. If no matching record exists, route to a fallback that creates a lightweight contact so nothing is lost.

8. Google Sheets log. Finally, a Google Sheets node (Append Row) writing every normalized field to a master tab: date, source, rating, reviewer, company, title, body, url, and the Slack/HubSpot status. This sheet is your dedup source, your reporting layer, and your audit trail. Add a formula column for weekly average rating and you have a review-health dashboard for free.

Wire the branches back together with a Merge node before HubSpot and Sheets so both paths share the same logging logic — you write the routing once and the record-keeping once.

Benefits: what changes the day this goes live

Response time collapses. Negative reviews get a human on them in minutes, not hours or days. That alone changes reviewer sentiment — people update or soften reviews when they feel heard fast.

Positive reviews become assets. Marketing sees every win in real time and can request testimonials, quote them on the site, or feed them to sales — instead of them dying in a dashboard.

Your CRM gets context. Every rep opening a HubSpot record sees the customer's public voice attached. That's gold for renewals, escalations, and expansion timing.

You get a real dataset. The Sheet is a complete, structured history of what customers say — searchable, chartable, and permanent. Rating trends become a leading indicator you can actually act on.

Zero ongoing labor. Nobody checks review sites manually again. The workflow runs on a schedule, forever, for the cost of an n8n instance you probably already run.

Common pitfalls (and how to avoid them)

No deduplication = alert spam. The number-one failure. Always key dedup on a stable review ID and persist seen IDs. Test by running the workflow twice manually — the second run should route zero items.

Rating scale mismatches. G2 and Capterra can use different scales or return ratings as strings ("4.5") or half-stars. Cast to a number in the normalize step and decide how half-stars fall against your threshold before you route on them.

Slack rate limits and formatting. If a poll surfaces a burst of reviews, you can hit Slack limits. Add a small Wait or batch with the Loop Over Items node. Use Slack's block formatting rather than dumping raw text, and escape the <!here> mention correctly or it posts as literal text.

HubSpot matching failures. Reviews often lack an email, so contact matching fails silently and notes vanish. Match on company domain, and always have a fallback path that creates or logs unmatched reviews instead of dropping them.

Credentials in plain URLs. Never paste API keys into the HTTP Request URL — use n8n Credentials so keys aren't exposed in execution logs shared with your team.

No error handling. Attach an Error Trigger workflow that pings a Slack ops channel if a run fails. A silent broken workflow is worse than no workflow — you'll think reviews are covered when they're not.

Build it once, test the dedup and routing carefully, and this becomes infrastructure you forget is running — until the day it catches a two-star review in three minutes and saves the account.

New G2/Capterra Review → Slack Alert + HubSpot Note + Sheets Log
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O New G2/Capterra Review → Slack Alert + HubSpot Note + Sheets Log e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.

Instalar por $79 →