🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Maps to Google Sheets, reviews logged clean

Lisa Granqvist Partner Workflow Automation Expert

Copying Google Maps reviews by hand looks simple until you do it more than once. Tabs multiply, formatting breaks, and you end up with “almost usable” notes that nobody trusts when it’s time to report.

This hits marketing managers and agency owners hardest, but ops folks cleaning data for dashboards feel it too. With Maps reviews logging automation, you get a Google Sheet that fills itself with clean, consistent rows you can filter, chart, and send to clients.

This workflow pulls places from a Google Maps-style search, fetches reviews per place through SerpApi, and appends everything into a structured spreadsheet. You’ll see what it fixes, what you need, and how to run it without babysitting.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Maps to Google Sheets, reviews logged clean

The Challenge: Turning messy reviews into usable data

Reviews are gold for positioning, reputation management, and content ideas. But getting them out of Google Maps and into something you can actually work with is a chore. The first time, you paste a few snippets into a doc and move on. The second time, you realize dates don’t match, ratings are missing, and the client wants “all locations” with a trend line by week. Now it’s hours of repetitive clicking, plus the quiet anxiety that you missed the most important review.

It adds up fast. Here’s where it breaks down in real life.

  • You lose consistency because every copy-paste session produces a different format (and “fixing” it later is worse).
  • Pulling reviews for 10–20 places becomes a half-day job when each location needs multiple loads and scrolls.
  • Reporting stalls because you can’t reliably group by date, rating, or location name without manual cleanup.
  • Spot checks don’t scale, so competitor monitoring turns into guesswork instead of evidence.

The Fix: Pull Google Maps reviews into a clean Sheet automatically

This automation starts with a Google Maps-style search query (the same kind of phrase you’d type into Maps). It sends that query to SerpApi’s Google Maps API to retrieve the top places that match. Then it loops through those places one by one, fetching their reviews through SerpApi’s Reviews API. Reviews arrive in pages, so the workflow keeps track of how many it has collected and uses a page token to request the next batch until it hits your limit. Finally, every review is appended to your connected Google Sheet in a predictable structure, so you can sort, filter, pivot, chart, or hand it to a client without apologizing for the formatting.

The workflow begins when you run it manually in n8n. After SerpApi returns places, n8n handles batching and pagination behind the scenes, then writes each review as a new row with a name, date, rating, and snippet.

What Changes: Before vs. After

Real-World Impact

Say you track 10 local competitors and pull 50 reviews each. Manually, you might spend about 10 minutes per place just loading, scrolling, and copying, plus another hour cleaning the data, so you’re looking at roughly 3 hours total. With this workflow: you run one query, let it loop through the places, and the Sheet fills itself. You’ll still wait for SerpApi calls to complete, but your hands-on time drops to about 10 minutes.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • SerpApi to search Google Maps and fetch reviews.
  • Google Sheets to store clean rows for reporting.
  • SerpApi API key (get it from serpapi.com/manage-api-key).

Skill level: Beginner. You’ll connect accounts, set a query, and confirm your sheet headers match.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

You trigger a run from n8n. It’s a manual start by default, which is handy while you’re testing different queries and sheet setups.

Your Google Maps search query is sent to SerpApi. SerpApi returns up to the top 20 matching places for that query, which becomes the list the workflow processes.

Each place is processed in batches and paginated. n8n loops through places, then loops through review pages for each place. It checks if more reviews are available, updates the page token, and continues until it hits your review cap (default is 50 per place, and you can change it).

Reviews are normalized and appended to Google Sheets. Every review becomes a new row with the place name, an ISO-formatted date, a rating, and a snippet. That consistency is what makes charts and client reporting painless.

You can easily modify the search query and the review limit to match how often you report and how deep you want the history to go. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually so you can validate the review sync logic before automating it.

  1. Add the Manual Start Trigger node to your workflow canvas.
  2. Leave all fields at their defaults for manual execution.
  3. Connect Manual Start Trigger to Define Review Cap.

Step 2: Connect SerpApi Search and Place Discovery

This step queries Google Maps and determines whether the response is a single place or a list of local results.

  1. Configure Define Review Cap to set review_limit to 50.
  2. In Lookup Maps Places, set Operation to google_maps and Query to italian restaurants in austin tx.
  3. In Lookup Maps Places, set Additional Fields → json_restrictor to local_results,place_results.
  4. Configure Detect Single vs List with the condition {{ $json.place_results }} to detect whether a single place result exists.
  5. Connect Detect Single vs List true output to Initialize Review State and false output to Expand Local Listings.

Credential Required: Connect your SerpApi credentials in Lookup Maps Places.

⚠️ Common Pitfall: If the SerpApi credential is missing, both Lookup Maps Places and Fetch Place Reviews will fail even though the workflow structure is correct.

Step 3: Initialize State and Batch Processing

This step prepares the global state, expands local listings, and iterates through multiple places when needed.

  1. In Initialize Review State, keep the JavaScript code as provided to initialize review_limit, place_id, place_name, is_single_business, num, count, and next_page_token.
  2. Configure Expand Local Listings with Field to Split Out set to local_results.
  3. Connect Expand Local Listings to Iterate Places Batch, and ensure Iterate Places Batch continues to Initialize Review State when iterating through multiple places.

