See llms.txt for all machine-readable content.

Back to Templates

Track tutoring sessions and send parent reports with Google Sheets, Gmail, and GPT-4o

Tutors finish a session and the admin work starts: log it, tell the parent what happened, count down the package and remember who needs to renew. This workflow does all of that from one short form. GPT-6.1-sol writes the parent summary from the tutor's own notes, Google Sheets keeps the ledger and balances, and Gmail handles the emails. It also blocks double logged sessions, catches students who are not on the roster, and lets the tutor read sensitive or weak summaries before a parent sees them.

Last updated: November 2026.

Quick Overview

A hosted form collects the student, tutor, parent email, date, minutes, topic, notes and homework. A Set node adds a session id, and invalid entries are written to an Errors tab with an email to the tutor. The Sessions tab is checked so the same student, tutor and date cannot be logged twice. The Students tab is looked up, and a name that is not on the roster is logged and sent back to the tutor instead of being charged to nobody. The model writes a parent summary, progress note, homework note and engagement flag. The session is logged, then a Code check holds summaries that are too short, too long, missing a progress note or flagged needs_attention, and those go to a Review tab and the tutor's inbox. Clean summaries go to the parent and the Gmail message id is saved on the session row. The package balance is updated either way, and a low balance triggers a renewal email that is stamped on the student row. A Monday digest lists low balances and lapsed students, and a monthly lane emails each parent a progress report and logs it.

How it works

  1. Session Log Form, Normalize Session and Validate Session collect the entry. Bad entries go to Log Invalid Session and Email Tutor Invalid Session.
  2. Read Logged Sessions and Check Duplicate Session match student, tutor and date. Session Already Logged? stops repeats with Email Tutor Duplicate Notice.
  3. Lookup Student Package and Compute Session Balance find the package and the remaining sessions. Student Found? sends unknown names to Log Unknown Student and Email Tutor Unknown Student.
  4. AI Session Summary writes the parent text with retries, Build Session Record assembles the email and Log Session appends it to Sessions.
  5. Check Summary Quality and Summary Safe To Send? release good summaries to Email Parent Session Summary and Record Summary Delivery. Held ones go to Queue Summary For Tutor Review and Email Tutor Review Request.
  6. Update Student Balance writes sessions used and remaining. If Low Balance sends Email Parent Renewal Reminder at two sessions or fewer, then Mark Renewal Reminded stamps the student row.
  7. Weekly Tutor Digest emails low balance and lapsed students every Monday.
  8. Monthly Parent Progress groups last month's sessions, AI Write Progress Reports drafts each report, Email Parents Progress Report sends it and Log Progress Report records it.

Setup

  1. Use one spreadsheet with the tabs Students, Sessions, Errors, Review and Progress Reports. Sessions also needs parent_email_id and parent_emailed_at, and Students needs renewal_reminded_at.
  2. Connect Google Sheets on every Sheets node and pick the spreadsheet.
  3. Connect your OpenAI credential on both model nodes and choose GPT-6.1-sol.
  4. Connect Gmail and replace [email protected] in the digest node.
  5. Share the form URL with tutors and log one test session.

Quick Answers

What if a tutor submits the same session twice?
Check Duplicate Session finds the same student, tutor and date in Sessions, and the tutor gets a notice instead of the parent getting a second email.

When does a summary go to the tutor instead of the parent?
When it is under 15 or over 120 words, has no progress note, has an unknown flag, or the model marked the session needs_attention.

Is the package still charged when a summary is held?
Yes. The session is logged and the balance is updated on both paths, only the parent email waits.

How do I see which parents got their monthly report?
Log Progress Report adds a row per student with the month, session count and Gmail message id.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/