Agent setup guide
PTA Fundraiser Progress Update
Weekly during a campaign: class totals and sponsors become an upbeat progress update with a class leaderboard, approved by the committee and emailed to parents.
What it does
Weekly during a campaign: class totals and sponsors become an upbeat progress update with a class leaderboard, approved by the committee and emailed to parents.
- Every Monday during your campaign, reads your class-totals and sponsors tabs in Google Sheets.
- AI lists the class totals (and the sponsor amounts your campaign counts), builds the top-5 class leaderboard and lists sponsors who may be thanked publicly.
- The total raised and the percent of your goal are recalculated in code before anyone sees them — never by the AI; anything the AI got wrong is corrected and flagged.
- It writes an upbeat update with the progress, the leaderboard, sponsor thank-yous, days left and your giving link.
- A committee member approves the update in Reviews; then it's emailed to your parent list address.
- The committee gets the week's numbers in Slack.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Google Sheets and Slack, connected in Settings → Integrations.
- A class-totals tab and a sponsors tab, and one parent-list email address.
What it doesn't do
- It uses class and grade totals only: no student names and no per-family amounts, ever.
- It doesn't collect money or track pledges per family.
- It sends to one list address (e.g. your Google Group) and doesn't manage the list.
- Nothing reaches parents before the committee approves.
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 Slack.
- Nothing to send: the agent runs on a schedule.
- About 15 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 fundraiser spreadsheet (Settings → Integrations → Google Sheets).
3. Connect Slack
Connect the Slack workspace your committee uses (Settings → Integrations → Slack).
4. Pick your fundraiser tabs
Open “Read the class totals” and “Read the business sponsors” and pick the account, spreadsheet and tab in each.
| Setting | What to enter | In step |
|---|---|---|
| Google account (class totals) | The Google account that can open your fundraiser spreadsheet. Pick your connected Google Sheets account. | “Read the class totals” |
| Class totals spreadsheet | Paste the link of the spreadsheet with your class totals. | “Read the class totals” |
| Class totals tab | The tab with one row per class or grade and its total, e.g. “Class totals”. | “Read the class totals” |
| Google account (sponsors) | The same Google account, used to read the sponsors tab. Pick your connected Google Sheets account. | “Read the business sponsors” |
| Sponsors spreadsheet | Paste the link of the spreadsheet with your sponsors. | “Read the business sponsors” |
| Sponsors tab | The tab with your business sponsors (Business, Level, Amount, Public thank-you), e.g. “Sponsors”. | “Read the business sponsors” |
5. Paste your campaign details
Open “Write the progress update” and replace the placeholder with your goal, end date, giving link and sign-off.
| Setting | What to enter | In step |
|---|---|---|
| Your campaign details | Replace the placeholder with your PTA's name, the campaign name, goal, end date, what the money pays for, the giving link, how sponsors may be thanked and your sign-off. It starts as “[PASTE YOUR PTA'S NAME, THE CAMPAIGN NAME, THE GOAL AMOUNT, THE END DATE, WHAT THE MONEY PAYS FOR, THE LINK TO GIVE, HOW SPONSORS MAY BE THANKED (NAME AND LEVEL ONLY?) AND YOUR SIGN-OFF HERE]” until you replace it. | “Write the progress update” |
6. Add your parent list and committee channel
Open “Email the parent list” and enter the list address and the PTA inbox, then “Tell the committee” and pick your account and channel.
| Setting | What to enter | In step |
|---|---|---|
| Parent list address | Replace the example address with your parent mailing-list address (e.g. your Google Group). The update goes to this one address. It starts as “parents-list@your-pta.example” until you replace it. | “Email the parent list” |
| PTA inbox (replies) | Parents' replies come back to this address. | “Email the parent list” |
| Slack account | The Slack workspace your committee uses. Pick your connected Slack account. | “Tell the committee” |
| Committee channel | Where the weekly numbers are posted, e.g. #fundraising. | “Tell the committee” |
7. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
8. Switch the trigger on
Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00; switch it off when the campaign ends.
How it works
The agent is a normal workflow with 10 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- Every Monday at 8:00 — Runs on a schedule (cron 0 8 * * 1, UTC — change it in the trigger's settings). Runs every Monday morning while your campaign is on (switch it off when the campaign ends). Set your time zone on the trigger.
- Read the class totals — Google Sheets: Read rows. Reads your class-totals tab: one row per class or grade with its running total. No student names or per-family amounts.
- Read the business sponsors — Google Sheets: Read rows. Reads your sponsors tab: business name, sponsorship level and whether they may be thanked publicly.
- Write the progress update — AI step (runs on your AI provider key). AI lists the class totals (and sponsor amounts your campaign counts), builds the class leaderboard and writes an upbeat update with thank-yous to your sponsors. The total raised and the percent of goal are then calculated in code.
- Check the math — Step. Adds up the class totals and counted sponsor amounts and works out the percent of goal in code — not by AI — writes the correct figures into the update and the Slack summary, and flags anything the AI got wrong for the committee.
- Committee approves the update — A person approves or rejects it in Reviews (the run waits). A committee member checks the numbers and wording in Reviews, edits anything and approves; nothing goes to parents before that.
- Not sent this week — Kept in the run history. Branch: Rejected. Nothing was sent; the run history keeps the draft.
- Email the parent list — Sends an email from your workspace's sender. Branch: Approved. Sends the approved update to your parent list address (e.g. your Google Group), with replies going to the PTA inbox.
- Tell the committee — Slack: Post a message. Posts the week's numbers to your committee's Slack channel once the update is sent.
- Update sent — Kept in the run history. The run history keeps the numbers and the update.
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.
Go live
- Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00; switch it off when the campaign ends.
- 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
What should the sheets look like?
A class-totals tab with one row per class or grade (Class, Grade, Total) and a sponsors tab (Business, Level, Amount, Public thank-you yes/no). Keep per-family pledges in a separate tab the agent doesn't read.
Does it ever name students?
No. It uses class and grade totals only and is told to leave out any row that looks like one student or family. The committee approves every update.
How does it reach parents?
It sends one email to one list address, such as your Google Group or school mailing list. It doesn't manage the list.
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.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- 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 .