Skip to content

Customer Delivery Window Confirmation

Example prompt: "Each morning at 7am, draft a delivery-window confirmation email to every customer expecting a drop today, with a one-click link to request a rearrange — and flag any rearrange requests to the dispatcher in Slack."

The Problem

A delivery that turns up an hour outside the window the customer was expecting is the most common reason a parcel ends up sitting on a doorstep, in a neighbour's hallway, or back at the depot for a re-attempt that costs us a second visit. The information is there — we know what we promised the customer, we know what time the driver's run sheet says they will arrive — but the customer never gets the morning's window unless someone in the office writes the email, and most mornings nobody does.

How GloriaMundo Solves It

We build a workflow that runs at 7am every weekday. An integration step reads today's confirmed deliveries from the Deliveries sheet. An LLM step composes a per-customer Gmail with the time window, the parcel count, and a link to a rearrange Google Form pre-populated with the delivery_id. An integration step saves each email as a Gmail draft for the dispatcher to review and batch-send before the 7:30am drivers' briefing. A second trigger handles any rearrange submissions that come back from the form — these are logged to a Rearrange Requests sheet and flagged to the dispatcher on Slack, so the affected driver's run sheet can be adjusted before they pull out. A third trigger at 7:30am posts the morning summary. Glass Box preview shows the customer drafts and the Slack summary before anything reaches a customer.

Example Workflow Steps

  1. Trigger A (scheduled): Every weekday at 7am — read today's confirmed deliveries.
  2. Step 1 (integration): Read the 'Deliveries' tab filtered to delivery_date = today AND status = 'Confirmed' AND customer_email non-empty.
  3. Step 2 (code, gate): For each row, dedupe on (delivery_id, notification_date = today) against the 'Customer Notification Log' tab. Final state ('Sent') halts; provisional state ('Allocating') resumes; no row allocates a fresh notification_id and writes a provisional row.
  4. Step 3 (llm): Compose a polite Gmail body stating the time window, parcel count, driver's first name, safe-to-share special instructions, and a link to the rearrange Google Form pre-populated with delivery_id.
  5. Step 4 (integration): Save as a Gmail draft for the dispatcher to review. Persist gmail_draft_link to the provisional Customer Notification Log row before any subsequent delivery row is processed.
  6. Listener (integration): A Gmail-send listener watches for the dispatcher sending one of these drafts and flips the log row's status from 'Allocating' to 'Sent', writes sent_at, and confirms customer_email. Match on draft id primarily; fall back to (delivery_id, notification_date) only if draft id is missing on either side.
  7. Trigger B (integration): A submission to the customer rearrange Google Form lands.
  8. Step 5 (integration + code): Look up the delivery on delivery_id; dedupe on form_response_id against the 'Rearrange Requests' tab; allocate a rearrange_id if new and append a row with status 'Awaiting dispatcher decision' and submitted_at = the form event's ISO8601 timestamp (the 7:30am summary's "received overnight" count reads this field). Do NOT update the Deliveries row's delivery_date or time_window — that is the dispatcher's decision.
  9. Step 6 (integration): Post a one-line alert in #dispatch on Slack with the rearrange_id and the requested date/window.
  10. Trigger C (scheduled): Every weekday at 7:30am — post the #dispatch summary with the day's notification count, drafts still 'Allocating', and rearrange requests received overnight (rows on 'Rearrange Requests' where submitted_at is between yesterday's 7:30am fire and today's 7:30am fire; the persisted submitted_at is the durable signal that the count reads from).

Integrations Used

  • Google Sheets — the Deliveries tab, the Customer Notification Log, and the Rearrange Requests tab
  • Gmail — the per-customer confirmation drafts
  • Google Forms — the customer rearrange form
  • Slack — the rearrange alerts and the morning summary

Who This Is For

Small couriers, white-glove delivery firms, and last-mile operators handling 50 to 500 drops a day when the customer is expecting a delivery in a published time window, where the dispatcher is the gate-keeper on outbound customer comms, and where re-attempt rates have crept up because nobody is telling the customer what time to expect the driver.

Time & Cost Saved

Writing the morning's customer confirmations by hand for a 100-drop day takes the dispatcher 60 to 90 minutes; most depots skip it for that reason. This workflow turns it into a 15-minute review of the queue of drafts before the 7:30am briefing, and the re-attempt rate drops because customers who are not going to be in have a one-click way to tell us so before the driver pulls out.