Hourly airport delay dashboard with Slack alerts

Log hourly delay snapshots for your hub airport to Google Sheets and ping Slack the moment delays or cancellations spike.

Deterministic Code
AeroDataBoxGoogle SheetsSlackOperationsNotifications & AlertsResearch & MonitoringData Sync
PromptCreate

Build me a deterministic, code-shaped workflow that runs every hour on a cron schedule and logs an airport delay dashboard for a configured hub airport, with Slack alerts when conditions get severe. No reasoning steps. Every node is fixed.

Configurable inputs (with defaults so it works out of the box):

- Airport IATA code (default JFK)

- Google Sheets spreadsheet ID and sheet/tab name to append rows to

- Slack channel ID for alerts

- Delay index alert threshold (default 7, on AeroDataBox's 0-10 scale)

- Cancellation alert threshold (default more than 5 cancellations in the upcoming three-hour window)

Trigger: cron, every hour at minute 0.

Step 1. Call AeroDataBox "Get Airport Delay Snapshot" (operation id 95b1fdc5-eca2-4a59-8bdb-e4da90f0bfe1) for the configured airport at the current UTC moment. From the response capture: delay index, percent on-time, and average delay in minutes.

Step 2. Call AeroDataBox "Get Airport Flights (Relative)" (operation id 9396cb66-6922-40af-af00-4330b3d58753) for the same airport with offsetMinutes=0 and durationMinutes=180 to pull the next three hours of departures and arrivals. From the response compute: total departures in the window, total arrivals in the window, and a count of flights whose status indicates delayed or cancelled.

Step 3. Format one row with these columns in this order: timestamp (ISO 8601 UTC), airport code, delay index, percent on-time, average delay minutes, total departures in window, total arrivals in window, count of flights currently flagged delayed or cancelled.

Step 4. Call Google Sheets "Append Values" (operation id b8bb536a-33b9-455a-a00b-a652450a6431) on the configured spreadsheet and sheet name to append that single row. Use valueInputOption USER_ENTERED so timestamps and numbers render natively.

Step 5. Threshold check (pure boolean, no LLM). Trigger an alert if delay index is greater than or equal to the configured threshold OR the cancellation count exceeds the configured cancellation threshold. Otherwise stop.

Step 6. If the alert fires, call Slack "Send a Message" (operation id 4c21e1ee-4d54-4413-a4f2-80a80dff4c99) to post a structured message to the configured channel. Include: airport code, current delay index out of 10, percent on-time, average delay minutes, total flights in the next three hours, cancellation count, the row's timestamp, and a permalink to the Google Sheet. Use Slack mrkdwn formatting (single asterisks for bold, angle-bracket links).

Implementation notes: keep every step explicit and deterministic, no agent reasoning. The threshold check is a plain comparison. If either AeroDataBox call returns an error (most often HTTP 429 from rate limits, or 451 for blocked regions), log it and skip the append/alert steps for that run rather than retrying inline. The sheet headers should be created on first install if the sheet is empty.

Additional information

What does this prompt do?
  • Pulls a fresh delay snapshot for your chosen airport every hour, plus the next three hours of departures and arrivals.
  • Appends one tidy row to a Google Sheet with the time, delay index, on-time percentage, average delay minutes, flight counts in the window, and how many flights are currently delayed or cancelled.
  • Posts a structured alert to a Slack operations channel only when the delay index or cancellation count crosses your threshold, with a link back to the sheet.
  • Runs hands-off on a cron schedule so your team has a live record of hub conditions without anyone refreshing a FIDS board.
What do I need to use this?
  • An AeroDataBox account on RapidAPI so we can read delay snapshots and upcoming flights.
  • A Google account with edit access to the spreadsheet you want to log into.
  • A Slack workspace and a channel you want alerts posted to.
  • The airport code you want to monitor (default JFK) and the delay index threshold that should trigger an alert (default 7 out of 10).
How can I customize it?
  • Swap the airport code to any IATA hub you care about, or run separate copies for each hub your team covers.
  • Tune the severity threshold and cancellation count that triggers a Slack alert so you only get pinged when it actually matters.
  • Change the cadence from hourly to every 30 minutes during peak operations, or stretch it to every two hours on quiet days.
  • Point the alert at a different Slack channel, or fan out to multiple channels for different on-call groups.

Frequently asked questions

Which airport does this monitor?
Whichever one you configure. The default is JFK, but you can set it to any major airport using its three-letter IATA code (LAX, LHR, ORD, etc.). If you cover multiple hubs, run one copy per airport.
How often does it run?
Once an hour by default. You can dial that up to every 30 minutes during heavy operations or stretch it out on quieter days. Each run appends one row to the sheet.
When does it actually send a Slack message?
Only when conditions are bad enough to care about. By default that means the delay index crosses 7 out of 10 or more than 5 flights are cancelled in the upcoming three-hour window. Both numbers are yours to tune.
Will I get spammed during a long delay event?
You will get one alert per hourly run while conditions stay above threshold. If that is too noisy, raise the threshold or change the cadence. Every row still lands in the sheet either way, so you keep the full history.
Can I send the alert somewhere other than Slack?
Yes. The most common swap is sending to a different Slack channel or adding email as a second alert path. You can also route different severity levels to different channels.

Stop refreshing the FIDS board for your hub.

Connect AeroDataBox, Google Sheets, and Slack once. Geni logs delay conditions every hour and pings your ops channel when things get rough.