Makani Tech: Build. Automate. Evolve.

Google Review Engine with n8n + Claude (free workflow)

How to get more Google reviews on autopilot and catch complaints before they go public

FreeWorkflowBy Kishan Makani · updated 19 October 2026 · 7 min read

Google SheetsWhatsAppClaudeGoogle Business ProfileSlack

Downloads

  • Download the n8n workflow (JSON)

    google-review-requests-n8n-claude.json · n8n workflow · 24 steps · starts with Every hour · uses Google Sheets, WhatsApp, Anthropic, Slack · 34 KB

    Import into n8n: Create Workflow, then the menu, then Import from File.

How to import it into n8n
  1. In n8n, create a new workflow.
  2. Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
  3. Open each node with a warning and connect your own account: the file carries no passwords or keys.
  4. Run it once with Test workflow, check the result, then switch it to Active.

What it does

Three small flows in one workflow. Every hour, finished visits from your Visits sheet get a kind WhatsApp template asking how it went, with three buttons. When the customer replies, Claude reads the mood. Happy customers get a thank you and your Google review link. Anyone not happy goes to Slack first with an apology drafted by Claude. Approve sends the apology followed by the same review link, so you never filter who may review you (Google does not allow that); Reject means you call them yourself. Every evening, new Google reviews without a reply are fetched, Claude drafts a public reply, and you tap 'Post reply' to publish it.

Who it is for

Restaurants, clinics, salons, gyms and local shops where most customers are happy but very few leave a Google review.

