← Blog

Reference design

Agent-run drinking-water delivery routes: a ZenSched reference design

• ZenSched Team

The customer texts at 11:00: “You didn’t come Tuesday.” Saturday’s empty count does not match the cash in the pouch. CieloPura, AquaOS, and PaniHisab already own routing, caja, and the jar ledger — but when a compound manager or a picky office asks “were you at the house, and did you leave two and take two,” the evidence is a reconstructed WhatsApp thread. What if an AI assistant could roll today’s garrafón route from plain English, GPS-check the driver in at the door, capture fulls out, empties in, deposit, and paid on a Stop Record form, and answer “who is short empties this week” — without putting gate codes into a vendor cloud, and without pretending to be your NOM-201 bitácora, FSSAI file, or NAFDAC book?

This reference design shows how a 1–5 truck drinking-water delivery shop (20 L garrafón, 5-gallon jugs, office coolers, occasional tanker drops) can deploy an AI agent using ZenSched as the live schedule of record (with a Stop Record form on the phone) and a local SQLite database for customers, stops, deposit balances, and invoices.

Honest framing: proof-of-delivery, not the official plant book

Read this before you clone the kit.

  • The Stop Record is not a NOM-201 / COFEPRIS bitácora, FSSAI / BIS e-file, NAFDAC registration book, or ESMA / GSO mark. The plant inspector wants the hygiene and lab log in your binder or AquaOS — not a GPS punch. The kit collects bottles delivered, empties collected, deposits held, and paid — useful proof for the owner and the customer, not the system of record an inspector expects.
  • It is not CieloPura, AquaOS, PaniHisab, Rekart, or Sigo Water. No CFDI / GST e-invoice engine, no WhatsApp billing inbox, no jar serial register, no route optimizer. Keep those where they are.
  • Gate codes, building access notes, and customer names stay only in local SQLite (stops.access_notes, customers). ZenSched locations are labeled by stop code + street address — Casa - Av. Cuauhtémoc 812 — not by customer name or access detail.
  • There is no signature field on purpose. On ZenSched a signature replaces Submit — submitting the form must not look like the customer signed a fiscal receipt.
  • The shipped kit has no photo field on the Stop Record (about $0.25/stop: GPS + basic form read). Add a photo field in form_create if a compound or tanker contract demands a stack or hose picture (about $0.35/stop with media).
  • Meters are always USD. Pesos, rupees, naira, or dirhams live only in SQLite. ZenSched bills in US dollars on a prepaid balance.
  • The owner types to Claude or ChatGPT on a laptop — not inside WhatsApp. Orders still arrive as voice notes in WhatsApp Business. Mexico, Gulf commercial, and LPG crossovers are the most plausible wedges until a WhatsApp-native agent exists.
  • Android on Google Play; iOS on the App Store.

The kit’s SKILL.md makes that split a hard rule the AI will refuse to break.

The problem: “was Luis at Herrera, and did he leave two and take two?”

Small water shops already have a stack: CieloPura or AquaOS if the plant runs on routing and caja; otherwise WhatsApp Business, a paper deposit book, cash in a pouch, and Google Maps. When a weekly garrafón customer or an office manager asks for proof, the evidence is a reconstructed day.

The daily loop is the same whether you drive the truck or dispatch three drivers:

  1. Was Luis at Rosa Herrera’s house, and did he leave two full 20 L and take two empties?
  2. How many envases / jars are still out, and who owes deposit?
  3. Which weekly and daily stops are due today across the book?
  4. Paying drivers without reconstructing the cuaderno every Saturday.
  5. Coverage when a van is down and the WhatsApp orders spike at 4 pm.

Not on that list: consumer booking apps, 40-truck VRP, or replacing the official plant log.

The solution: split responsibility between ZenSched and local data

  • ZenSched: Live pin per stop, GPS-verified check-in and check-out (geofence enforced via policy, not per location), driver app + push, one Stop Record form per stop (bottles delivered, empties collected, deposits held, paid). Residential, tienda, office, and tanker stops reuse the same form.
  • Local SQLite database: Customers, stops (daily / weekly / biweekly / monthly / on-demand cadence), price list in local currency, drivers, completed visits with Stop Record summaries, deposit book, invoices. Links to ZenSched location, event, and shift IDs. After one metered form read, punches and summaries are cached locally.

The agent orchestrates both: it reads which stops are due from stops_due, creates shifts on ZenSched labeled by stop code + street, and writes verified arrival plus Stop Record answers back into SQLite for billing and Saturday’s settle.

Split responsibility architecture for drinking-water delivery proof: ZenSched holds GPS and Stop Record, local SQLite holds customers and access notes

Privacy: access notes never cross

Everything sensitive lives only in local tables: customers.customer_name, phones, stops.access_notes (gate, dog, “leave with the neighbor”, building codes). ZenSched receives the stop code + street address for the GPS pin and the Stop Record answers — never a customer name in a location title, never a gate code in an event name. If you ask the agent to put access notes into ZenSched, it should refuse.

Day-to-day workflow

  1. You to agent (plain English): “WhatsApp just came in — put Luis at Herrera today 7:00–7:20.”
  2. Agent reads SQLite: stops_due for the next 7 days by driver and route.
  3. Agent creates shifts on ZenSched: One location_create per new stop ($0.03 geocode), rolling event (≤60 days, renewed automatically), form_create once for the Stop Record, form_assign, shift_create per scheduled visit. Luis gets a push.
  4. The driver does the work: Open the ZenSched app, GPS check-in at the pin, fill the Stop Record (fulls, empties, deposit, paid), check-out.
  5. Operations: “Is Luis at Herrera?” “Who missed a weekly this week?” “How many empties did Diego pull at El Sol yesterday?” Agent answers from SQLite after one metered read.
  6. Money: Deposit book and invoices from local visit summaries. Plain-text balance you paste into WhatsApp. Official NOM-201 / FSSAI / NAFDAC filing stays in your plant book or AquaOS.

No dashboards. No asking you to run SQL. Talk to the agent.

Drinking-water delivery workflow from stops due through GPS check-in, Stop Record, and Saturday settle

Stop Record on the phone

The driver opens the ZenSched mobile app, checks in at the door, then fills the Stop Record before leaving:

  • Bottles delivered (count)
  • Empties collected (count)
  • Deposits held (count)
  • Paid (Cash / Account / Unpaid)

Household garrafón swaps, daily tienda drops, and tanker liters reuse the same form. A separate official plant log does not exist in ZenSched.

Setup summary

Getting started takes about 15 minutes:

  1. Install an MCP client: Claude Desktop, Cursor, or Muse Code.
  2. Connect ZenSched MCP: Add https://mcp.zensched.com/mcp to your MCP config.
  3. Connect easy-sqlite-mcp: Point SQLITE_PATH at a local water-ops.db on an encrypted, backed-up folder.
  4. Paste the reference skill: The zensched-water-routes-kit includes SKILL.md, schema.sql, and a quickstart. Load the schema once (one statement per execute).
  5. Create your ZenSched account: Call zensched_guide, then account_create for a zsc_ key. Invite drivers at $0.25 each once.
  6. Fund when needed: Metered GPS, geocode, and form reads draw from prepaid balance. The $5 activation deposit is credited to your account.

Dense colonias, apartment blocks, and gated compounds need a wider policy radius (policy_update), not org-wide remote_checkin — that turns GPS proof off for every stop. Events cap at 60 days; the kit rolls a new event per stop automatically when the window expires.

Worker app: Android on Google Play and iOS on the App Store.

For step-by-step details, see the ZenSched quickstart and the water-routes kit.

Metering: what you pay for

ZenSched uses transparent per-action pricing (see pricing):

  • GPS check-in/check-out: $0.10 each (about $0.20 per stop)
  • Address geocoding: $0.03 per new stop (once)
  • Worker invite: $0.25 per driver (once)
  • Form submission reads: $0.05 basic / $0.15 with photos — read once, cache locally
  • Processed timesheet export: $0.10 per worker per pay period

Worked example from the vertical pitch: 3 drivers × 35 stops/day × 26 days ≈ 2,730 visits/month.

PatternApprox. monthlyPer stop
GPS + Stop Record (kit default, no photo)about $683about $0.25
GPS + Stop Record with photo (optional upsell)about $956about $0.35
GPS-only proof per stopabout $546about $0.20

Read the incumbent comparison honestly. At 2,730 visits, ZenSched (about $683/month GPS + basic form) loses a pure-price fight to CieloPura Negocio (about $38), AquaOS (about $27–$108), and PaniHisab (about $1.20). Those tools include deposits-as-ERP, caja, WhatsApp bills, and routing ZenSched does not. Do not tell a COFEPRIS / FSSAI / NAFDAC inspector “it’s in ZenSched” instead of your plant book. Do not offer photo-every-stop on a thin-margin India 20 L jar book — $0.35 is a large fraction of a ₹50 ticket.

What you get

  • Geofenced check-in at the door
  • Stop Record: fulls, empties, deposit, paid
  • Local deposit book and unpaid-stop flags
  • Residential, tienda, office, and tanker on one form
  • AI dispatch from plain English
  • About 15 minutes to stand up

What you don’t get

  • No official NOM-201 / COFEPRIS / FSSAI / NAFDAC / ESMA filing
  • No CFDI / GST / VAT invoice engine
  • No jar serial / barcode yard count
  • No WhatsApp Business inbox or route optimizer
  • Not a replacement for CieloPura or PaniHisab if caja and WhatsApp billing are daily work

Who this is for

Ideal for: 1–5 truck independents on WhatsApp + a cuaderno, Gulf commercial and tanker books beside (not instead of) the plant system, LPG-route owners adding garrafón Thursday, operators who want GPS proof and AI dispatch and will type to Claude on a laptop.

Not for: Bonafont / FEMSA / Bisleri depots locked to a bottler DMS, shops whose deliverable is the official plant log the inspector already mandates, or India 20 L-only books where USD meters exceed the whole software budget.

Get started

Ready to build your own workflow?

Clone the reference kit and connect ZenSched to your AI agent.