Turn your Google Forms quizzes into a real gradebook

By General Input

See every learner's score, pass or fail flag, and question by question breakdown in one place, plus which questions your whole cohort keeps getting wrong.

Integrations

  • Google Forms
  • Google Sheets
  • Gmail

Type

App

Categories

  • HR & People
  • Operations

Build me an app that turns the training quizzes I run in Google Forms into a proper gradebook, because the built in response summary is far too thin. When I open the app I pick one of my quiz forms and everything else works off that selection.

Reading the quiz. Use the Google Forms Get Form operation to read the quiz structure: every question, its text, its point value and its correct answers. This only applies to forms in quiz mode, so if the selected form has no grading information, show a clear empty state saying the form is not a quiz and to switch quiz mode on in Google Forms, rather than rendering a broken roster of zero scores. Pull submissions with the Google Forms List Responses operation, and page through using the next page token until there are no more pages, so the app keeps working on high volume forms where the native Forms summary degrades. Use Get Response when a single submission needs to be reloaded on its own.

View one, the gradebook. A roster table of everyone who submitted, one row per learner, showing their name or email, their total score, their score as a percentage, a clear pass or fail flag measured against a pass mark I set, and a compact per question breakdown of which items they got right and wrong. Let me sort by score and filter to just the people who failed. The pass mark is editable per quiz, so each quiz remembers its own threshold, and changing it reflags the roster immediately without needing a refetch of the responses.

View two, item analysis. Rank every question in the quiz by how often the cohort got it wrong, hardest first, showing the question text, the number and percentage of learners who missed it, and the correct answer. The point is to show me which material is not landing, rather than only which individuals failed. This view needs an anonymized cohort mode I can toggle on, which keeps all the item statistics but hides every learner name, so I can share the analysis with other trainers or course owners without exposing individuals.

Learner detail. Clicking any learner in the roster opens their detail, showing each question with their submitted answer sitting beside the correct answer, marked right or wrong, with points earned against points available, plus their total and their pass or fail status.

Persistence in Google Sheets. Google Sheets is the durable store so results survive across cohorts. Use Get Values to read the cohort roster, my saved pass mark per quiz, retake status and the running gradebook history when the app loads. Use Append Values to add new graded rows to the gradebook history, and Update Values to save an edited pass mark, to flip a learner's retake status, and to update rows that already exist. Each cohort should add to the history rather than overwrite the previous one, so I can compare how different groups did on the same material.

Background agent on each learner row. Add a Write coaching feedback button to every learner row that kicks off a background agent for that one person. The agent reads that learner's wrong answers together with the question text and the correct answers, drafts a personalized feedback and retake email, and creates it in Gmail using the Create a Draft operation. It must always stop at the draft stage so I review and send it myself, so never call Send a Draft and never send anything automatically. When the agent finishes it writes a one line summary of the feedback back into the gradebook sheet with Append Values or Update Values, and the app shows that summary on the learner's row so I can see at a glance who has already had feedback drafted and what it said. Show the button in a running state while the agent works and surface a clear error on the row if the draft could not be created.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to Loops