Browse the docs

Agent setup guide

Student Progress Notes

Drafts a warm guardian update per student from your gradebook; the teacher approves the batch, then it emails guardians and files a page per class.

Available About 25 min to set up

What it does

Drafts a warm guardian update per student from your gradebook; the teacher approves the batch, then it emails guardians and files a page per class.

  • On your reporting schedule (monthly by default), reads your gradebook in Google Sheets: up to 50 students per run.
  • For each student, AI drafts a short, warm update for the guardian from the marks and the teacher's comment in the row, listing every figure it used, and skips rows without a guardian email or marked not to send.
  • The whole batch waits in Reviews; the teacher edits any update or holds any student, then approves.
  • Each approved update is checked in code (still marked to send, guardian email present, no placeholders) and by an AI wording check that only stops figures not in the row, grading or predictions, comparisons, labels and sensitive details — then emailed with replies to your office or teacher inbox.
  • Files one Notion page per class with each student's update as sent, or held and why — the sent / held list is counted in code.
  • The summary is counted in code from what each step really did (sent, held, skipped, failed), so it never reports a held message as sent.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Google Sheets and Notion, connected in Settings → Integrations.
  • A gradebook tab (one row per student, with a guardian email) and a Classes tab, plus a Notion database for class records.

What it doesn't do

  • It drafts and organises for a person to approve; it makes no grading decision.
  • It doesn't grade or assess: it never calculates, predicts or changes marks, and only writes up what the sheet already says.
  • Nothing is emailed before the teacher approves the batch.
  • Student-data rules (FERPA, GDPR, your policies) are the school's to apply; it doesn't make health, needs or family inferences.
  • It handles up to 50 students per run; set up one copy per class tab for more.

Availability and plans

Available

Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.

Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.

Before you start

  • A paid plan: agents run live, and the Free plan only runs Dry Runs.
  • An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
  • These apps, connected in Settings → Integrations: Google Sheets and Notion.
  • Nothing to send: the agent runs on a schedule.
  • About 25 minutes.

Set it up step by step

Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.

1. Connect your AI provider

The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.

2. Connect Google Sheets

Connect the Google account that can open your gradebook (Settings → Integrations → Google Sheets).

3. Connect Notion

Connect Notion and share your progress-notes database with Fluxo Flow (Settings → Integrations → Notion).

4. Describe your school and gradebook

Open “Draft the guardian update” and replace the placeholder with your period, columns, tone and sign-off.

SettingWhat to enterIn step
Your school and gradebookReplace the placeholder with your school or centre name, the reporting period, what each gradebook column means (scales, targets), the tone you want and the sign-off. It starts as “[DESCRIBE YOUR SCHOOL OR CENTRE, THE REPORTING PERIOD, WHAT EACH GRADEBOOK COLUMN MEANS (SCALES, TARGETS), THE TONE YOU WANT AND THE SIGN-OFF HERE]” until you replace it.“Draft the guardian update”

5. Pick your gradebook and Classes tabs

Open “Read the gradebook” and “Read the class list” and pick the account, spreadsheet and tab for each.

SettingWhat to enterIn step
Google account (gradebook)The Google account that can open your gradebook spreadsheet. Pick your connected Google Sheets account.“Read the gradebook”
Gradebook spreadsheetPaste the link of your gradebook spreadsheet. Keep its sharing restricted to staff.“Read the gradebook”
Gradebook tabOne row per student: Student, Class, Guardian name, Guardian email, Attendance, marks, Target, Teacher comment, Send.“Read the gradebook”
Google account (class list)The same Google account. Pick your connected Google Sheets account.“Read the class list”
Class list spreadsheetUsually the same spreadsheet as the gradebook.“Read the class list”
Classes tabOne row per class: Class (as written in the gradebook), Teacher.“Read the class list”

6. Add your Reply-to inbox

Open “Email the guardian” and enter where guardians' replies should go.

SettingWhat to enterIn step
Office or teacher inbox (Reply-to)Guardians' replies come back to this address.“Email the guardian”

7. Pick the Notion database

Open “File the class page in Notion” and pick your account and database.

SettingWhat to enterIn step
Notion accountThe Notion workspace where class records are kept. Pick your connected Notion account.“File the class page in Notion”
Progress-notes databaseOne page per class per period is created here (title property “Name”). Share it with Fluxo Flow first: ••• → Connections. Keep access to staff.“File the class page in Notion”

