Skip to main content
— How-to

Log quiz results to Google Sheets

Alva Courses sends a Course quiz graded trigger to Shopify Flow each time a student’s quiz attempt is graded. Connect it to the Google Sheets action Add row to spreadsheet and every attempt becomes a row: the student, the course and quiz, the result, the score and the attempt number.

What this workflow does

This workflow writes one spreadsheet row for every graded quiz attempt in Alva Courses. Each row records when it happened, the student’s email, the course, lesson and quiz, whether they passed, failed or ran out of time, their score against the passing score, and which attempt it was.

A quiz counts as graded when Alva Courses marks it. Quizzes with answers you review by hand are reported once you finish reviewing them, and a later re-grade that turns a pass into a fail, or the reverse, adds a new row. Every field is listed in Shopify Flow triggers and their fields.

Build the workflow

1. Prepare the spreadsheet

Create a Google Sheets spreadsheet and rename its first tab Quiz results. In row 1, add these headings: Date, Email, Course, Lesson, Quiz, Result, Score, Passing score, Attempt, Manually reviewed and Lesson URL.

2. Create a workflow with the Course quiz graded trigger

In the Shopify admin, open Apps, then Flow, and click Create workflow. Click Select a trigger, find Alva Courses and choose Course quiz graded.

3. Add the Add row to spreadsheet action

Add an action after the trigger and choose Add row to spreadsheet from Google Sheets. If Flow asks you to install or connect Google Sheets, follow its prompts and sign in with the Google account that can edit the spreadsheet.

4. Point it at your spreadsheet

In Spreadsheet URL, paste the spreadsheet’s address from your browser. In Tab name, enter Quiz results, spelled exactly as the tab is named.

5. Fill in the row

Row contents (comma separated) takes one value per column, with a comma between them. Start with {{ "now" | date: "%Y-%m-%d %H:%M" }} for the date, then use Add a variable to insert, in this order: the customer’s email, Course title, Lesson title, Quiz title, Result, Score, Passing score, Attempt number, Manually reviewed and Lesson URL.

6. Name the workflow and turn it on

Name the workflow Log quiz results to Google Sheets and click Turn on workflow. Alva Courses only sends Course quiz graded to Flow while a turned-on workflow uses it, so attempts graded before this step are not added.

Stop commas from splitting a title

A comma inside a value starts a new column, so a course called “Watercolour, level 1” would push every later value one column to the right. The fix is Liquid’s replace filter, which swaps each comma for a space before the row is written.

After inserting a title with Add a variable, add the filter inside its braces: {{ courseTitle }} becomes {{ courseTitle | replace: ",", " " }}. Do the same for Lesson title and Quiz title. Results, scores and lesson links never contain commas.

Why the answers are not in the row

Course quiz graded also carries Answers: every question, the student’s answer and whether it was right. It is left out of this row because it can run to thousands of characters and is full of commas. To read a student’s answers, email them to yourself instead, as in Email me when a student fails a quiz.

Test the workflow

Sign in to your storefront as a test customer and take a quiz twice: once answering well and once answering badly. Two rows should appear in the Quiz results tab, one with the result passed and one with failed.

No rows? Check the workflow’s recent runs in Shopify Flow for a Google Sheets error, such as a misspelled tab name. Then open Settings → Integrations → Shopify Flow in Alva Courses and look for Course quiz graded under Flow activity → Triggers sent.

Log one course, or failures only

Add a condition between the trigger and the action to narrow the log. Course ID is equal to a course’s Flow ID keeps one course; Alva Courses lists every Flow ID under Settings → Integrations → Shopify Flow, in Course IDs for Flow. Passed is equal to false keeps only failed and timed-out attempts.

To act on a result rather than record it, add one of Alva Courses’ own actions. Extend or set course access, for example, can give a student who failed a final quiz more time to retake it; see Shopify Flow actions.

See also

Was this helpful?

Still stuck? Email us.

Last updated 2026-10-01