Google Reviews Agency Client & SLA Manager
Pricing
from $12.00 / 1,000 location analyzeds
Google Reviews Agency Client & SLA Manager
Rank clients and branches by risk, assign account owners, surface response-SLA breaches, and generate separate agency and client reports.
Pricing
from $12.00 / 1,000 location analyzeds
Rating
0.0
(0)
Developer
Marsh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Turn Google Maps reviews across every agency account into a ranked client and branch action queue, response-SLA tracker, and white-label report system.
This Actor is built for local-SEO agencies and reputation-management teams that oversee several clients, while preserving a simple mode for franchises and single multi-location brands. It does more than return reviews: it identifies which client needs attention first, ranks the client's branches, assigns accountability, and recommends what the account or operations team should do next.
No AI key is required. The core ranking, alerts, themes, response-SLA checks, and report work in deterministic mode.
See the output before you run
Open the live-data agency sample report · View the separate client report · Inspect sample JSON and cost evidence
The 13 September 2026 live test fetched 25 reviews from one public location and identified two unanswered negative reviews past a demo 48-hour response target. Reviewer identities and original review/reply text have been removed from this public sample. The business is not our customer or partner; the portfolio and account-owner labels are illustrative. A separate two-client fixture was used to test report separation; this live sample is not a multi-location benchmark.
Try it in five steps
- Keep the demo portfolio, or replace it with your client and exact Google Maps branches. Leave single-client
locationsempty when usingportfolios. - For a small test, set
maxReviewsPerLocationto 25,upstreamMaxChargeUsdto 0.25, andaiProviderto none. Set this Actor's maximum total run charge to $0.25 as a separate control. - Click Start. If Apify asks, authorize the nested Google Maps Reviews Scraper and the monitoring storage needed for repeat runs.
- Open Output → Agency command-center report. For a client-only report, open Storage → Key-value store and the
CLIENT_REPORT_….htmlrecord named in the client report index. - Save the input as a task. Reuse the same
monitorIdon subsequent runs to avoid duplicate review-action charges. Use a different ID for an unrelated client workspace.
You still pay for fetching reviews and generating the location/report outputs on unchanged runs. Duplicate detection removes duplicate review-action fees, not the whole run cost.
A measured small-run cost example
For one location, 25 new review actions, and one report bundle, our Actor's configured event fees total $0.07955. In the live owner-account test, the upstream scraper charged $0.01505 and our Actor's platform usage was $0.001075. At those same usage rates, an outside customer's comparable run would be approximately $0.096 total. This is one measured example, not a fixed quote: plan rates, upstream pricing, review counts, and optional AI can change the total.
Our owner-account test did not pay our own Actor's event fees. It is validation evidence, not a customer sale or revenue claim.
The outcome
Each run gives you:
- A red, amber, or green health status for every branch with returned reviews, or unknown when no reviews are returned.
- A client risk leaderboard across the complete agency book of business.
- Account-manager ownership and a configurable response SLA for each client.
- A portfolio-wide leaderboard ranked by operational priority.
- Reasons behind every priority score, such as new negative reviews or overdue owner responses.
- New or updated review actions in the Dataset, plus a report queue that keeps previously seen unanswered negatives visible within the fetched sample.
- Rating movement compared with the previous successful run.
- An agency command-center HTML report plus a separate white-label HTML report for each client.
- JSON, CSV, and Excel-ready records for dashboards and client workflows.
Even a location with no reviews in the selected window receives a location summary. That keeps the report accountable to the complete branch list instead of silently dropping quiet locations.
Designed around an agency workspace
Use one saved Apify task for the agency workspace:
- Set
brandNameto your agency or internal team. - Add each client under
portfolios, including its account manager and response SLA. - Add every client's exact Google Maps branches.
- Give the workspace a stable
monitorId. - Run once, then schedule the same task weekly or daily.
The stable workspace ID lets the Actor remember previous review fingerprints and branch metrics. Later runs return only new or changed review action items while rebuilding the complete agency, client, and branch rankings.
The HTML response queue also retains unchanged, unanswered negative reviews while they remain in the fetched sample. Those retained items are not charged again as new review actions. Answered reviews are removed from the response queue. This is not a permanent backlog of reviews outside the selected window or review cap.
Why this is different from a basic review monitor
A basic monitor answers: “Which reviews are new?”
This Actor also answers:
- Which branch should the agency contact first?
- Why is that branch ranked above the others?
- Which negative reviews have exceeded the response SLA?
- Is the branch's recent rating improving, stable, or declining?
- What should the branch manager do next?
- What can the agency send to the client without rebuilding a report manually?
Multi-client agency quick start
{"brandName": "Your Local SEO Agency","monitorId": "agency-weekly-command-center","portfolios": [{"clientId": "northstar-coffee","clientName": "Northstar Coffee","accountManager": "Priya","responseSlaHours": 24,"locations": [{"name": "Indiranagar Branch","placeId": "ChIJ..."}]},{"clientId": "harbor-dental","clientName": "Harbor Dental","accountManager": "Arun","responseSlaHours": 48,"locations": [{"name": "Central Clinic","url": "https://www.google.com/maps/place/..."}]}],"firstRunMode": "emitAll","lookbackDays": 8,"negativeRatingThreshold": 2,"aiProvider": "none"}
Use either portfolios or the single-client locations input, not both in one run.
Single-client quick start
Use an exact Google Maps place/share URL or a Google Place ID for every branch:
{"clientName": "Northstar Coffee","brandName": "Your Local SEO Agency","locations": [{"name": "Indiranagar Branch","placeId": "ChIJ..."},{"name": "Koramangala Branch","url": "https://www.google.com/maps/place/..."}],"monitorId": "northstar-coffee-weekly","firstRunMode": "emitAll","lookbackDays": 8,"maxReviewsPerLocation": 250,"negativeRatingThreshold": 2,"responseSlaHours": 48,"aiProvider": "none","reportTitle": "Weekly Review Portfolio Operations Report"}
Keep allowSearchUrls off for routine monitoring. Broad Google Maps search URLs can match several unintended businesses; an exact place link or Place ID keeps each input tied to one branch.
How the ranking works
The Actor fetches recent Google-origin reviews, normalizes them, and groups them by branch. The explainable priority score increases when it finds:
- Negative reviews that remain unanswered beyond the configured SLA.
- New negative reviews.
- A high negative-review rate in the lookback window.
- A low recent average rating.
Rating decline is reported separately as a trend and attention reason; it is not an extra component of the priority score.
Locations are sorted by priority score and given a priorityRank. Each location record includes attentionReasons and recommendedAction, so an agency can use the output without reverse-engineering the score.
The Actor only requests Google-origin reviews and disables the upstream scraper's personal-data option.
Outputs
The run page provides four useful outputs:
- Agency and client action queue — an exportable Dataset containing agency and client summaries, ranked branches, and new or updated review actions.
- Agency command-center report — an HTML report with the client risk leaderboard, branch accountability, SLA breaches, and response queue.
- Client report index — a JSON index pointing to the separate white-label HTML report generated for each client.
- Machine-readable summary — run totals, billing delivery counts, agency status, client summaries, and branch summaries for automations.
In multi-client mode, the Dataset contains four record types:
| Record type | One record represents |
|---|---|
agencySummary | The executive roll-up and risk status for the agency workspace |
clientSummary | One client, its agency-wide rank, owner, SLA risk, and next action |
locationSummary | One requested branch, its rank, trend, reasons, and next action |
review | One new or updated review that entered the response queue |
Single-client mode retains the existing portfolioSummary, locationSummary, and review records for backwards compatibility.
What the Apify Results number means
Results is the number of Dataset records written by a run. It is not the number of customers, searches, or total historical reviews.
For example, an agency run with two clients, two locations, and three new reviews produces eight Results: one agency summary, two client summaries, two branch summaries, and three review actions. An unchanged later run produces five Results: the agency summary, two client summaries, and two fresh branch summaries.
First-run behavior
emitAllreturns all reviews found inside the lookback period. Use this to validate the first client report.baselineOnlystores the current review fingerprints without emitting historical review actions. Use this when a client wants alerts only for reviews arriving after onboarding.
An eight-day lookback works well for a weekly schedule because the overlap reduces the chance of missing late or reordered reviews. Fingerprint-based deduplication prevents the overlap from producing the same action item repeatedly.
AI is optional
The default aiProvider: "none" mode needs no external AI account or API key. It uses deterministic rating, keyword-theme, urgency, ranking, and response-SLA rules.
For richer summaries or response drafts, customers can bring their own credentials:
openrouter: supplyopenRouterApiKey, or use a developer-configuredOPENROUTER_API_KEYsecret.vertex: supply the Vertex project and service-account inputs, or use developer-configured GCP secrets.
Secret inputs are masked by Apify. AI enrichment is capped by maxAiReviews, and positive reviews are excluded unless aiAnalyzeAllRatings is enabled. The core report remains available if AI is disabled or an AI request fails.
Connecting agency workflows
Dataset records and the machine-readable summary can be routed through Apify webhooks and integrations to Slack, email, Make, Zapier, n8n, a CRM, or an agency dashboard. The Actor produces the structured action data; delivery destinations are configured in Apify so credentials do not need to be embedded in the Actor input.
Cost controls
Two controls limit spend:
upstreamMaxChargeUsdcaps the nested Google Maps Reviews Scraper run.- Apify's maximum total run charge caps this Actor's pay-per-event outputs.
The launch events are:
| Event | Launch price |
|---|---|
| Location analyzed | $0.012 each |
| New or updated review action | $0.0015 each |
| Agency report bundle generated | $0.030 per run |
| Actor start (512 MB configuration) | $0.00005 per run |
In multi-client mode, the single report event includes the agency command center and every client-ready report generated in that run. Platform usage and the nested public-review scraper are separate. Actual cost depends on the number of clients, branches, review volume, schedule, and selected fetch limits.
Limitations and responsible use
- This Actor processes publicly available Google review data; it is not the official Google Business Profile API.
- Google and upstream output formats can change. Stable normalization and automated tests reduce, but cannot eliminate, that dependency risk.
- The trend compares the current lookback-window result with the previous successful run; it is an operational signal, not a formal statistical trend analysis.
- Average ratings, negative rates, and health statuses describe the returned review sample, not the business's all-time Google rating. When the review cap is reached, older reviews in the requested window may not be included.
- Response SLAs are customer-configured targets. A missing publication date produces unknown review SLA status, not a proven breach. No returned reviews produces unknown branch health, not a green health signal.
- Deterministic sentiment and themes are prioritization aids, not human judgments. Review sensitive cases manually.
- The Actor can draft actions and responses but does not post replies to Google.
- Follow applicable privacy, platform, and local legal requirements. Do not use review data to harass, discriminate against, or profile individuals.
Developer verification
Run the included portfolio fixture locally without calling a paid scraper or AI provider:
$apify run --purge --input-file examples/demo-input.json
Run the multi-client agency fixture:
$apify run --purge --input-file examples/agency-demo-input.json
Run the business-logic tests and validate the Apify schemas:
python -m pytest -qapify validate-schema
For local pay-per-event simulation:
$ACTOR_TEST_PAY_PER_EVENT=true apify run --purge --input-file examples/demo-input.json
The simulation does not bill money. It writes charge calls to the local charging-log Dataset. In Store pricing, remove the synthetic apify-default-dataset-item event or set its price to zero because the custom events already meter delivered Dataset records. Keep the low-cost apify-actor-start event enabled to cover startup.