# Live Slack updates for the jets on your Notion tail number roster

> Watch a Notion list of tail numbers and post a clean Slack update the moment a jet lifts off, lands, gets delayed, or diverts.

- Workflow type: agent
- Services: AeroDataBox, Notion, Slack Bot
- Categories: Operations, Personal Productivity
- Published: 2026-06-26

## What it does

- Every 15 minutes, checks each tail number in your Notion roster against the latest flight status.
- Posts a plain-English Slack message the moment a jet lifts off, lands, gets delayed, or diverts.
- Stays quiet by default. Nothing changes, nothing pings. Only meaningful moves hit the channel.
- Rolls one-off issues like blocked tails or no-flight-today into a single daily digest instead of paging every tick.

## What you'll need

- A Notion workspace with a database listing each tail number, the principal name, and the Slack channel that row should post to.
- A Slack workspace you can install the General Input bot into, with the channels you want it to post to ready.
- An AeroDataBox account on RapidAPI for tail number flight lookups (the free tier covers small fleets).

## Prompt

Build me an agent workflow that watches a Notion database of aircraft tail numbers and posts a clean Slack update whenever a tracked jet's state changes. Built for executive assistants, family offices, charter brokers, and fractional-ownership programs that already keep a tail number list and want one living Slack channel for where each plane is right now.

Trigger: a cron schedule that runs every 15 minutes. AeroDataBox is not in the poll providers catalog, so the cron plus agent-side diffing pattern is the correct one here.

The Notion roster has one row per tail number (registration / N-number). Each row carries at minimum: tail_number, principal_name, slack_channel, and four last-known fields used as the dedupe key — last_status, last_eta, last_origin, last_destination. An optional delay_threshold_minutes column on the row overrides the default. The Notion database ID will be provided at setup time.

Each tick the agent should:

1. Call Notion Query a Data Source to read every row in the roster database.

2. For each row, call AeroDataBox Get Flight Status with searchBy=reg and the row's tail number to pull the nearest flight for that aircraft. Optionally call AeroDataBox Get Aircraft to enrich with aircraft type and image when those are missing from the row.

3. Compare the live status (off-blocks, airborne, landed, diverted, plus origin / destination / ETA) against the row's last_status, last_eta, last_origin, last_destination.

4. Decide whether the change is meaningful. A state transition (off-blocks, airborne, landed, diverted) always counts. A pure ETA change only counts when the delta exceeds the row's delay_threshold_minutes (default 20 minutes). Origin and destination changes count when they appear (filed flight plan changed).

5. If the change is meaningful, call Slackbot Send a Message to post a single plain-English summary to the row's configured channel. Example wording: "N123AB just lifted off from KTEB at 9:47 ET, ETA KPBI 12:34 ET, Citation Latitude." Include the principal name so the channel reader instantly knows which trip this is.

6. Call Notion Update a Page on that row to write the new status, ETA, origin, and destination back before the agent exits. The last_status field is the dedupe key, so writing it back is what makes the next tick idempotent — without it, retries will double-post.

7. If a row's lookup fails (blocked tail, no flight today, 404, rate-limited) do not page the channel. Append the row to an error list.

At the end of each tick, persist the error list and post a single daily digest of unresolved errors to a configurable digest channel — not on every tick. Once-a-day rollup, not paging.

Rows where nothing meaningful changed must produce no Slack messages at all. The channel should stay quiet on quiet days. The whole point is one living channel for where each plane is right now, without standing up FlightAware Business.

Integrations to wire up: Notion (Query a Data Source, Update a Page) for the roster. AeroDataBox (Get Flight Status with searchBy=reg, optional Get Aircraft) for live status. Slackbot (Send a Message) for the channel pings and the daily error digest.

## How to customize

- Change how often the check runs. Every 15 minutes is the default, but every 5 or 30 works too.
- Set a per-row delay threshold so small schedule slips do not trigger a Slack ping.
- Pick which events count as worth posting: off-blocks, airborne, landed, diverted, or any delay swing past your threshold.
- Route each principal to a different Slack channel, or point everyone at one shared ops channel.

## FAQ

### Does every tail number need its own Slack channel?

No. You can point every row at the same channel, or give VIP principals their own channel and route everyone else to a shared one. The channel is set on the Notion row, so you can mix and match.

### Will this spam our channel when nothing is happening?

No. The workflow only posts when a tail's status actually changes against what it saw on the previous check. Quiet days stay quiet.

### What if a tail number is not flying today, or the lookup fails?

Those are rolled up into one daily digest instead of pinging every 15 minutes. Your live ops channel stays clean and only shows real movement.

### Can I use this for airline flight numbers instead of tail numbers?

This one is built specifically for tail numbers, which is how private jets are tracked. For ticketed commercial flights by flight number, see our flight day Slack alerts from Google Calendar prompt instead.

### Does this work with the free tier of AeroDataBox?

Yes for small rosters. The free RapidAPI plan covers tail number lookups. If you watch dozens of jets every 15 minutes, you may want a paid tier to stay under quota.

### Who is this built for?

Executive assistants, chiefs of staff, family offices, charter brokers, and fractional-ownership programs who already keep a tail number list and want one living Slack channel for where the plane is right now.

Use this prompt in General Input: https://www.generalinput.com/prompts/live-slack-updates-for-the-jets-on-your-notion-tail-number-roster