# 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.

- Workflow type: agent
- Services: MarineTraffic, Google Sheets, Gmail
- Categories: Operations, Customer Support
- Published: 2026-08-07

## What it does

- 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 you'll need

- 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.

## Prompt

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.

## How to customize

- 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.

## FAQ

### 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.

Use this prompt in General Input: https://www.generalinput.com/prompts/tell-customers-when-their-shipment-arrives-before-they-ask