Browse the docs

Agent setup guide

Game-Day Weather Call

Game-day mornings: the forecast at each field against your league's weather policy, every call approved by the director, then emails to coaches and team lists.

Available About 25 min to set up

What it does

Game-day mornings: the forecast at each field against your league's weather policy, every call approved by the director, then emails to coaches and team lists.

  • On game-day mornings, reads your schedule, keeps only today's games (worked out in code, in your time zone; up to 40) and gets the National Weather Service forecast at each field.
  • Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
  • AI applies your league policy (thunderstorm and lightning rules, heat limits by age division, rain) and drafts the call — on, modified, watch or cancelled — with the forecast values behind it.
  • The league director reviews every call and email in Reviews; nothing is sent before approval.
  • Each approved call is checked in code (still marked to send, addresses present, no placeholders) and by an AI wording check that only stops an email that contradicts its call, names a child or promises the weather — then emailed to that game's coach and team-list addresses with replies to your league inbox.
  • A board post with today's calls goes to your league's Slack channel, counted in code from what was really emailed.
  • 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 Slack, connected in Settings → Integrations, plus an HTTP / Custom API connection to https://api.weather.gov (free, no key).
  • A schedule tab with each field's Lat and Lon and coach / team-list emails (at most 5 per game), and your written weather policy.

What it doesn't do

  • It uses no player data at all: only the schedule, fields and adult contact addresses.
  • Officials on site still apply the lightning rule live; a morning forecast (US only) can't see every storm.
  • It doesn't reschedule fixtures or change your league software.
  • It applies only your written policy, and the director approves every call.

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, HTTP / Custom API and Slack.
  • 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 schedule sheet (Settings → Integrations → Google Sheets).

3. Connect the National Weather Service (HTTP / Custom API)

In Settings → Integrations, add an HTTP / Custom API connection named “National Weather Service” with base URL https://api.weather.gov and Authentication “None”. The NWS API is free, public domain and needs no key; it covers US locations only.

4. Connect Slack

Connect the Slack workspace your league board uses (Settings → Integrations → Slack).

5. Pick your schedule

Open “Read today's games” and pick your account, spreadsheet and schedule tab.

SettingWhat to enterIn step
Google account (schedule)The Google account that can open your schedule sheet. Pick your connected Google Sheets account.“Read today's games”
Schedule spreadsheetPaste the link of the spreadsheet with your schedule.“Read today's games”
Schedule tabThe tab with one row per game (Date, Time, Field, Lat, Lon, Division, Home, Away, coach and team-list emails), e.g. “Schedule”.“Read today's games”

6. Set up the weather lookups

Open “Find the forecast office” and “Get the forecast”: pick the National Weather Service connection in both, and in Extra headers replace the placeholder with your business name and a contact email.

SettingWhat to enterIn step
Weather connection (forecast office)The HTTP / Custom API connection with base URL https://api.weather.gov and Authentication “None”. Pick your connected HTTP / Custom API account.“Find the forecast office”
Your contact for the weather serviceIn Extra headers, replace the placeholder with your business name and a contact email. The National Weather Service asks every app to identify itself this way and may block requests that don't. It starts as “[YOUR BUSINESS NAME AND CONTACT EMAIL]” until you replace it.“Find the forecast office”
Weather connection (forecast)The HTTP / Custom API connection with base URL https://api.weather.gov and Authentication “None”. Pick your connected HTTP / Custom API account.“Get the forecast”
Your contact for the weather service (forecast step)In Extra headers, replace the placeholder with your business name and a contact email. The National Weather Service asks every app to identify itself this way and may block requests that don't. It starts as “[YOUR BUSINESS NAME AND CONTACT EMAIL]” until you replace it.“Get the forecast”

7. Paste your weather policy

Open “Apply the league policy” and replace the placeholder with your league's weather rules.

SettingWhat to enterIn step
Your league weather policyReplace the placeholder with your league name, thunderstorm and lightning rules, heat limits by age division, rain and field-closure rules, who families contact and your sign-off. Only these rules are applied. It starts as “[PASTE YOUR LEAGUE NAME, YOUR LIGHTNING AND THUNDERSTORM RULES, HEAT LIMITS BY AGE DIVISION (E.G. U8: OVER 90°F = SHORTENED HALVES + WATER BREAKS; OVER 98°F = CANCEL), RAIN AND FIELD-CLOSURE RULES, WHO TO CONTACT AND YOUR SIGN-OFF HERE]” until you replace it.“Apply the league policy”

8. Add your league inbox and board channel

Open “Email coaches and team lists” and enter the Reply-to address, then “Post to the league board” and pick your account and channel.

SettingWhat to enterIn step
League inbox (replies)Coaches' and families' replies come back to this address.“Email coaches and team lists”
Slack accountThe Slack workspace your league board uses. Pick your connected Slack account.“Post to the league board”
League board channelWhere today's calls are posted, e.g. #game-day.“Post to the league board”

