Google Reviews Monitor & AI Reply Drafts
Pricing
from $4.00 / 1,000 location checkeds
Google Reviews Monitor & AI Reply Drafts
Monitor new and edited Google Maps reviews across locations, detect urgent feedback, and create safe AI reply drafts for human approval.
Monitor new and edited Google Maps reviews across multiple locations, surface urgent customer feedback, and prepare safe AI-assisted reply drafts for human approval. The Actor keeps a persistent baseline between runs, so scheduled checks can emit only what changed instead of returning the same review history every time.
Unofficial tool: this Actor is not affiliated with, endorsed by, or sponsored by Google. Google Maps and Google Business Profile are trademarks of their respective owner.
What you can do
- Monitor up to 20 Google Maps locations in one run using direct place URLs or Google Place IDs.
- Detect newly published reviews, edited review content, and newly added owner responses.
- Flag low-star, unanswered, and keyword-matched reviews without relying on AI.
- Add structured AI triage: sentiment, urgency, topics, issue summary, and a suggested action.
- Generate multilingual reply drafts that remain drafts and are never posted automatically.
- Schedule recurring checks while preserving a separate baseline for each monitor.
- Send clean review and location-summary records to webhooks, Make, Zapier, n8n, Slack workflows, databases, or your own API.
- Continue processing healthy locations when another location cannot be resolved.
The Actor deliberately does not collect reviewer profile enrichment. It focuses on review content and operational follow-up, with stable review identifiers for downstream deduplication.
Common use cases
- Reputation monitoring for restaurants, hotels, clinics, shops, and local services.
- Multi-location customer experience dashboards.
- Fast escalation of one-, two-, or three-star reviews.
- Tracking whether an owner response was added after the original review.
- Drafting consistent replies in the customer's language.
- Feeding only new review events into a CRM, help desk, or notification workflow.
- Creating an auditable daily or hourly summary per location.
Quick start
- Add one or more direct Google Maps place URLs or Place IDs.
- Choose the first-run behavior:
- Baseline only stores the current window without emitting historical review rows.
- Emit recent reviews returns reviews inside the configured lookback window.
- Emit all fetched reviews returns the complete fetched window.
- Leave AI assistance off for deterministic monitoring, or provide an encrypted OpenAI API key and choose an AI mode.
- Run the Actor and inspect the Dataset,
SUMMARY, andALERTSoutputs. - Create an Apify schedule and reuse the same
monitorIdand location list.
For a low-noise recurring monitor, start with baselineOnly, then schedule the same input. Later runs emit new and changed reviews automatically.
Example input
{"places": [{"placeId": "ChIJ12345678901234567890123","label": "Downtown branch"},{"url": "https://www.google.com/maps/place/Example+Location","label": "Airport branch"}],"monitorId": "customer-experience-es","firstRunPolicy": "baselineOnly","maxReviewsPerPlace": 100,"alertAtOrBelowStars": 3,"onlyNew": true,"aiMode": "off"}
Use a real Google Maps place URL or Place ID in production. The illustrative Place ID above is not intended to resolve.
Input options
| Field | Purpose | Default |
|---|---|---|
places | One to 20 locations. Each item must contain exactly one url or placeId; label is optional. | Required |
monitorId | Stable identity for a recurring monitor. If omitted, it is derived from the normalized location list. | Derived |
firstRunPolicy | baselineOnly, emitRecent, or emitAllFetched. | emitRecent |
lookbackDays | First-run window used by emitRecent. | 30 |
maxReviewsPerPlace | Newest reviews requested per location, from 1 to 1,000. | 100 |
alertAtOrBelowStars | Deterministic low-rating threshold. | 3 |
includeAnsweredReviews | Whether to emit review events that already have an owner response. | true |
onlyNew | Suppress known, unchanged reviews after the first successful run. | true |
alertKeywords | Additional case-insensitive phrases that always trigger an alert. | [] |
aiMode | off, triage, or triageAndReply. | off |
openaiApiKey | Optional encrypted key used for AI assistance. | Not set |
replyTone | professional, warm, or concise. | professional |
replyLanguage | auto follows the original review language; a language code can override it. | auto |
brandContext | Optional facts the AI may use. Do not include secrets or personal data. | Not set |
brandRules | Optional wording and tone rules. Built-in safety rules still take precedence. | [] |
maxAiReviews | Maximum new or changed reviews sent to AI in one run. | 25 |
aiBudgetUsd | Conservative run-level estimate that stops starting new AI calls. | 1.00 |
generateLocationDigest | Add one free summary row per successfully checked location. | true |
resetState | Replace the saved baseline and treat the run as a first run. | false |
Output
The default Dataset contains two record types.
Review event
{"recordType": "review","monitorId": "customer-experience-es","placeId": "ChIJ...","placeLabel": "Downtown branch","reviewId": "review-id","publishedAt": "2026-08-12T08:00:00Z","stars": 2,"text": "Very long wait","isNew": true,"isUpdated": false,"isUnanswered": true,"sentiment": "negative","urgency": "high","alert": true,"alertReasons": ["low_rating", "low_rating_unanswered"],"replyDraft": null,"idempotencyKey": "stable-sha256-value"}
Use idempotencyKey when delivering records to another system. Platform failures can produce at-least-once delivery, while a normal immediate repeat run emits no unchanged review rows.
Location summary
{"recordType": "locationSummary","monitorId": "customer-experience-es","placeId": "ChIJ...","placeLabel": "Downtown branch","newReviews": 2,"updatedReviews": 1,"alerts": 1,"reviewsFetched": 100,"coverageIncomplete": false}
The key-value store also contains:
OUTPUTandSUMMARY— machine-readable run totals and status.ALERTS— alert review records only.FAILURES— per-location failures without hiding successful locations.DIGEST— a compact text summary for notifications.LIMITATIONS— runtime reminders about delivery and review-window boundaries.
AI triage and reply drafts
AI is disabled by default. To enable it, choose triage or triageAndReply and enter an OpenAI API key in the encrypted input field. The Actor uses structured output and processes only new or changed reviews with non-empty text. Results are cached by review version and AI configuration.
Deterministic alerts remain authoritative: AI cannot remove a low-star or severe-keyword alert. Reply drafts are post-validated and rejected if they promise compensation, admit liability, invent a completed investigation, or request private information publicly. A rejected or failed AI result does not remove the underlying review event.
Always review a draft before publishing it. The Actor does not sign in to Google Business Profile and never posts a response on your behalf.
Pricing
The intended Store model is pay per event. Summaries, alert collections, digests, failures, and unchanged known reviews are free.
| Billable event | When it is charged | Free | Bronze | Silver | Gold |
|---|---|---|---|---|---|
| Actor start | Automatically when the run starts | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
| Location check | After review acquisition succeeds for one location, including zero-new-review checks | $0.00800 | $0.00600 | $0.00536 | $0.00400 |
| Review event | For one delivered deterministic new or updated review row | $0.00250 | $0.00188 | $0.00168 | $0.00125 |
| AI review event | For one delivered review row with successful AI triage; replaces the regular review-event charge | $0.01000 | $0.00750 | $0.00670 | $0.00500 |
Example on the Free tier: checking 10 locations with no new reviews costs $0.08005 in Actor charges. If the run also delivers five regular review events and three AI-enriched review events, the Actor charge is $0.12255.
Two external costs are separate from these Actor charges:
- Review acquisition is performed by the maintained
compass/google-maps-reviews-scraperActor and is billed to your Apify account at that Actor's current price. - AI mode uses your OpenAI API key, so OpenAI usage is billed directly to that account.
Apify displays the current price and maximum run charge before execution. If the maximum charge is reached, the Actor stops cleanly and does not checkpoint an undelivered review, allowing it to be retried on the next run.
Scheduling and integrations
Use an Apify schedule for hourly, daily, or weekly checks. Keep monitorId, the location references, and the storage configuration stable. The default named state store is derived from the monitor ID, so separate monitors do not share baselines.
For notifications, connect a Dataset or run webhook to your automation platform and route records where recordType is review and alert is true. For reporting, use locationSummary rows or the SUMMARY key-value-store record.
Limits and data freshness
- Reviews are fetched newest-first. If more new reviews arrive between checks than
maxReviewsPerPlace, the output markscoverageIncompleteinstead of silently claiming complete coverage. Increase the limit or run more frequently. - Edits and owner responses older than the fetched newest window cannot be detected until a deeper run includes them.
- A review URL may be unavailable because reviewer personal-data collection is disabled;
reviewIdandidempotencyKeyremain available. - URL-only locations with no reviews may require an additional place-resolution call upstream.
- Google Maps data and upstream Actor output can change. Monitor production runs and report reproducible failures through the Actor issue tracker.
Troubleshooting
The second run still returns old reviews
Reuse exactly the same monitorId and location identities. Changing the location list without an explicit monitor ID derives a new monitor and therefore a new baseline. Check that resetState is false.
The first run returns no review rows
This is expected with firstRunPolicy: baselineOnly. The run stores the current window and later runs emit changes.
A location failed while others succeeded
Open the FAILURES record and verify that the URL points directly to one Google Maps place. Prefer a full place URL or a supported 27-character Place ID.
AI fields are empty
Confirm that AI mode is enabled, the encrypted OpenAI key is valid, the review contains text, and neither maxAiReviews nor aiBudgetUsd has been reached. The deterministic review and alert still remain usable when AI fails.
No alert was sent externally
This Actor produces alert data but does not choose a notification destination. Add an Apify webhook or integration that consumes the ALERTS key or alert review records.
Responsible use
Use the Actor only for lawful monitoring of publicly available business-review data. Do not use outputs to harass reviewers, infer sensitive traits, or publish private information. Respect applicable privacy, consumer-protection, platform, and employment rules. AI drafts require human review and should reflect facts your organization can verify.