Tell customers when their shipment arrives, before they ask

Automatically email your customers when their cargo comes within three days of port, quoting the booking reference and the day it is expected to berth.

Agentic Task
MarineTrafficGoogle SheetsGmailOperationsCustomer SupportNotifications & AlertsEmail Automation
PromptCreate

Every six hours on a cron trigger, send proactive arrival notices to the customers whose cargo is on the water, so my team stops fielding "where is my shipment" emails.

Start by reading my shipment tab in Google Sheets with Get Values. Each row is one booking and carries the vessel IMO number, the discharge port, the customer name, the customer email address, the booking reference, a notified flag, and the arrival date that was last communicated to that customer. Treat every row whose booking is still open as in scope. Skip rows that have been closed out, already delivered, or are missing an IMO number or a discharge port.

For each open shipment, call MarineTraffic Vessel ETA to Port using that row's vessel IMO and its discharge port to get the current predicted arrival. MarineTraffic returns times in UTC, so convert to a normal calendar day before you use it in anything customer facing.

Then decide, per booking, which of three buckets it falls into. If the vessel is now inside 72 hours of arrival and the row has not been notified yet, it belongs in a first arrival notice. If the row was already notified but the arrival has since moved by more than 12 hours in either direction compared with the date last communicated, it belongs in a revised ETA update instead. Everything else is left alone and nothing is sent.

Group by customer before sending anything. If one customer has three bookings that qualify in the same run, they receive a single email covering all three, never three separate notices. Send each email with Gmail Send a Message.

Write the emails in short, plain English, the way a person on the shipping desk would write them. Quote the booking reference and the expected berthing day in friendly form, for example "Thursday 14 August". Do not paste raw tracking fields into the message: no AIS jargon, no MMSI numbers, no IMO numbers, no speeds in knots, no coordinates, no raw UTC timestamps and no field names lifted from the data. A first notice should simply say the shipment is due, name the port, give the day, and offer a contact for questions. A revised update should say plainly that the arrival has shifted, give the new expected day, and avoid sounding alarmed when the change is routine.

After an email sends successfully, stamp the sheet back with Update Values: set the notified flag on every row that was included in that email, and write the arrival date you just communicated into the row. This write is the idempotency guard and it is load bearing, because the workflow reruns against the same sheet every six hours and without the stamp it would re-email the same customer forever. Only stamp rows that were actually included in an email that sent successfully. If a send fails, leave that row untouched so the next run retries it rather than silently skipping the customer. For revised updates, overwrite the stored arrival date with the new figure so the next 12 hour comparison is made against what the customer was most recently told.

What does this prompt do?

  • Checks every open booking in your shipment spreadsheet four times a day and looks up where each vessel actually is.
  • Emails the customer once when their cargo comes within 72 hours of arriving, quoting their booking reference and the day it is expected to berth.
  • Sends a follow up only when the arrival day genuinely moves, so customers hear from you when it matters and not otherwise.
  • Marks each booking as notified in the spreadsheet, so nobody is ever emailed twice about the same shipment.
  • Rolls several bookings for the same customer into a single email instead of three separate notices.

What do I need to use this?

  • A Google Sheets shipment tracker with one row per booking: vessel IMO number, discharge port, customer name, customer email, booking reference, and a column to record that they were notified.
  • A MarineTraffic account with the voyage and arrival service. MarineTraffic sells each of its data services separately and issues a separate key for each one, so make sure the key you connect is the one for vessel arrival times rather than another service.
  • A Gmail account to send the notices from. A shared mailbox such as shipping@yourcompany.com works well so replies reach whoever is on duty.

How can I customize it?

  • Change the 72 hour warning window. Some customers want a week of notice to arrange haulage, others only want to hear the day before.
  • Change how far an arrival has to move before you send a revised update. Twelve hours is the default, but on short sea routes you may want less.
  • Run it more or less often than every six hours.
  • Send from a shared team mailbox rather than an individual address so replies land with the whole desk.

FAQs

Will my customers get the same email twice?
No. As soon as a notice goes out, the workflow records it against that booking in your spreadsheet, and it checks that record on every run before sending anything. A booking that has already been notified is skipped unless the arrival date genuinely changes.
What happens if the ship is delayed?
If the expected arrival moves by more than 12 hours after you have already notified the customer, they get a short revised update with the new day, and the spreadsheet is updated so the next comparison is against what they were last told. Smaller shifts of an hour or two are ignored so you are not pestering people with noise.
Do I need a paid MarineTraffic subscription?
Yes. You need the MarineTraffic service that provides vessel arrival times to a named port. Each MarineTraffic data service is purchased separately and comes with its own key, so check you are connecting the key for that service.
Will the emails sound robotic?
No. Each notice is written fresh in plain English and deliberately leaves out vessel tracking jargon, technical identifiers and speeds. It reads like a short note from your operations team, not a data dump.
What if one customer has several shipments arriving at once?
They get one email covering all of the bookings that qualify in that run, listed clearly with each booking reference, rather than a separate message for every container.
Can I use a spreadsheet I already have?
Yes, as long as each row holds the vessel IMO number, the discharge port, the customer name and email, and the booking reference. You just need to add one column for the workflow to stamp when a customer has been notified.

Related templates

Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Weekly flight risk brief for trips your team already booked

Every Thursday, rank your team's upcoming flights by how likely they are to run late, and email the fixes while changes are still cheap.

AeroDataBox
Airtable
Gmail
Agentic Task
Warn customers before their saved card expires and billing fails

Each month, spot the saved cards about to expire, email the customers still on recurring billing, and rank the revenue at risk in Slack.

Authorize.Net
Gmail
Slack Bot
Agentic Task

Stop answering "where is my shipment?"

Let your customers know their cargo is arriving before they ever have to ask.