Google reviews to Google Sheets

A business with twelve sites has twelve reputations. One sheet holds all of them, one row per review with the shop named on it, kept in sync every thirty minutes.

Set up in under five minutes • No demo required

Copperfield Bakehouse Synced 8 min ago
Row B E H J
1 Profile NameOverallScoreReview Date
2 Copperfield Bakehouse Stockport Queue out the door and one person on the till. Twenty minutes for two coffees and a sausage roll. 2 2026-09-07 14:12
3 Copperfield Bakehouse Didsbury Ordered the birthday cake on Tuesday, collected it Saturday, and it was exactly the drawing my daughter gave them. 5 2026-09-07 13:41
4 Copperfield Bakehouse Chorlton Sourdough is still warm at nine in the morning and they slice it for you without being asked. 5 2026-09-07 11:26
5 Copperfield Bakehouse Stockport Card machine down again, cash only, and no sign on the door until you reach the front of the queue. 1 2026-09-07 10:58
6 Copperfield Bakehouse Altrincham Good flat white and proper tables. The pain au raisin was yesterday’s and they took it off the bill. 3 2026-09-06 16:04
7 Copperfield Bakehouse Ancoats Bardzo dobre pieczywo i miła obsługa, ale w sobotę rano nie ma gdzie usiąść. 4 2026-09-06 09:37
Reviews Pivot
  • chewy
  • qonto
  • brevo
  • jins
  • filmin
  • lugg

Twelve shops, twelve reputations, one league table

A chain does not have a rating. Every shop has its own Google Business Profile, its own star average and its own reviewers, so a business with twelve sites is watching twelve reputations. The group figure is the average of all of them, and an average is the one thing guaranteed to hide the site that moved.

In the sheet, every review arrives with the shop it came from in column B. So the table people keep asking for is a pivot: locations down the side, months across the top, the average rating in the cells. Build it once and it rebuilds itself, because the rows underneath it keep arriving.

That is the table where Stockport shows up. The group held at 4.5 all summer while Stockport went 4.6 in June, 4.4 in July, 4.0 in August. Nobody saw it on the group number, because 4.5 across twelve shops did not move and Stockport is one twelfth of it.

Put the review count beside the average and you can tell a slide from a bad week. Twenty-seven reviews averaging 4.0 is a shop with a problem. Four reviews averaging 4.0 is three annoyed customers on one Saturday.

Copperfield Bakehouse
Google Sheets · synced by Reviewflowz
D7 =AVERAGEIFS(Reviews!$H:$H,Reviews!$B:$B,$A7,Reviews!$J:$J,">="&D$1,Reviews!$J:$J,"<"&EDATE(D$1,1))
Row A B C D E
1 Location JunJulAugSep
2 Altrincham 4.7 4.7 4.6 4.7
3 Ancoats 4.4 4.4 4.3 4.4
4 Chorlton 4.6 4.5 4.6 4.6
5 Didsbury 4.5 4.4 4.5 4.5
6 Sale 4.5 4.6 4.5 4.4
7 Stockport 4.6 4.4 4.0 3.9
8 All 12 shops 4.5 4.5 4.5 4.5
Reviews Pivot

Google reviews arrive on Saturdays

Google review volume tracks footfall. Nobody is invited to write one, so the count follows the number of people who came through the door: it climbs at the weekend, jumps after a campaign, and falls off the week a road closure puts scaffolding across the entrance.

A monthly average flattens all of that into one number. Over the last ninety days these twelve shops took 231 reviews on Saturdays and 89 on Tuesdays. Same business, same twelve counters, and the monthly figure reports neither.

The sheet keeps the full timestamp on every row, so a pivot by weekday is one drag and a pivot by weekday and shop is two. A shop whose Saturdays are quiet while everyone else's are busy is a staffing question rather than a reputation question, and it stays invisible until the rows are in one place.

It also lets you put a date beside something you did. A refit, a new manager, a leaflet drop: the rows are timestamped to the minute, so the change either lines up with it or it does not.

