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?
Last updated 2026-10-01