What you need

  • An n8n account reachable from the internet
  • WhatsApp Business Cloud API with one approved template
  • An Anthropic API key
  • A Google Sheet with tabs Visits and Feedback
  • Google Business Profile API access for your location
  • Slack (#feedback)
  • Your Google review link

How the workflow runs, node by node

The slides show the same steps. Open the workflow in n8n and you will see a sticky note over each one.

Step 1 · Ask after every visit

Every hour, n8n reads your Visits sheet and picks visits from 2 hours to 3 days ago that were not asked yet. Each gets a WhatsApp: How was it? Loved it, It was okay, Not happy.

  • Every hour: Runs every hour from 11 AM to 8 PM, so nobody gets a message late at night.
  • Read visits: Reads your Visits tab, where the front desk or billing adds one row per visit or delivery (VisitId, Name, Phone, Service, VisitedAt, Status).
  • Who to ask now: Keeps only finished visits from 2 hours to 3 days ago that have not been asked yet and did not opt out. Cleans each phone number and caps it at 40 per hour.
  • Send feedback template: Sends your approved template 'How was your visit?' with three quick reply buttons: Loved it, It was okay, Not happy. It does not ask for a review yet.
  • Mark as asked: Stamps the visit row with the time, so the same customer is never asked twice.

Step 2 · Claude reads the reply

When they reply, by button or in their own words, Claude decides happy, neutral or unhappy, notes the issue, and drafts an apology if it is not good news.

  • WhatsApp Trigger: Fires when a customer replies on WhatsApp (a button tap or a typed message).
  • Clean up reply: Drops delivery receipts, and turns a button tap or a typed message into one clean text field with phone and name.
  • Read the mood with Claude: Reads the reply and decides happy, neutral or unhappy, notes the issue, and for anything not happy drafts an apology from the owner.
  • Claude: Claude (claude-sonnet-5-5) at temperature 0.2, so answers stay consistent from run to run.
  • Mood schema: Mood, issue and draft as fixed fields, so the routing is a simple yes or no.
  • Happy?: Clearly happy customers get the review link straight away. Everyone else hears from the owner first, and the link follows the apology.

Happy customers get a thank you and your review link. Anyone else reaches you in Slack first, with an apology draft. Approve sends it with the link. All logged.

  • Send review link: Thanks them and sends your direct Google review link. Allowed as free text because they just replied (24 hour window).
  • Ask owner first: Unhappy and neutral replies go to #feedback with the issue and Claude's apology draft, with Approve and Reject, so you can fix things before anything else is sent.
  • Owner approved?: Approve sends the apology. Reject means you are calling them yourself.
  • Send owner's reply: Sends the approved apology from your business number, followed by the same review link everyone gets (Google does not allow asking only happy customers).
  • Log feedback: One row per customer in the Feedback tab: what they said, mood, issue and what happened next.

Step 4 · Reply to every Google review

Every evening, n8n fetches new Google reviews without a reply. Claude drafts a warm, specific response. You tap Post reply in Slack and it goes live on Google.

  • Every evening: Runs at 7 PM every day.
  • Fetch Google reviews: Gets your latest 50 Google reviews from the Google Business Profile API.
  • New reviews without a reply: Keeps only reviews from the last 7 days that you have not replied to, with stars as a number.
  • Draft review reply with Claude: Writes a short public reply in your voice: thanks for good reviews, a calm apology and an invitation to call for bad ones.
  • Approve review reply: Shows the review and the drafted reply in #feedback with 'Post reply' and 'Skip'. Nothing goes public without your tap.
  • Review approved?: Only 'Post reply' continues.
  • Post reply on Google: Publishes the approved reply under the review on Google.
  • Alert: something failed: One alert for any failed send: the feedback template, the review link, the apology or the Google reply.

Setup

  1. Import the JSON file into a new n8n workflow.
  2. Make a Google Sheet with tab Visits (VisitId, Name, Phone, Service, VisitedAt, Status, ReviewAsked, OptOut) and tab Feedback (Phone, Name, Reply, Mood, Issue, Date, Action). Replace YOUR_SHEET_ID. Have billing or the front desk add a row per visit with Status = Done.
  3. In Meta WhatsApp Manager, create a utility template visit_feedback with variables name, business and service, and quick reply buttons Loved it, It was okay, Not happy.
  4. Connect WhatsApp on the trigger and the three send nodes. Replace YOUR_PHONE_NUMBER_ID, YOUR_BUSINESS_NAME and YOUR_PLACE_ID in the review link (find it in your Business Profile under 'Ask for reviews').
  5. Create an Anthropic credential on Claude (it is shared by both Claude steps).
  6. For Fetch Google reviews and Post reply on Google, create an OAuth2 credential for the Google Business Profile API and replace YOUR_ACCOUNT_ID and YOUR_LOCATION_ID.
  7. Connect Slack on the three Slack nodes.
  8. Add a test visit with your own number, wait for the hourly run (or execute), tap a button, and check each path. Then activate.

How to customise it

  • Change timing in Who to ask now: for deliveries, ask 1 day after delivery instead of 2 hours.
  • Send 'It was okay' replies a 'what could we do better?' question instead of going to the owner.
  • Auto-post replies to 5 star reviews with no text, and only approve the rest.
  • Add the staff member's name to Visits and to the feedback log to see who gets the best feedback.

Guardrails

Unhappy customers hear from you before anything else, and no apology or public reply goes out until you approve it.

  • Google does not allow review gating (asking only happy customers). So everyone who replies is offered the link: happy customers straight away, unhappy ones after the owner has apologised. Do not remove the link from the apology.
  • Apologies and public replies are only sent after you approve them in Slack.
  • Each visit is asked once, never at night, and people who opted out are skipped.
  • Claude is told never to offer discounts or mention private details in public replies.

Troubleshooting

  • Template messages fail. The template name, language (en) and number of variables must match exactly what Meta approved.
  • Nobody is picked up by 'Who to ask now'. VisitedAt must be a date Google Sheets exports in a readable format (for example 2026-10-24 19:15). Status must be 'Done'.
  • Google returns 403. Business Profile API access must be approved for your project, and the OAuth credential must use the account that manages the location.
  • Replies are logged twice. Feedback rows match on Phone. If one customer visits often, change the key to VisitId.

Want the members-only resources too?

A free account unlocks them all, including the ones shared in DMs.

Create a free account