9. Test it with Dry Run

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

10. Switch the trigger on

Open the trigger, set your time zone and game days, and switch the schedule on. It runs at 7:00 on Saturdays and Sundays by default.

How it works

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

  • Game days at 7:00 — Runs on a schedule (cron 0 7 * * 6,0, UTC — change it in the trigger's settings). Runs at 7:00 on Saturdays and Sundays (change the days on the trigger for weekday games). Set your time zone on the trigger.
  • Read today's games — Google Sheets: Read rows. Reads your schedule tab: date, time, field with Lat and Lon, division, teams, and the coach and team-list email addresses. No player data.
  • Keep today's games — Step. In code, not AI: works out today's date in your time zone and keeps only the games dated today, so the AI never decides which day a game is on. Change the window here (within.min / within.max).
  • Each game today — Repeats the steps below for each item (up to 40 per run). Gets the forecast at the field and drafts the call for every game the date check kept (up to 40).
  • [For each item — “Each game today”] Find the forecast office — HTTP / Custom API: Send a request. Asks the National Weather Service which forecast grid covers the field (from its latitude and longitude).
  • [For each item — “Each game today”] Get the forecast — HTTP / Custom API: Send a request. Reads the National Weather Service 12-hour forecast periods for the field (temperature, chance of rain, wind and the forecast text).
  • [For each item — “Each game today”] Apply the league policy — AI step (runs on your AI provider key). AI applies your league policy (thunderstorm rules, heat limits by age division, rain) to the forecast at the field and drafts the email to coaches and team lists. The game date was checked in code.
  • Director reviews every call — A person approves or rejects it in Reviews (the run waits). All of today's calls wait in Reviews together. The league director checks each forecast and reason, changes any call and edits the emails, then approves; coaches and families hear nothing before that.
  • Calls rejected — Kept in the run history. Branch: Rejected. Nothing was sent; the run history keeps the calls.
  • Each approved game — Repeats the steps below for each item (up to 40 per run). Branch: Approved. Checks and emails every approved game call.
  • [For each item — “Each approved game”] Final check on the wording — AI step (runs on your AI provider key). AI reads each approved email only for a mismatch with the game's call, a child or player named, or a promise about the weather — stating the call, the forecast values, adjustments and the lightning rule is fine. It must quote the exact sentence it objects to.
  • [For each item — “Each approved game”] Check before sending — Step. In code: still marked to send after review, coach and team-list addresses present, and a subject and body with no placeholders left — plus the wording check's verdict. Anything that fails isn't emailed and is listed in the board post with the reason.
  • [For each item — “Each approved game”] Send this call? — Decision: picks the branch to follow. Calls that pass every check are emailed; held or incomplete ones are not.
  • [For each item — “Each approved game”] Email coaches and team lists — Sends an email from your workspace's sender. Branch: Send. Sends the approved call to the game's coaches and team-list addresses (up to 5), with replies going to the league inbox.
  • [For each item — “Each approved game”] Not emailed — Kept in the run history. Branch: Hold. Set to not send, no forecast or stopped by a check; listed in the board post with the reason.
  • Count the calls — Step. In code, not AI: sorts today's approved games by the call that was emailed (on, modified, watch, cancelled) and lists the games that weren't emailed with the reason.
  • Post to the league board — Slack: Post a message. Posts today's calls (counted in code) to your league's Slack channel.
  • Done — Kept in the run history. The run history keeps the forecasts, the approved calls and the emails.

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 game days, and switch the schedule on. It runs at 7:00 on Saturdays and Sundays by default.
  • 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

Where does the weather come from?

The US National Weather Service API (https://api.weather.gov): free, public domain and no key, through an HTTP / Custom API connection. Two calls per location: one finds the forecast grid for the latitude and longitude, the second reads the 12-hour forecast. US locations only. NWS asks every app to name itself and a contact in the User-Agent header, which is why you add yours in setup. Its forecasts are general area forecasts, not on-site measurements.

What should the schedule look like?

One row per game with Date, Time, Field, Lat, Lon (named exactly so, up to 4 decimals), Division, Home, Away and the coach and team-list email addresses (at most 5 per game; use a mailing-list address per team). No player names or details are needed or read.

Does it replace the lightning rule on site?

No. A morning forecast can't see a storm that builds in the afternoon. Officials and coaches still apply your lightning rule live; the email restates it.

Does it reschedule games?

No. It sends the director's call; rescheduling happens in your league software.

How does it know which games are today?

In code, not by the AI: “Keep today's games” works out today's date in your trigger's time zone and keeps only schedule rows whose Date is today, so you can keep the whole season in one tab. The AI only applies your policy to the forecast and writes the emails.

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 .