Google Reviews Monitor — Multi-Location Alerts & Reports
Pricing
from $15.00 / 1,000 location checkeds
Google Reviews Monitor — Multi-Location Alerts & Reports
Monitors Google Maps reviews across many business locations on a schedule, returning only new/changed reviews as JSON with negative-rating, rating-drop, and unanswered-review alerts to Slack or webhoo
Pricing
from $15.00 / 1,000 location checkeds
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Monitor Google Maps reviews across all your business locations on a schedule, and get only the new and changed reviews — with negative-review, rating-drop, and unanswered-review alerts pushed to Slack or any webhook.
Instead of opening every Google Business Profile by hand, you point this actor at your locations, run it on a schedule, and it returns just the reviews that are new or changed since the last run. It flags low-star reviews, detects rating drops, surfaces unanswered reviews, and (optionally) drafts replies with an AI model so your team can respond fast.
Why it wins
- Only-new deltas, not full re-dumps. With
onlyNewSinceLastRunon, each scheduled run emits only the reviews that appeared or changed since the previous run. State is persisted in the Key-Value Store between runs. - Multi-location by design. Pass a labeled list of locations (
clientName+googleMapsUrl) and every storefront is checked per run — built for franchises, chains, and agencies. - Alerts on what matters. New-review, negative-review (below a star threshold you set), rating-drop, and owner-reply (answered/unanswered) detection — pushed to Slack, Discord, or any webhook.
- AI runs only on new reviews. Summaries and reply drafts are generated only on NEW/changed reviews (never the whole history) to control cost. Bring your own Anthropic or OpenAI key.
- Drops into your stack. Plain JSON dataset output, optional rolled-up HTML report, and webhook delivery that auto-formats for Slack/Discord and works with Zapier/Make/n8n.
Capabilities
| Capability | Details |
|---|---|
| Locations per run | Many — one entry per Google Business location |
| Delta detection | New/changed reviews only, persisted across runs |
| Negative alerts | Flag reviews at/below a star threshold you choose |
| Rating-drop detection | Compares each location's overall rating vs. previous run |
| Owner replies | Detects unanswered → answered transitions |
| AI summaries / reply drafts | Optional, on new reviews only (BYO key) |
| Delivery | Slack/Discord/generic webhook + optional HTML report |
| Output | JSON dataset records |
A note on reliability. This actor scrapes Google Maps, which actively fights automated access. It's best-effort: most locations check cleanly, but a run can slow down or time out on heavy location lists or during anti-bot throttling. Start small, use RESIDENTIAL proxy, and schedule with headroom.
Input
| Field | Type | Description |
|---|---|---|
locations (required) | array | One entry per location: clientName (your label) + googleMapsUrl (public Maps URL). |
maxReviewsPerRun | integer | Newest reviews to load per location each run (default 50, 1–1000). |
onlyNewSinceLastRun | boolean | Emit only new/changed reviews since the last run (default true). |
alertOnNewReviews | boolean | Signal locations with any new review (default true). |
alertOnNegativeReviews | boolean | Flag new reviews at/below the negative threshold (default true). |
negativeRatingThreshold | integer | Stars at/below which a review is negative (default 3). |
trackOwnerReplies | boolean | Detect owner-reply (unanswered → answered) (default true). |
detectRatingDrops | boolean | Flag overall rating drops vs. previous run (default true). |
generateAiSummary | boolean | Per-location AI briefing of new reviews (default true). |
generateReplyDrafts | boolean | Draft public replies for urgent reviews (default false). |
aiModel | string | gpt-4o-mini (default), gpt-4.1-mini, gpt-4o, claude-haiku-4-5, claude-sonnet-4-6. |
anthropicApiKey | string (secret) | Optional BYO Anthropic key for Claude models. |
openaiApiKey | string (secret) | Optional BYO OpenAI key for GPT models. |
weeklyReport | boolean | Render a rolled-up multi-location HTML report (default true). |
webhookUrl | string | Optional Slack/Discord/generic webhook for change alerts. |
proxyConfiguration | object | Apify Proxy settings — RESIDENTIAL strongly recommended. |
Minimal input
{"locations": [{"clientName": "Acme Coffee — Downtown","googleMapsUrl": "https://www.google.com/maps/place/..."}],"maxReviewsPerRun": 50,"onlyNewSinceLastRun": true,"alertOnNegativeReviews": true,"negativeRatingThreshold": 3,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output
Each result is a review object in the run's dataset. A row looks roughly like:
{"clientName": "Acme Coffee — Downtown","googleMapsUrl": "https://www.google.com/maps/place/...","reviewId": "Ci9DQ...","rating": 2,"text": "Waited 25 minutes for a cold latte.","reviewerName": "Jamie R.","publishedAt": "2026-06-21T14:03:00Z","isNew": true,"isNegative": true,"ownerReplied": false,"ratingDropDetected": false,"aiSummary": "Recent reviews cite slow service at the downtown location.","replyDraft": "Hi Jamie, we're sorry about the wait..."}
Fields like aiSummary and replyDraft only appear when you enable the AI options. Alerts contain the same data, formatted for Slack/webhook delivery.
Connect it to Claude, Cursor, or ChatGPT (MCP)
This actor is available through the Apify MCP server, so an AI assistant can run it and read the results:
https://mcp.apify.com/?actors=dami_studio/google-reviews-monitor
Add it as a remote MCP server in your client, authorize with your Apify token (or OAuth), then ask "check my Google reviews for new negative ones since yesterday".
Pricing
Pay per event — you're charged only for what a run actually does (actor start, locations checked, reviews processed, AI summaries, and reports). See the Pricing tab for current per-event rates. AI features use your own Anthropic/OpenAI key, billed by that provider separately. Apify platform usage (compute, proxy) applies per your plan.
FAQ
How do I get only new reviews instead of the whole history?
Turn on onlyNewSinceLastRun. After a baseline first run, you'll receive only reviews new or changed since the previous run.
Can it alert me on Slack when a bad review comes in?
Yes. Set alertOnNegativeReviews, choose negativeRatingThreshold, and put a Slack incoming-webhook URL in webhookUrl. Discord and generic webhooks work too.
Do I need an API key for AI replies and summaries?
Only if you enable them. generateAiSummary and generateReplyDrafts use your own Anthropic or OpenAI key. Core monitoring and alerts work without any AI key.
How reliable is it?
Best-effort. Google Maps actively blocks scrapers, so large location lists can slow down or time out. Use RESIDENTIAL proxy, keep maxReviewsPerRun sensible, and schedule with headroom.