Daily Google Maps review alerts with drafted replies in Slack

Every morning at 8am, catch every new Google review across your locations, draft an owner reply tuned to the star rating, and post it to the right Slack channel.

Agentic Task
Local Business DataGoogle SheetsSlackCustomer SupportOperationsNotifications & AlertsResearch & MonitoringFeedback Triage
PromptCreate

Every morning at 8am, watch my own Google Maps listings for new reviews and turn each one into a Slack alert with a ready-to-post owner reply. The trigger is a daily cron.

Config is stored in a Google Sheet. Use the google-sheets Get Values operation to read two tabs from that sheet at the start of every run: a config tab with one row per location containing business_id (Google Maps place_id or hex id), location_name, and a short brand_voice note; and a seen_reviews log tab that holds the review ids we have already alerted on.

For each location row, call the local-business-data Business Reviews operation sorted by newest to pull the most recent reviews for that business_id. Diff the returned review ids against the seen_reviews log and keep only the ones that are new since the last run.

For every new review, draft a professional owner reply that references the reviewer's name and the concrete detail they mentioned. Tune the tone to the star rating: apologetic, specific, and offering to make it right for anything under 4 stars, and warm and thankful for 4 or 5 stars. Follow the brand_voice note from the config row.

Then route the alert with the slack Send a Message operation. If the review is 1 to 3 stars, post it to a #reputation-alerts channel, @-mention the manager, include location, rating, reviewer, and review text, and put the drafted reply in a code block so it is easy to copy. If the review is 4 or 5 stars, post to a #wins channel in a lighter format (location, rating, reviewer, one-line quote, drafted reply) with no @-mention.

After Slack has been notified, use the google-sheets Append Values operation to write a new row to the seen_reviews log tab with review_id, business/location, rating, reviewer, review text, drafted reply, and timestamp. This is what prevents re-alerting on the same review on future runs.

Multi-location behavior: loop over every business_id row in the config tab so a brand with many storefronts is handled in a single run. Never alert on a review whose id is already in the seen_reviews log. If a location has no new reviews on a given day, skip it silently and move on.

The setup guide should walk the user through creating the two-tab Google Sheet (config with headers business_id, location_name, brand_voice, manager_slack_id, and seen_reviews with headers review_id, location, rating, reviewer, text, drafted_reply, timestamp) and show how to grab a business_id from a Google Maps URL (either the place_id or the hex id works).

Additional information

What does this prompt do?
  • Watches your Google Maps listings every morning and surfaces reviews posted since the last run, across as many locations as you list.
  • Drafts a professional owner reply tuned to the star rating, apologetic and specific for 1 to 3 stars, warm and thankful for 4 to 5 stars, using the reviewer's name and the detail they mentioned.
  • Routes critical reviews to a reputation alerts channel with the manager tagged and the draft reply ready to copy, and routes glowing reviews to a wins channel in a lighter format.
  • Logs every review it has already alerted on so it never pings you twice, even across weeks of daily runs.
What do I need to use this?
  • A Local Business Data account for pulling Google Maps reviews.
  • A Google account with access to a sheet that lists your business locations and holds the alert log tab.
  • A Slack workspace with a reputation alerts channel for low ratings and a wins channel for high ratings.
  • The Google Maps place ids for each location you want monitored, plus a short brand voice note so replies sound like you.
How can I customize it?
  • Change the schedule from 8am daily to whatever cadence fits your team, like twice a day or weekdays only.
  • Adjust the star rating thresholds and swap the two Slack channels, or route everything to a single channel if you prefer one queue.
  • Tune the brand voice notes in the config tab to make replies more formal, more casual, or bilingual for locations in different markets.
  • Add more locations by dropping new rows into the config tab, no code changes required.

Frequently asked questions

Does this actually post the reply to Google for me?
No. It drafts the reply and drops it into Slack so an owner or manager can review, tweak, and paste it into Google Business Profile. That keeps a human in the loop for anything sensitive.
Can I monitor more than one location?
Yes. The workflow reads your list of locations from a Google Sheet and loops through every row, so multi-location brands work out of the box. Add or remove locations by editing the sheet.
How does it avoid alerting me twice on the same review?
Every review that gets alerted is written to a log tab in your sheet with its review id. On the next run the workflow checks that log first and only surfaces reviews it has never seen before.
How do I find the id for one of my listings?
Open your business on Google Maps and copy the identifier from the URL. The setup guide walks through pulling either the place id or the hex id, and both work.
What if I only care about negative reviews?
Set the wins channel to the same value as the alerts channel and tell the agent to skip 4 and 5 star reviews entirely, or raise the threshold so only 1 and 2 star reviews trigger an alert.

Never miss a Google review again.

Connect Google Maps, Google Sheets, and Slack once, and Geni watches every location every morning and hands you a ready-to-post reply.