Review Reply Desk
For a business owner whose Google reviews pile up unanswered, who wants every customer answered but can't write dozens of thoughtful replies by hand.
The grind
Reviews nobody answered
Here's what doing this by hand looks like today, and why it doesn't scale.
- Dozens of reviews sit without a reply, including the angry ones
- Writing a thoughtful reply to each review takes more time than you have
- Copy-pasted thank-you replies look robotic and can get rejected by Google
- Auto-reply tools post things in your name that you never saw
MewCP collapses all of this into one prompt. Here's what that looks like.
The flow
6 steps · 2 servers
Your agent runs it end-to-end
Find the drafts you approved in your Review Replies database
Post each approved reply to Google exactly as you edited it
Check that each posted reply went live and mark it Posted or Rejected
List the reviews that still have no reply, lowest rating first
The payoff
Every review answered, nothing posted without your OK
Each customer gets a reply that speaks to their visit, unhappy ones first. You read and edit every draft in Notion, and only the ones you approve go live on Google.
Paste this into Claude, Codex, or any MCP-connected agent. It'll connect your apps and run the task from start to finish.
Run it yourself
Copy the prompt
Run my Review Reply Desk for {business name}. Use the MewCP servers google-business and notion-mcp.
1. Find the location. On google-business, call list_accounts, then list_locations with parent 'accounts/-'. Build the review location name accounts/{accountId}/locations/{locationId} using my account ID from list_accounts.
2. Find or create the Notion database. On notion-mcp, search for a database titled exactly 'Review Replies' with notion-search (or notion-ai-search if notion-fetch with id 'self' says it is available) and reuse it on every run. If you find more than one, use the one with the most rows and tell me about the others. Only if none exists, create it with notion-create-database (columns: Reviewer (title), Stars (number), Review date (date), Review (text), Draft reply (text), Approve (checkbox), Status (select: Draft, Pending, Posted, Rejected, Skipped), Review name (text)) and give me its link.
3. Draft new replies. Call list_reviews with order_by 'rating' and page through every review. Skip reviews that already have a reviewReply, and reviews that already have a row in the database with any Status (I set Skipped on reviews I don't want answered). For each remaining review, write a reply that responds to what the reviewer actually said (the dish, the service, the complaint), apologizes and invites them back on 1 and 2 star reviews without arguing, sounds like the owner rather than a template with no stock phrase repeated across replies, stays under 4096 bytes, and promises nothing the business hasn't offered. Add each with notion-create-pages, with Status Draft and Approve unticked.
4. Post approved replies. With notion-query-data-sources, find rows where Approve is ticked and Status is Draft (drafts I approved since the last run). Post each Draft reply exactly as written, including my edits, with update_review_reply on google-business using that row's Review name, then set Status to Pending with notion-update-page. Never post a reply I haven't approved: Google's Business Profile API policies forbid automated replies without the owner's consent.
5. Confirm. For every Pending row, call list_reviews and check the reply's reviewReplyState (get_review and update_review_reply return it as null, so use list_reviews). Set Status to Posted if APPROVED, or Rejected with the policyViolation noted if REJECTED. Leave it Pending if Google hasn't decided yet.
6. Summary. Tell me how many new drafts are waiting for my approval, how many replies were posted, rejected and still pending, and link the Notion database.