Google Reviews Agency Client & SLA Manager avatar

Google Reviews Agency Client & SLA Manager

Pricing

from $12.00 / 1,000 location analyzeds

Go to Apify Store
Google Reviews Agency Client & SLA Manager

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

Marsh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

  1. Keep the demo portfolio, or replace it with your client and exact Google Maps branches. Leave single-client locations empty when using portfolios.
  2. For a small test, set maxReviewsPerLocation to 25, upstreamMaxChargeUsd to 0.25, and aiProvider to none. Set this Actor's maximum total run charge to $0.25 as a separate control.
  3. Click Start. If Apify asks, authorize the nested Google Maps Reviews Scraper and the monitoring storage needed for repeat runs.
  4. Open Output → Agency command-center report. For a client-only report, open Storage → Key-value store and the CLIENT_REPORT_….html record named in the client report index.
  5. Save the input as a task. Reuse the same monitorId on 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:

  1. Set brandName to your agency or internal team.
  2. Add each client under portfolios, including its account manager and response SLA.
  3. Add every client's exact Google Maps branches.
  4. Give the workspace a stable monitorId.
  5. 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 typeOne record represents
agencySummaryThe executive roll-up and risk status for the agency workspace
clientSummaryOne client, its agency-wide rank, owner, SLA risk, and next action
locationSummaryOne requested branch, its rank, trend, reasons, and next action
reviewOne 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

  • emitAll returns all reviews found inside the lookback period. Use this to validate the first client report.
  • baselineOnly stores 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: supply openRouterApiKey, or use a developer-configured OPENROUTER_API_KEY secret.
  • 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:

  • upstreamMaxChargeUsd caps 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:

EventLaunch 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 -q
apify 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.