Weekly Google rankings and reviews check for every location
Every Monday at 7am, see which of your locations slipped in Google's local results or stalled on reviews, with the healthy ones kept to one line.
Every Monday at 7am, tell me how each of our physical locations is performing on Google.
Start by reading the location roster from Google Sheets using Get Values. The roster lives on a tab called Locations, and each row has the business name, the city, and the main search term customers use to find that kind of business. Skip the header row and skip any row missing one of those three fields.
For each row, first use the SerpApi Location Lookup operation to resolve the city into a canonical location name, so that later searches run from the right place. Then run a SerpApi Google Maps Search for the business name within that location and capture the current star rating, the total review count, the category Google lists it under, and the place identifier. Store the place identifier in the history so that in later weeks I am comparing the same listing rather than a similarly named business.
Next, run a SerpApi Google Search for that row's target search term using the canonical location as the search location. Look at the local pack in the results and record whether we appear in it, what position we hold, and which businesses are listed above us. If we are absent from the local pack, record the businesses that do occupy it.
Then read the history tab with Get Values and find the most recent earlier entry for each location. Compare this week against it: the change in star rating, the change in review count, and the change in local pack position, including dropping out of the pack entirely. If there is no earlier entry for a location, treat this run as its baseline and say so rather than reporting a change.
Append this week's figures to the history tab using Append Values, one row per location, with the run date, business name, city, target search term, star rating, review count, category, place identifier, local pack position or a clear marker that we were not in the pack, and the names of the businesses that ranked above us.
Finally, post a digest to Slack with the Slack Bot Send a Message operation. Lead with the locations that actually need attention and put them at the top: any location whose rating dropped, any whose review count has stalled with no new reviews since the previous run, and any that fell out of the local pack or lost position. For each of those, explain what changed with both the old and new numbers, and where a specific competitor now occupies the position we used to hold, name that business. Where the cause is ambiguous, say so instead of guessing. Keep every healthy location to a single summary line so the digest stays readable, and open the message with a one sentence overview of how many locations are healthy versus how many need attention.
If a city cannot be resolved, or the Maps search returns no confident match for a business name, do not guess. List those rows in a short section at the end of the digest so someone can fix the roster.
What does this prompt do?
- Reads your location roster from a Google Sheet, where each row holds the business name, the city, and the main search term customers use to find that kind of business.
- Checks each location's current star rating, review count, and category as they appear on Google Maps right now.
- Runs a local search from each location's own city to see whether you show up in the top local results, and which businesses appear above you.
- Posts a Slack digest that leads with the locations that actually need attention, names the competitor that took your spot where that is clear, and logs the week's numbers to a history tab so trends build up over time.
What do I need to use this?
- A SerpApi account, which is what pulls the live Google and Google Maps results
- A Google Sheet listing your locations, one row each, with the business name, the city, and the search term you want to rank for
- A Google account with access to that sheet
- A Slack workspace and a channel where the Monday digest should land
How can I customize it?
- Change the schedule, for example Monday at 7am to Friday afternoon, or run it twice a month instead of weekly.
- Adjust what counts as needing attention, such as how big a rating drop matters or how many weeks without a new review counts as stalled.
- Point the digest at a different channel, send it as a direct message, or split regions into separate channels.
- Add or remove locations by editing rows in the sheet, with no change to the workflow itself.
FAQs
What are the local results this tracks?
Do I need access to my Google Business Profile for this to work?
How many locations can this handle?
What happens the first time it runs?
Will it tell me who outranked us?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop checking your locations on Google one by one.
Get one Monday digest that tells you which locations slipped, which have stopped collecting reviews, and who took your spot.