G2 Negative Review Monitor avatar

G2 Negative Review Monitor

Pricing

from $7.50 / 1,000 product checks

Go to Apify Store
G2 Negative Review Monitor

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

Automation Tech

Maintained by Community

Actor 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

  1. Loads review-state from the persistent named Key-Value Store g2-negative-review-monitor-state.
  2. Requests G2's verified public RSS endpoint: https://www.g2.com/products/<slug>/reviews.rss.
  3. Defensively parses, normalizes, and locally filters reviews to the requested whole-star ratings.
  4. Uses the G2 RSS guid (or review URL) as the stable ID and emits only unseen reviews.
  5. 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.
  6. Charges one product-check pay-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 install
npm test
npm run build
ACTOR_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.