Copperfield Bakehouse
Reviews by weekday · last 90 days · 12 shops
B7 =SUMPRODUCT((TEXT(Reviews!$J$2:$J,"dddd")=$A7)*(Reviews!$J$2:$J>=TODAY()-90))
Row A B C
1 Weekday Reviews Chart
2 Monday 96
3 Tuesday 89
4 Wednesday 94
5 Thursday 104
6 Friday 141
7 Saturday 231
8 Sunday 175

Reviewflowz writes the review timestamp. It does not know how many people walked in.

Reviews Pivot

The same twenty-eight columns on every row

The sync writes one fixed header, twenty-eight columns wide, and it is the same header on every sheet it has ever written. Review ID in column A, the shop in column B, then the platform, the review text, the score, the timestamp, the language it was written in, the reviewer, and the tags Reviewflowz worked out from what the review means rather than which words it used.

Because the header never changes, a formula written against it never breaks. Column letters stay put when you open a thirteenth shop, so the pivot on the second tab keeps working and nobody has to go and find out where the score moved to.

Some of those columns exist for other kinds of platform and stay empty on a Google row, pros and cons and reviewer job title among them. They keep their place in the header anyway, because a header that changes shape depending on the platform is a header no formula can trust.

Your replies are not in the sheet. Reviewflowz posts replies to Google for you, and the sheet is the counting instrument, not the inbox.

Reviews · row 2
The header the sync writes, 28 columns, A to AB
Column A, Review ID 4182773
Column B, Profile Name Copperfield Bakehouse Stockport
Column C, Platform Google Maps
Column E, Overall Queue out the door and one person on the till. Twenty minutes for two coffees and a sausage roll.
Column H, Score 2
Column J, Review Date 2026-09-07 14:12
Column K, Language en
Column L, Reviewer Name Hannah Prescott
Column Z, Tags Queue, Service
Column AA, Review Owners Tom Beckett
Column AB, External Review ID ChZDSUhNMG9nS0VJQ0FnSUR1cV9tWkl3

These sit in the header for the other platforms Reviewflowz syncs and stay empty on a Google row. A header that changes shape by platform is a header no formula can trust.

A sync, not twelve JSON files in twelve folders

Google Takeout will give you your reviews. It gives them as JSON, one reviews.json inside one folder per location inside one folder per account, so twelve shops means twelve files and merging them is your problem. The rating comes out as the word FIVE rather than the number 5, so before you can average anything you are writing a lookup.

Reviewflowz creates one spreadsheet in your Google Drive, writes the header, and keeps it current from then on. The sync runs every thirty minutes. New reviews are inserted at the top, newest first, so the sheet opens on what just happened. A review its author edits updates its own row rather than arriving twice, because every row is keyed on the review ID in column A.

That is the difference between a sheet and an export. Nobody re-runs anything, nobody is the reason it is current, and the week the person who owns the file is away is a week like any other.

Seeding it with your past Google reviews is a step you take once, on a paid plan, and the history is there from the first morning. Reviewflowz asks Google for access to the one file it created and nothing else in your Drive.

Google Takeout, one archive
Google Business Profile/
account-104938271/
location-8823/ reviews.json Stockport
location-8824/ reviews.json Didsbury
location-8825/ reviews.json Chorlton
9 more folders, 9 more reviews.json

JSON only, no CSV, and starRating is the word FIVE rather than the number 5.

Copperfield Bakehouse · Google reviews
Written by Reviewflowz every 30 minutes, at :02 and :32
14:02
2 rows inserted at row 2
Stockport and Didsbury, newest first, above everything already there.
14:32
Nothing to write
No new Google reviews, no edits, no removals. The sheet is left alone.
15:02
Row 47 updated in place
Chorlton. The reviewer rewrote it, so the row changed rather than arriving twice.
15:32
1 row inserted at row 2
Ancoats. Row 47 is now row 48, and its Review ID in column A never moved.

One sheet for the group. One for the shop.

A sync covers the profiles you point it at. Point one at all twelve and that sheet is the whole estate, with the shop named on every row. Point a second one at Stockport alone and that sheet is Stockport, in its own file in Drive, with its own link.

That is how a shop manager gets their own reviews and nothing else. You are not handing them a filter view on the group sheet and hoping nobody clears it. They get a spreadsheet that only ever contained their rows.

Narrow it further on the way in. A sync can be restricted by score, so a sheet holding only the two star and below reviews is a setting rather than a formula, and that is the sheet worth putting in front of somebody every morning. You can also require the review to have text, which drops the bare star ratings.

Language and tags are columns in the sheet rather than settings on the sync, so slicing by them is a COUNTIFS over the whole history instead of a filter that only applies to whatever arrives from now on.

Two syncs, two spreadsheets in Drive
Copperfield Bakehouse · Google reviews
Sync 1 · every 30 minutes
4,180
rows
Google Business Profile listings
StockportDidsburyChorltonAltrincham +8 more
Conditions
All reviews, every score
Text not required
Stockport · needs a reply
Sync 2 · every 30 minutes
34
rows
Google Business Profile listings
Stockport
Conditions
Score is 2 or less
Review has text

Score and text are the conditions a Google sync offers. Filtering by language or by a keyword happens in the sheet, not on the way in.

The Monday meeting already runs on a spreadsheet

Twelve shop managers are not going to log in to a review tool, and they should not have to. A Google Sheet is the document they already open on a phone in the back of the shop. No seat, no onboarding, no password anyone has to reset in October.

Share it as a viewer and they see live rows, the pivot you built and the chart on top of it. Keep the editor seat for the one person who owns the formulas. The review tab carries a protected range that warns anyone typing over it that the sync will overwrite them, so the file survives being shared widely.

Build the pivots on a second tab and the review tab stays the source. The area manager covering four shops opens the same file as head office and reads four rows of the pivot instead of one.

Point Looker Studio or the monthly deck at that same spreadsheet rather than keeping a copy that drifts. One document, one set of numbers, and nobody arguing about whose export is the current one.

Copperfield Bakehouse · Google reviews
Written by Reviewflowz every 30 minutes
Priya Raval (you)
priya@copperfieldbakehouse.co.uk
Editor owns the formulas
Shop managers
managers@copperfieldbakehouse.co.uk
Viewer 12 people
Area North
area-north@copperfieldbakehouse.co.uk
Viewer 4 shops
Dev Chaudhry
finance@copperfieldbakehouse.co.uk
Viewer month end
Leadership
leads@copperfieldbakehouse.co.uk
Viewer the pivot tab

This sheet is automatically managed by Reviewflowz. Manual edits may be overwritten during sync.

General access: Restricted. Nobody needs a Reviewflowz login to read it.

Put every location's Google reviews on the same rows

Set up in under five minutes. No demo required.

Is this a one-off export or a live sync?

A live sync. Reviewflowz creates the spreadsheet in your Google Drive and writes it every thirty minutes: new Google reviews are inserted at the top, newest first, an edited review updates its own row, and a removed review loses its row. Nobody re-runs anything.

How does the sheet say which location a review came from?

Column B, Profile Name, on every row. Each Google Business Profile listing is its own review profile in Reviewflowz, so connecting one Google account brings in every open listing at once and each review lands with its shop beside it. Column B carries the listing name as Google has it, so if all twelve of your listings read the same, rename each profile in Reviewflowz once, before you seed the history, and every row after that says which shop.

Which columns land in the sheet?

A fixed header, twenty-eight columns, the same on every sync. Review ID in column A, then the profile name, the platform, the review text, the score, the timestamp, the language, the reviewer name, the tags and Google's own review ID. The header also carries columns only other platforms fill, pros and cons and reviewer job title among them, and those stay empty on a Google row. Your replies to reviews are not in the sheet.

Does the first sync include our Google review history?

Yes, on a paid plan. Once the sync is on, Reviewflowz offers to seed the spreadsheet with your past Google reviews and keeps it current from there. On the free trial that seeding step is locked, so a trial sheet fills from new reviews only.

Can I choose which Google reviews go in?

Yes. Each sync covers the profiles you pick, and you can restrict it by score (at or below two stars, for example) and to reviews that have text. Those are the filters a Google sync offers; there is no language filter and no keyword filter on the sync itself.

Can Reviewflowz see the rest of my Google Drive?

No. The Drive permission it asks for covers files it created itself, which is the one spreadsheet. It cannot list, read or change anything else in your Drive.

Do I need a demo to get started?

No. You connect your Google Business Profile, pick Google Sheets as the destination and connect your Google account yourself, in under five minutes. 14 day free trial, no credit card.