SheetMagicSheetMagic

Export Google Maps Reviews to Sheets to Catch Complaints

Use =GMAPSREVIEWS() to export Google Maps reviews into Google Sheets with rating, text, date and owner reply, then filter for low ratings and unanswered complaints instead of scrolling Maps one review at a time. 2 scraping credits per review.

Phil Nguyen · 5 min read

Paste a Google Maps place URL into =GMAPSREVIEWS() and SheetMagic writes each review's reviewer name, star rating, review text, date and the owner's reply into a results tab in your sheet. Once the reviews are rows, finding every unanswered 1-star complaint is a filter, not an hour of scrolling, and you can answer unhappy customers before more people read the review.

Say you manage marketing for five restaurant locations. If reading and copying a review by hand takes you about a minute (an example figure, not a measurement), the latest 50 reviews per location is 250 minutes, or a little over 4 hours, every time you check. One formula covers one place or several, and you can sort for the newest, most relevant, highest-rated or lowest-rated reviews.

=GMAPSREVIEWS("https://www.google.com/maps/place/?q=place_id:ChIJ...", 50, "newest")

How do I get the Google Maps place URL?

=GMAPSREVIEWS() needs a full Google Maps place URL, the kind that starts with https://www.google.com/maps/place/. You can copy it from the address bar after opening the place in Google Maps.

The most reliable form uses Google's place ID: https://www.google.com/maps/place/?q=place_id: followed by the ID. A search-style URL, such as one that only carries a place name or coordinates, often resolves to nothing and returns 0 reviews.

If you do not have place IDs yet, get them with =GMAPS(). Search for the businesses, for example =GMAPS("bakeries in Portland, OR"), and read the PlaceID column of the Google Maps Results tab (column I, because column A holds the Source cell). Then build the URL with a formula:

=GMAPSREVIEWS("https://www.google.com/maps/place/?q=place_id:"&I2)

What does =GMAPSREVIEWS() return?

Each row is one review. After the Source column, which records the cell that ran the formula, you get:

ColumnWhat it holds
BusinessThe place the review is for
ReviewerThe reviewer's name
RatingThe stars this reviewer gave
TextThe full review text
DateWhen the review was posted
Reviewer URLLink to the reviewer's profile
ResponseThe owner's reply, if there is one
CategoryThe place's Google Maps category
Place RatingThe place's overall star average
Total ReviewsHow many reviews the place has

The table continues with Reviewer Review Count, Local Guide, Likes, Review URL, Review Source, Review Images, Language, Place Country, Place URL, Permanently Closed and Temporarily Closed.

How do I get only the newest or lowest-rated reviews?

The third argument, sortBy, takes one of four values:

  • "newest": most recent first. This is the default.
  • "mostRelevant": Google's own relevance order.
  • "highestRating": 5-star reviews first.
  • "lowestRating": 1-star reviews first.

=GMAPSREVIEWS(A2, 20, "lowestRating") pulls the 20 lowest-rated reviews for the place in A2, which is a quick way to find complaints that need a reply.

The second argument, maxReviews, sets how many reviews to fetch for each place. It defaults to 50. One formula returns at most 50 reviews in total, so maxReviews can lower that number but not raise it. When one formula lists several places, the 50 are split across them.

To pull 50 reviews from each of many places, put one place URL per row and drag the formula down: =GMAPSREVIEWS(A2), =GMAPSREVIEWS(A3) and so on. Each copy gets its own 50, and drag-filled copies of the same formula write into one shared results tab.

Why does the cell say Scraping first?

Review collection runs in the background. The formula submits the job and the cell immediately shows ⏳ Scraping.... When the reviews arrive they are written to a new tab. With Keep Formula on, which is the default, the cell then keeps your formula frozen as text; with Keep Formula off, it changes to a status such as ✅ 50 results → Google Reviews Scraper Results naming that tab.

How many scraping credits does it use?

Each review written to your sheet costs 2 scraping credits. If the place has no reviews to return, you are not charged. Before the run, SheetMagic holds credits for the most reviews the formula could return, and if your balance cannot cover that, it lowers the review count to what your balance can pay for instead of refusing the job.

Monthly scraping credit allotments by plan:

PlanScraping credits per month
Solo10,000
Growth45,000
Scale115,000

The Free plan includes 100 scraping credits, enough for 50 reviews. The five-location example above, 50 reviews each, is 250 reviews, or 250 x 2 = 500 credits. The AI tokens vs scraping credits guide explains how the two balances differ.

What can you do with the reviews?

In the results tab, Rating is column D, Text is column E and Response is column H.

  • Build a reply queue. Filter Rating for 1 and 2 stars and Response for blanks. What is left is every complaint nobody has answered yet, sorted newest first if you used the default sortBy.
  • Label every review with AI. AITEXT takes a prompt plus optional context, so in a free column next to the first review you can write:
=AITEXT("Classify this review as positive, neutral or negative. Reply with one word.", E2)

Drag it down to label every review, or change the prompt to pull out the main complaint or draft a reply.

  • Learn from a competitor's 1-star reviews. Run =GMAPSREVIEWS(A2, 50, "lowestRating") on a competitor's place and read what their customers complain about. Each complaint is a reason a customer could pick you instead.

See AI in Google Sheets for more prompt ideas, data analysis in Google Sheets for summarizing the results, and the web scraping guide for every other scraper.

Text and scraping formulas run on the free allowance. Install from the Google Workspace Marketplace, no card, no expiry.

Install free for Google Sheets

About the author

Phil NguyenPhil builds SheetMagic, the Google Sheets add-on that brings AI and web scraping into the spreadsheet, used by 6,300+ people. He writes these guides from the formulas he runs on his own sheets.