# Text my driver when a passenger's flight ETA changes

> Watch today's pickup roster in Google Sheets, track each flight's live status, and SMS the assigned driver the moment the ETA actually shifts.

- Workflow type: agent
- Services: AeroDataBox, Google Sheets, Twilio
- Categories: Operations, Personal Productivity
- Published: 2026-06-26

## What it does

- Reads today's pickup roster from a Google Sheet with passenger, flight number, scheduled landing, and the assigned driver's phone.
- Checks each flight's live status every 30 minutes from early morning through late evening, so the driver hears about changes before the passenger does.
- Sends a short text only when something real happens: a 15-minute or larger ETA shift, a delay, a diversion, a cancellation, or a landing.
- Writes the new ETA and timestamp back to the sheet so the same change is never texted twice.
- Escalates cancellations and diversions to the dispatcher at the top of the sheet instead of pinging the driver.

## What you'll need

- A Google Sheet for today's pickups with columns for passenger name, flight number, scheduled landing time, driver phone, last notified ETA, and a dispatcher phone in a known cell at the top.
- A Google account that can read and write that sheet.
- A Twilio account with a sending phone number and your Account SID and Auth Token.
- An AeroDataBox account (RapidAPI) for live flight status lookups.

## Prompt

Build an agent workflow that keeps my drivers ahead of flight ETA changes for today's airport pickups, so I (the operator or EA) am not the human relay between the airline app and the driver.

Trigger: cron, every 30 minutes between 5:00am and 11:00pm local time.

Each run, the agent should:

1) Read today's pickup roster from a Google Sheet using Google Sheets Get Values. I'll provide the spreadsheet ID and the sheet/tab range at setup. The header row has these columns: passenger name, flight number (e.g. BA286), scheduled landing time (local), assigned driver phone (E.164), last notified ETA, last notified at. A separate cell at the top of the sheet (for example B1) holds a dispatcher phone in E.164 for escalations.

2) For each row whose scheduled landing is sometime today, call AeroDataBox Get Flight Status by flight number to get the current status and the latest estimated/actual arrival time. Use the destination-airport local time for the new ETA.

3) Decide whether this is a meaningful change. Send a driver text only when at least one of these is true: the new ETA differs from the row's last notified ETA by 15 minutes or more; the status has flipped to Delayed, Diverted, Canceled, or Landed since the last notification. Skip small 5-minute jitter. Also skip pre-takeoff schedule shifts where the flight is still hours from landing and the driver hasn't left yet (rough rule: more than 2 hours until scheduled landing and the flight hasn't taken off).

4) If the change qualifies for the driver, send a Twilio SMS (Send a Message) to the row's driver phone. Keep it tight, ideally under 160 characters. Include passenger first name, the new ETA in local time, the arrival terminal, and the baggage carousel if AeroDataBox returns one. Example: "Pickup update: Sara now lands 7:42pm, Terminal 5, bag carousel 9."

5) If the status is Diverted or Canceled, do not text the driver. Instead send a Twilio SMS to the dispatcher phone at the top of the sheet with the passenger name, flight number, what happened, and the new arrival airport if diverted. The dispatcher will handle the rebook.

6) After any successful send, write the new ETA and the current timestamp back to that row using Google Sheets Update Values, so the same change is never texted twice and the next run compares against the most recently notified value.

Other rules: ignore rows with a missing or malformed flight number or driver phone and log a one-line warning. If AeroDataBox returns 404 (unknown flight) or 429 (rate limit), skip that row this run and try again next cycle. Never send more than one driver text per row per run. Phone numbers in the sheet are already in E.164 format.

Integrations: AeroDataBox (Get Flight Status), Google Sheets (Get Values, Update Values), Twilio (Send a Message).

## How to customize

- Change the schedule window, for example 4am to 1am for red-eye coverage, or tighten the check interval during peak arrival hours.
- Adjust what counts as a meaningful change, like raising the threshold from 15 to 20 minutes or always texting on any delay status.
- Tune the SMS copy, for example adding the pickup curb, the car number, or a polite sign-off from the dispatcher.
- Swap who gets escalated for cancellations and diversions, or add a second dispatcher cc for high-priority passengers.

## FAQ

### Will my driver get spammed every 30 minutes?

No. The workflow only sends a text when the ETA has actually moved by 15 minutes or more, or when the status flips to delayed, diverted, canceled, or landed. Small 5-minute jitter is ignored, and the new ETA is saved back to the sheet so the same change is never resent.

### What happens if a flight is canceled or diverted?

Cancellations and diversions skip the driver and go straight to the dispatcher phone listed at the top of the sheet, so the right person can rebook or redirect the pickup.

### Do I need to clear the sheet every day?

You can rebuild the sheet each morning with today's pickups, or keep a rolling sheet and let the workflow only act on rows whose scheduled landing is today. The agent skips rows that are clearly in the past or far in the future.

### Can I use this if my drivers are on WhatsApp instead of SMS?

Yes. Twilio can send WhatsApp messages from the same account, so you can ask the workflow author to swap SMS for WhatsApp when you generate the workflow.

### Does this cost anything to run?

AeroDataBox has a free tier on RapidAPI that fits a small roster, and Twilio charges per SMS sent. Google Sheets access is free with any Google account.

Use this prompt in General Input: https://www.generalinput.com/prompts/text-my-driver-when-a-passengers-flight-eta-changes