8. Test it with Dry Run

Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.

9. Switch the trigger on

Open the trigger, set your time zone and reporting dates (monthly by default), and switch the schedule on. Update the gradebook before each run.

How it works

The agent is a normal workflow with 18 steps (3 AI steps, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.

  • 1st of each month at 8:00 — Runs on a schedule (cron 0 8 1 * *, UTC — change it in the trigger's settings). Runs on the 1st of every month. For termly reports, change the schedule on the trigger to your reporting dates. Set your time zone.
  • Read the gradebook — Google Sheets: Read rows. Reads your gradebook tab: one row per student with class, guardian name and email, attendance, marks and the teacher's comment.
  • Read the class list — Google Sheets: Read rows. Reads your Classes tab (Class, Teacher), used to file one Notion page per class.
  • Each student — Repeats the steps below for each item (up to 50 per run). Repeats the draft step for every student row (up to 50 per run).
  • [For each item — “Each student”] Draft the guardian update — AI step (runs on your AI provider key). AI writes a short, warm update for the student's guardian using only the numbers and the teacher's comment in the row. It doesn't grade or assess.
  • Teacher approves the batch — A person approves or rejects it in Reviews (the run waits). All the drafts wait in Reviews together. The teacher edits any update, sets send to false on any that shouldn't go out, and approves the batch; nothing is sent before that.
  • Each approved update — Repeats the steps below for each item (up to 50 per run). Branch: Approved. Repeats the checks and send for every update in the approved batch.
  • [For each item — “Each approved update”] Final check on the wording — AI step (runs on your AI provider key). AI reads each approved update for figures that aren't in the gradebook figures it listed, grading or predictions, comparisons, labels and sensitive details only — stating the marks from the row, strengths and a next step is fine. It must quote the exact sentence it objects to.
  • [For each item — “Each approved update”] Check before sending — Step. In code: drafted to send, still marked to send after review, guardian email present, and a subject and body with no placeholders left — plus the wording check's verdict. Anything that fails is held, with the reason.
  • [For each item — “Each approved update”] Send it? — Decision: picks the branch to follow. Updates that pass every check are emailed; skipped and held ones are listed on the class page with the reason.
  • [For each item — “Each approved update”] Email the guardian — Sends an email from your workspace's sender. Branch: Passes. Sends the approved update to the guardian from your workspace's sender, with replies going to your school office or teacher inbox.
  • [For each item — “Each approved update”] Held — Kept in the run history. Branch: Held. Skipped, set to not send or stopped by a check; the reason is on the class page and in the run history.
  • Count what happened — Step. In code, not AI: sorts every approved update into sent, skipped, held (with the reason) or failed, from what each step really did — the class pages are filed from this list.
  • Each class — Repeats the steps below for each item (up to 40 per run). Files one Notion page per class from your Classes tab.
  • [For each item — “Each class”] Write the class record — AI step (runs on your AI provider key). AI lays out the class's page: each student's update as approved, with whether it was sent or held (and why) copied from the code count.
  • [For each item — “Each class”] File the class page in Notion — Notion: Create a page in a database. Creates the class's page in your Notion progress-notes database, for the teacher's records.
  • Batch finished — Kept in the run history. Updates sent and class pages filed; counts are in the run history.
  • Batch rejected — Kept in the run history. Branch: Rejected. The teacher rejected the batch; nothing was sent or filed.

Test it with Dry Run

Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
  • Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.
  • For-each loops repeat only the first 3 items.

Go live

  • Open the trigger, set your time zone and reporting dates (monthly by default), and switch the schedule on. Update the gradebook before each run.
  • Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
  • The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
  • When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.

Questions

Does it grade students?

No. It only writes up what the gradebook row already says: it never calculates averages, predicts grades or ranks students, and every figure in an update is checked against the row before sending.

How many students per run?

Up to 50 per run (each run has an AI cost cap). For larger groups, set up one copy per class or year-group tab.

Who handles student-data rules?

You do. FERPA, GDPR and your own policies are the school's to apply. The agent sends each update only to the guardian email in the row and files the class record in your Notion workspace; it doesn't copy guardian emails into Notion.

Troubleshooting

  • “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
  • A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
  • An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
  • It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
  • A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
  • A step failed: open the run in History and check that step in the Trace tab for the error and what it received.

Generated from the agent's own workflow, so it always matches what the agent does. Last updated .