Daily delivery run sheet from Airtable, geocoded and routed

By General Input

Every weekday at 7am, turn today's Airtable deliveries into a clustered stop order with coordinates, notes, and a one-tap Google Maps link in Slack.

Integrations

  • Airtable
  • TrueWay Geocoding
  • Slack

Type

Agentic Task

Categories

  • Operations

Build an agent workflow that posts the driver's daily delivery run sheet to Slack every weekday morning.

Trigger: cron, every weekday (Monday through Friday) at 7:00am in the org's local timezone.

Workflow inputs the user should configure: the Airtable base ID and deliveries table name, the field names for address, status, delivery date, customer name, and notes, the depot's starting latitude and longitude (or address to geocode once), and the Slack channel or user ID that should receive the run sheet.

What the agent should do, in order:

1. Call Airtable's List Records on the deliveries table with a filterByFormula like AND({Status}='Scheduled', IS_SAME({Delivery Date}, TODAY(), 'day')) so it only pulls today's confirmed stops. Use the configured field names. Paginate if needed.

2. For each record, call TrueWay Geocoding's Geocode (Forward Geocoding) operation on the delivery address to get a latitude and longitude. Keep the original raw address alongside the coordinates. If a record fails to geocode (empty results array or non-200 response), add it to a 'needs attention' list with the customer name and raw address; do not drop the record silently.

3. Use the agent's own judgment to cluster the geocoded stops geographically and propose an efficient stop order that starts from the configured depot lat/lng, groups nearby drops together, and avoids zig-zagging across town. This is a smart first pass, not a guaranteed shortest path. Number the stops 1..N in the proposed order.

4. Build a single Slack message and send it with Slack's Send a Message operation to the configured channel or DM. The message should be one post (no thread) with this shape:

• A short header line with today's date and the stop count (e.g. 'Run sheet for Mon Jun 24: 9 stops').

• If there are any failed geocodes, a 'Needs attention before rolling' section at the top listing each problem record's customer name and raw address so dispatch can fix it.

• A numbered list 1..N with, on each line, the customer name, the address, the resolved coordinates as 'lat, lng', and any delivery notes from the Airtable record.

• A final line with a Google Maps multi-stop navigation URL built from the depot plus the ordered stop coordinates, in the form https://www.google.com/maps/dir/?api=1&origin=DEPOT_LAT,DEPOT_LNG&destination=LAST_LAT,LAST_LNG&waypoints=LAT1,LNG1|LAT2,LNG2|... so the driver can tap straight into navigation.

Use Slack mrkdwn formatting (*bold*, not **bold**). Keep the whole brief in a single message so the driver only sees one ping. If there are no scheduled deliveries for today, post a short 'No deliveries scheduled today' note instead of a full run sheet.

Confirmed operations to use: airtable.List Records, trueway-geocoding.Geocode (Forward Geocoding), slack.Send a Message. Stop-ordering and message drafting are the agent's job; everything else is straight API calls.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes