1. Opening Problem Statement
Meet Sarah, a Product Manager at a SaaS company competing with big players like Zendesk and Intercom. Every morning, Sarah spends hours manually checking G2 review pages to see if any new customer reviews have been posted about her company and its competitors. She then copies the content into spreadsheets and alerts her team via Slack. This process is tedious, error-prone, and often causes delayed responses to critical customer feedback—resulting in missed opportunities and inefficient team collaboration.
Sarah’s company loses valuable time daily that could be spent improving their product based on timely insights from reviews. What if she could automate this entire process? That’s where this n8n workflow steps in.
2. What This Automation Does
When you run this workflow, it automatically fetches the latest reviews for multiple competitors from G2, processes new reviews, and delivers actionable notifications and records. Specifically, it:
- Monitors specified competitor G2 review pages daily at 8 AM using a schedule trigger.
- Scrapes review sections from G2 product pages using the ScrapingBee API, bypassing roadblocks like proxies.
- Extracts and converts review content into readable Markdown format for cleaner notifications and records.
- Checks against past recorded reviews in Google Sheets to filter only new reviews, avoiding duplicates.
- Appends new reviews with details like date, rating, user profile, and review URL to a Google Sheet for tracking and analysis.
- Sends Slack notifications to alert teams instantly about new reviews with useful links and formatted content.
By automating these steps, you save hours of manual review monitoring, reduce human error, and improve responsiveness to customer sentiment.
3. Prerequisites ⚙️
- n8n account for workflow automation (self-hosting possible via Hostinger link)
- Slack workspace and channel (e.g.,
g2_reviews) where alerts will be posted 💬 - Google Sheets access with an existing spreadsheet ready to log reviews 📊
- ScrapingBee API account for web scraping with proxy and stealth support 🔑
4. Step-by-Step Guide
Step 1: Setup Competitors List in Code Node
Navigate to the Add your competitors here Code node. Replace the sample competitors with your target product slugs from G2, for example:
return [
{"competitor":"zendesk"},
{"competitor":"intercom"},
{"competitor":"dixa"}
]This array determines which competitor review pages will be scraped. Confirm by clicking Execute node to see the list output.
Common Mistake: Ensure competitors are exactly the URL slugs used on G2 (all lowercase, no spaces).
Step 2: Configure ScrapingBee API Key
Open the Sticky Note named “Add your API key here” for instructions. Sign up at ScrapingBee and copy your API key.
In the Get G2 data with ScrapingBee HTTP Request node, replace YOUR_API_KEY in the api_key query parameter with your actual API key.
Visual: You should see your API key in the node’s parameters, confirming the connection.
Common Mistake: Leaving the default placeholder will cause the request to fail.
Step 3: Set the Trigger Schedule
In the Execute workflow every day Schedule Trigger node, the workflow is set to run at 8:00 AM daily. Adjust the hour if desired by clicking the node and modifying the triggerAtHour field.
After scheduling, the workflow will automatically start fetching new reviews on the set interval.
Step 4: Retrieve Past Reviews from Google Sheets
Configure the Get all past reviews Google Sheets node. Connect your Google sheets account and specify the spreadsheet URL that stores your past reviews. The node reads previous review URLs for duplicate checking.
Expected outcome: Node should retrieve all existing review data without errors.
Common Mistake: Ensure your Sheets document has a sheet named exactly “Sheet1” or modify the node’s sheetName.
Step 5: Send API Requests to ScrapingBee
The Get G2 data with ScrapingBee HTTP Request node calls the ScrapingBee API, fetching each competitor’s G2 review page HTML with batching enabled (batch size of 3 for the three competitors).
URL example: https://www.g2.com/products/zendesk/reviews?utf8=✓&order=most_recent
This ensures you retrieve the latest reviews ordered by recency for each competitor.
Step 6: Extract Reviews Section HTML
The Get review section HTML HTML Extract node uses the CSS selector div.paper.paper--white.paper--box.mb-2.position-relative.border-bottom to isolate individual review blocks as raw HTML snippets for each competitor’s page.
Step 7: Iterate Through Each Review
The Iterate on reviews Item Lists node splits the review blocks array, processing each review independently downstream.
Step 8: Extract Structured Data per Review
The next Extract structured data HTML Extract node pulls specific details per review:
date(fromdiv.d-f.mb-1)reviewHtml(full review content in HTML)user_profile(reviewer profile link)rating(star rating value)reviewUrl(direct URL to the review)
Step 9: Convert Review HTML to Markdown
The Convert Review HTML to Markdown Markdown node transforms the review HTML content into clean Markdown-formatted text for easier reading and Slack preview.
Step 10: Filter Only New Reviews
The Continue only if review is new Merge node performs a “keepNonMatches” join on reviewUrl against the historical reviews from the Google Sheet. This ensures only completely new reviews proceed further.
Step 11: Append New Reviews to Google Sheets
The Add new review to Google Sheets Google Sheets node appends new review data fields:
- Date
- Rating
- Markdown review text
- Review URL
- User profile link
This keeps a constantly updated record database for your team to track reviews over time remotely.
Step 12: Send Slack Notification for New Reviews
The last Send new review to Slack Slack node delivers a rich formatted message to the specified channel g2_reviews:
🚨 New review in G2
Rating: {{ rating }}
See user profile: {{ user_profile }}
See review: {{ reviewUrl }}
Review Content:
{{ review }}Team members can act quickly on new feedback without manual checking.
5. Customizations ✏️
Customize Competitors List: Add or remove competitors in the Add your competitors here Code node as needed.
Change Slack Channel: In the Send new review to Slack node, adjust the channelId to your desired Slack channel where alerts should post.
Adjust Schedule Time: Modify the hour in the Execute workflow every day Schedule Trigger node to run the workflow at a different time.
Expand Extracted Info: Update the CSS selectors in Extract structured data to gather more review details if G2 changes their HTML layout.
6. Troubleshooting 🔧
Problem: “HTTP Request failed with 403 or no review data”
Cause: Invalid or missing ScrapingBee API key, or G2 blocking crawler.
Solution: Check your API key in the HTTP node. Confirm proxy settings enabled and test API connectivity in ScrapingBee dashboard.
Problem: “Google Sheets node not reading data correctly”
Cause: Incorrect spreadsheet URL or sheet name mismatch.
Solution: Verify sheet URL and sheetName input in the Google Sheets node matches your actual sheet and tab name.
7. Pre-Production Checklist ✅
- Verify your ScrapingBee API key is valid and active.
- Confirm Google Sheets document has a “Sheet1” tab or adjust node accordingly.
- Ensure Slack channel
g2_reviewsexists and your bot has permissions. - Test the workflow manually and check for new reviews saved and posted correctly.
- Backup your Google Sheet data regularly in case of accidental overwrites.
8. Deployment Guide
Activate the workflow by enabling it in n8n. Set to active to trigger automatically daily at the scheduled time. Monitor logs for errors and review Slack and Google Sheets outputs periodically.
If you self-host n8n, ensure your server has stable internet access and API credentials are stored securely under credentials settings.
10. Conclusion
By completing this tutorial, you have built a powerful automation that monitors your competitors’ G2 reviews effortlessly. You save several hours each week by automating data collection, reducing manual errors, and enhancing team responsiveness with timely Slack alerts.
Next, you could extend this automation to:
- Track your own G2 product reviews for customer service improvement.
- Analyze review sentiment using AI nodes to prioritize feature requests.
- Integrate other channels like email notifications or dashboards for comprehensive insights.
With this solid foundation, you are now ready to keep a keen eye on your competitors and adapt faster to user feedback.