G2 Negative Review Monitor
Pricing
from $7.50 / 1,000 product checks
G2 Negative Review Monitor
Automatically monitor G2 products for new 1–3 star reviews. Track multiple products, avoid duplicate results, and run on a schedule with pay-per-check pricing.
Pricing
from $7.50 / 1,000 product checks
Rating
0.0
(0)
Developer
Automation Tech
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Monitor G2 products for newly published 1–3 star reviews. This lightweight Apify Actor reads public G2 RSS, remembers already-seen review IDs in the Actor Key-Value Store, and writes only new matching reviews to the default Dataset.
It is designed for monitoring, not bulk historical extraction: run it on a schedule to catch the newest negative feedback without duplicate results.
Input
{"products": ["slack", "notion"],"ratings": ["1", "2", "3"]}
Each products value can be a bare slug (slack), a G2 review URL (https://www.g2.com/products/slack/reviews), or its RSS URL (https://www.g2.com/products/slack/reviews.rss). Non-G2 URLs are rejected and all accepted forms normalize to slack.
Output
Each new matching review contains product, reviewId, rating, title, review, reviewer, publishedAt, firstSeenAt, and sourceUrl.
How it works
- Loads
review-statefrom the persistent named Key-Value Storeg2-negative-review-monitor-state. - Requests G2's verified public RSS endpoint:
https://www.g2.com/products/<slug>/reviews.rss. - Defensively parses, normalizes, and locally filters reviews to the requested whole-star ratings.
- Uses the G2 RSS
guid(or review URL) as the stable ID and emits only unseen reviews. - Writes successful product state only after it has been fetched and parsed. State is bounded to the 250 most recent relevant review IDs per product. Invalid products are logged, not billed, and do not pollute state.
- Charges one
product-checkpay-per-event only for every successfully checked product. If the run charge limit is reached, it stops before checking another product. Configure its price in Apify Console before publishing.
G2 currently serves the same RSS document for tested rating=1, rating=2, and rating=3 query variants, rather than separate rating feeds. The Actor therefore uses the live verified feed and filters its normalized rating locally. It makes no browser or proxy requests.
Example schedules
Run every hour to alert downstream systems, or every day for a lightweight customer-feedback digest. On the first run, all currently visible matching 1–3-star reviews are emitted. On later runs, only review IDs that have not been seen in the retained per-product state are emitted; an unchanged second run emits zero records.
Local development
npm installnpm testnpm run buildACTOR_TEST_PAY_PER_EVENT=true npm start
For a live, non-persistent parser validation against Slack, Notion, and HubSpot Sales Hub:
$npm run test:smoke
Store copy
Title: G2 Negative Review Monitor
Short description: Get only newly published 1–3 star G2 reviews for one or more products, with persistent deduplication.
Practical API examples
The scripts in examples/ call the published Actor through the Apify REST API and print the default Dataset. They use Node’s built-in fetch, so they do not add a production dependency.
examples/monitor-negative-reviews.mjs— check one product and retain only newly seen 1–3-star review rows after the baseline.examples/monitor-multiple-products.mjs— check several public G2 product feeds in one bounded run.
Run an example with an environment variable; never hard-code an Apify token:
`APIFY_TOKEN=... node examples/monitor-negative-reviews.mjs slack``APIFY_TOKEN=... node examples/monitor-multiple-products.mjs`
Use a product slug, public G2 review URL, or public G2 review RSS URL. The first successful run establishes the visible-feed baseline; later runs emit only unseen matching review IDs.
The examples call the published Apify Actor. A matching public Example Task link will be added here only after its URL has been verified from Apify Console.