If you only want to process a single known place, you can skip Expand Local Listings and pass a single place result directly into Initialize Review State.

Step 4: Fetch Reviews and Expand Review Items

This step retrieves reviews, checks availability, and splits each review into its own item for insertion into the sheet.

  1. In Set Page Size Value, keep the JavaScript code that sets num to 20.
  2. Configure Fetch Place Reviews with Operation set to google_maps_reviews and place_id set to {{ $json.place_id }}.
  3. In Fetch Place Reviews, set Additional Fields → num to {{ $json.num }} and Additional Fields → next_page_token to {{ $json.next_page_token }}.
  4. Configure Check Review Availability with the boolean condition {{ !!$json.reviews || $('Initialize Review State').item.json.is_single_business}}.
  5. In Explode Review Items, set Field to Split Out to reviews, and include Fields to Include as place_info.title.

Credential Required: Connect your SerpApi credentials in Fetch Place Reviews.

Step 5: Append Reviews to Google Sheets

This step writes each exploded review item to your Google Sheet with mapped fields.

  1. Open Append Rows to Sheet and set Operation to append.
  2. Select your target spreadsheet in Document ID and choose the destination tab in Sheet Name.
  3. Map columns using expressions: rating{{ $json.reviews.rating }}, snippet{{ $json.reviews.extracted_snippet.original }}, iso_date{{ $json.reviews.iso_date }}, place_name{{ $('Initialize Review State').first().json.place_name }}.

Credential Required: Connect your Google Sheets credentials in Append Rows to Sheet.

Step 6: Configure Pagination Logic

This step updates counters and routes the workflow to fetch more pages or move to the next place.

  1. In Update Count & Page Token, keep the JavaScript code that increments count and updates next_page_token from Fetch Place Reviews.
  2. Configure Route Pagination Logic with three rules using these expressions: {{ !!$json.next_page_token && ($json.review_limit > $json.count + 20)}} for “Get More Pages,” {{ $json.is_single_business && (!$json.next_page_token || $json.review_limit < $json.count + 20 ) }} for “End Workflow,” and {{ !$json.is_single_business && (!$json.next_page_token || $json.review_limit < $json.count + 20 ) }} for “Get Next Place.”
  3. Connect the “Get More Pages” output to Set Page Size Value, and the “Get Next Place” output to Iterate Places Batch.

Ensure Set Page Size Value runs before Fetch Place Reviews so each pagination call has num defined.

Step 7: Test and Activate Your Workflow

Run a full test to confirm reviews are retrieved, expanded, and appended to your sheet.

  1. Click Execute Workflow to run Manual Start Trigger and observe the node-by-node execution.
  2. Verify that Append Rows to Sheet writes rows with rating, snippet, iso_date, and place_name in your Google Sheet.
  3. Confirm pagination continues until the review_limit is reached or no next_page_token remains.
  4. When results look correct, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • SerpApi credentials can expire or be pasted incorrectly. If it fails, check your SerpApi API key in n8n credentials and confirm you still have search credits in your SerpApi dashboard.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Google Sheets writes can fail silently when headers don’t match. Make sure your sheet has exactly name, iso_date, rating, snippet before you run a big pull.

Common Questions

How quickly can I implement this Maps reviews logging automation?

About 20–30 minutes if your SerpApi key and Google Sheet are ready.

Can non-technical teams implement this reviews logging?

Yes. You’ll connect SerpApi and Google Sheets, then paste in your search query and pick the target spreadsheet.

Is n8n free to use for this Maps reviews logging workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in SerpApi credits since each request consumes 1 search credit.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Maps reviews logging solution to my specific challenges?

Start with the query in the “Lookup Maps Places” step, because that determines which locations you’re pulling from. Then adjust the cap in the “Define Review Cap” step if you need more (or fewer) reviews per place. If you only care about recent feedback, keep the limit low and run it weekly; if you’re doing a one-time audit, raise the limit and let pagination run longer. You can also change the Google Sheet columns and map extra fields before the “Append Rows to Sheet” step if you want things like review author or review URL.

Why is my SerpApi connection failing in this workflow?

Usually it’s an invalid or expired API key, or you’ve run out of SerpApi search credits. Update the SerpApi credentials in n8n, then check your SerpApi dashboard for remaining credits. If it still fails, your query may be too broad or returning no places, which means the review loop has nothing to fetch.

What’s the capacity of this Maps reviews logging solution?

Practically, it’s capped by two things: SerpApi credits and how many places you pull (Google Maps results top out at 20 in this workflow). With the default 50 reviews per place, you can burn through around 60 credits in a single run if you hit the maximum results. If you self-host n8n there’s no execution limit, but you’ll still want to pace requests and keep an eye on Google Sheets write volume for very large pulls.

Is this Maps reviews logging automation better than using Zapier or Make?

For this workflow, n8n has a few advantages: more complex pagination logic without awkward workarounds, a self-hosting option for unlimited executions, and easier control over batching when SerpApi returns multiple places and pages. Zapier or Make can work, but multi-loop flows often get expensive or brittle once you add paging and limits. n8n also makes it simpler to keep all review formatting rules in one place, so Sheets stays consistent. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation based on volume and budget.

Once this is in place, review collection stops being a recurring task and becomes a background process. Your Google Sheet stays clean, and you finally have data you can build decisions on.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal