Pivot your Google Forms 360 reviews by person, not submission
Every employee in the cycle with how many raters have replied, their scores per competency, and anonymous written comments in one place.
Build me an app for running our 360 review cycle. We collect the reviews with a Google Form: each rater picks the colleague they are reviewing from a question on the form, scores them on a handful of competencies, and leaves written comments. Google Forms hands that back as a flat list of submissions, and what I actually need is a view per person being reviewed. The pivot by subject is the entire point of this app.
Start by reading the form itself. Use Google Forms Get Form on our review form to pull its full structure, and from the items work out which question identifies the review subject (the one where the rater picks the colleague they are reviewing), which questions are competency ratings, and which are free text comment questions. Then use Google Forms List Responses to pull every submission, following the page token until you have all of them. Group the responses by the answer to the subject question so each employee ends up with a bundle of responses about them. Let me confirm or correct the question mapping in a settings screen in case the form wording is ambiguous.
Google Sheets is the backbone for everything the form cannot tell you, read with Google Sheets Get Values. A Roster tab lists everyone in the review cycle with their email, their team, and their manager's email. A Raters tab lists, for each person being reviewed, the raters expected to submit feedback about them, with each rater's email and their relationship to the subject such as peer, manager, or report. A Cycle tab holds the cycle name, the form ID, the open and close dates, and the cycle status. That expected rater list is what makes completion tracking possible: without it we would know how many people responded but not how many were supposed to.
The main screen is the cycle overview: one row per employee in the roster showing their name and team, how many of their expected raters have submitted out of the total expected, a completion bar, and their average score on each competency once enough feedback is in. Let me sort and filter by completion so I can immediately see who is behind. Show the cycle name, the close date, and overall cycle completion at the top.
Clicking a person opens their page. Show their score on each competency along with the spread across raters, because a 4.0 where every rater said 4 means something very different from a 4.0 that averages a 2 and a 6. Give me the average, the range or distribution, and the number of raters behind each competency. Below that, list every written comment about them grouped by the question it answered, with rater identity completely stripped: no names, no emails, no response IDs, no submission timestamps that could be matched back to a person, and no ordering that mirrors the rater list. Also show how many of their expected raters are still outstanding.
Bake in an anonymity floor and treat it as the hard rule of the app. Until at least three raters have submitted about a person, do not display their individual comments, their per competency scores, or any development summary. Show only the completion state: how many expected raters have submitted and how many are missing. Never show rater names anywhere in the interface, on any screen, in any export, or in any generated text. Make the floor a single configurable number so we can raise it if our policy changes.
Add a "Nudge missing raters" action on a person's page. Compare the expected raters in the Raters tab against the responses received to work out who has not submitted, then use Gmail Create a Draft to prepare a reminder email to each of them, naming the colleague they still owe feedback on, linking to the form, and mentioning the cycle close date from the Cycle tab. Create drafts rather than sending, so whoever runs the cycle can read and edit before anything goes out. Because knowing who has not submitted also implies who has, restrict the missing rater list to HR admins, keep it behind the nudge action rather than showing it beside the feedback, and never surface it to a manager viewing their reports.
Add a "Draft development summary" button on each person's page that fires a background agent. The agent reads all the feedback about that one employee, the competency scores and the written comments together, and writes a manager-ready narrative: what they are consistently strong at, where the feedback points to growth, and where raters disagreed with each other. The agent must never attribute anything to an identifiable rater: no names, no phrasing like "their manager said", no quoting a comment so distinctive it gives away the author, and no breakdown by rater relationship thin enough to single someone out. Paraphrase themes, and only call something a pattern when more than one rater raised it. When it finishes, save the summary into the app so it renders on the person's page, and write it back to that person's row in the sheet with Google Sheets Update Values, using Append Values to add the row if that person does not have a summary row yet. Show the agent's progress in the app while it runs, and disable the button entirely for anyone below the anonymity floor.
Two roles. HR admins see the whole cycle: every person, every completion bar, the missing rater lists, and both actions. A manager sees only their own reports, matched on the manager email column in the Roster tab, with the rest of the cycle scoped out of their data entirely rather than merely hidden in the UI. Managers get the anonymity floor and the stripped comments just like everyone else. Read the role assignment from the sheet or from the signed in user's email so we can maintain it without editing the app.
Add a refresh that re-pulls the form responses and the sheet, and show when the data was last pulled. A single cycle is at most a few hundred submissions, so a full re-pull on refresh is fine.
What does this prompt do?
- Regroups every form submission by the person being reviewed, so a flat list of responses becomes one page per employee.
- Shows the whole cycle at a glance: how many of each person's expected raters have submitted, a completion bar, and their average score on every competency.
- Opens a page per employee with scores per competency, how widely raters disagreed, and all written comments with the author removed.
- Keeps feedback hidden until at least three raters have submitted, never shows a rater's name, and lets you draft reminder emails or a manager-ready development summary in one click.
What do I need to use this?
- A Google account with access to your 360 review form and its responses
- A Google Sheet holding the cycle: who is being reviewed, which raters are expected for each person, and who each person's manager is
- A Gmail account to prepare the reminder emails from
- A review form where one question asks the rater which colleague they are reviewing, and the rest score named competencies
How can I customize it?
- Raise or lower the anonymity floor from three raters to whatever your policy requires
- Set who sees what: HR sees the full cycle, a manager sees only their own reports
- Reword the reminder emails and the deadline they reference
- Add or rename competencies by editing the form, and the app picks up the new questions
FAQs
Will raters stay anonymous?
Do I have to rebuild my Google Form?
Can a manager see feedback about other teams?
What happens when someone only has one or two responses so far?
Does it send the reminder emails automatically?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
A calibration board that lines up every candidate's answer to the same question, hides names until your panel has scored, and writes the agreed rating back.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Stop reading 360 feedback as a flat list of form responses.
Give HR and managers one screen per employee, with the anonymity rules handled for you.