MilkGo
/User Guide
User Guide

11. WhatsApp Notifications

MilkGo sends transactional WhatsApp messages to your customers — delivery updates, monthly bills with PDF, payment receipts, overdue reminders. This is the feature that stops customers from calling you to ask "what's my bill?".

Before you start

  1. Your plan must include WhatsApp (has_whatsapp = true). See 15-plans-billing.md.
  2. Each customer must be opted-in — see 05-customers.md (whatsapp_notify field).
  3. Customers need a valid WhatsApp-registered number.

Where to find it

Settings (gear icon) → WhatsApp Notifications.

You'll see:

  • This month's usage — sent / quota with a coloured progress bar
  • 4 toggle switches for the 4 message types
  • Save button at the bottom

The 4 message templates

MilkGo only uses 4 Meta-approved templates. Each is sent in the language of the customer / owner (Gujarati, Hindi, or English).

1. Delivery Update (delivery_update)

Sent automatically when you mark a delivery as delivered, skipped, or partial — both for home deliveries and counter sales.

What customer sees:

🥛 Hello, here is your latest order update. Shree Krishna Dairy Hi Ramesh, ✅ Delivery completed 📍 Home Delivery

Items: ✅ Buffalo Milk — 2 litre (₹120) · ✅ Cow Milk — 1 litre (₹50)

💰 Total: ₹170 📅 13 Apr 2026 | 🕐 7:30 AM Thank you! 🙏

For multi-product deliveries, all items appear in one message — not multiple. Status mix (some delivered, some skipped) is reflected line-by-line.

Toggles:

  • Delivery update owner toggle — on/off for home deliveries
  • Counter / pickup update owner toggle — separate for walk-in sales
  • Per-customer whatsapp_notify — must be on
  • Per-sale toggle on the counter screen — overrides per individual sale

2. Monthly Bill (bill_summary)

Sent manually when you tap "Send Bill via WhatsApp" on a bill, OR via Send All Due bulk on the Billing screen.

What customer sees:

📋 Monthly Bill — April 2026 From: Shree Krishna Dairy (9876543210)

Hi Ramesh,

🧾 Bill #BILL-202604-001 📦 Total Deliveries: 56

Products: Buffalo Milk - 56 litre

💰 Bill Amount: ₹4200 ✅ Paid: ₹2000 Pending: ₹2200

📄 See attached PDF for full delivery details.

— MilkGo

Followed immediately by the PDF attachment with day-by-day delivery details.

Toggle:

  • Monthly bill owner toggle — must be on or the "Send Bill" button is hidden

3. Payment Received (payment_received)

Sent automatically the moment you record a payment in the app — works for any method (cash, UPI, bank, cheque, online).

What customer sees:

✅ Payment received successfully! Thank you for your payment. Here is the complete summary of your account and this billing cycle.

Business: Shree Krishna Dairy Customer: Ramesh

📅 Billing Month: April 2026 🗓️ Period: 1 Apr 2026 – 30 Apr 2026

💰 Amount Paid: ₹4200 💳 Payment Method: UPI · Ref UPI-123456 · paid on 30 Apr 2026

Account Summary This Month's Bill: ₹4200 Previous Pending Carried Over: ₹0 Remaining Balance: ₹0

Products & Delivery Summary 📦 Products: 3 (Buffalo Milk, Cow Milk, Curd) ✅ Deliveries completed: 27 ⏭️ Deliveries skipped: 3

Thank you for being our valued customer.

Acts as a digital receipt — customer has proof of every payment with full account context.

Toggle:

  • Payment received owner toggle — must be on

4. Overdue Reminder (payment_overdue_reminder)

Sent manually with a single tap — either per-customer (Remind button next to a bill) or in bulk via Send All Reminders on the Billing screen.

What customer sees:

⚠️ Payment reminder! Your bill is overdue and we have not received the payment yet. Please find the complete details of your pending bill below.

Business: Shree Krishna Dairy Customer: Ramesh

🧾 Bill Number: BILL-202604-001 📅 Billing Month: April 2026 📆 Due Date: 5 May 2026 ⏰ Days Overdue: 7 days

💰 Pending Amount: ₹2200

We kindly request you to settle the outstanding amount at your earliest convenience. You can view your complete bill details by tapping the button below.

Thank you for your attention to this matter.

[View Your Bill] (deep link to PDF)

The "View Your Bill" button takes the customer straight to their bill PDF online — no need to scroll back to find the original bill message.

Toggle:

  • Bill reminder owner toggle — must be on, otherwise the Remind button doesn't appear

The 4 owner toggles

In the WhatsApp Settings screen, you control which message types fire for your business:

ToggleWhat it controls
Monthly bill"Send Bill via WhatsApp" buttons + bulk send
Delivery updateAuto-fired on every home delivery action
Counter / pickup updateAuto-fired on every counter sale; also adds a per-sale toggle on the counter screen
Payment receivedAuto-fired the moment you record a payment
Bill reminder"Remind" buttons + Send All Reminders

All toggles default on. Save your changes by tapping Save at the bottom — switches alone don't persist until you save.

Per-customer opt-in

Beyond your owner toggles, each customer has their own whatsapp_notify flag:

  • Customer profile → Edit → WhatsApp Notify
  • On = customer receives messages (subject to your owner toggle)
  • Off = customer is silent regardless of your toggle

Use off when:

  • Customer specifically asked to stop messages
  • Customer's number is not on WhatsApp
  • Customer's WhatsApp is on a different number — set whatsapp_number to that one

The per-sale switch on Counter

When Counter / pickup update is on at the owner level, the Counter screen shows a small Send WhatsApp update to customer switch above the cart.

  • Default: on
  • Off for just this sale when you don't want to disturb a regular customer

This doesn't affect the owner toggle or the customer's opt-in — it's a one-shot override.

Monthly quota & usage

Your plan caps how many WhatsApp messages you can send per month (e.g. 200, 500, 1000, or unlimited).

The Usage card on the WhatsApp Settings page shows:

  • 42 / 500 (sent / quota)
  • A bar — green (under 80%), amber (80%+), red (at limit)
  • "Resets on the 1st of next month"

Once the quota is hit:

  • Auto-fires (delivery, payment) silently skip with reason monthly limit reached
  • Manual sends (bill, reminder) show an error toast
  • Quota resets at midnight on the 1st

Need more headroom? Upgrade your plan — see 15-plans-billing.md.

Languages — what gets used

The message language is decided in this order:

  1. The owner's currently active app locale (set in Settings → Language). This is the most current signal — if you switch the app to Hindi mid-day, Hindi templates fire from that point.
  2. The owner's stored profile language (fallback)
  3. English (last resort)

The customer's preferred language isn't tracked separately — they receive the language you set. Most owners set their app to whatever language matches their customer base.

Common mistakes

MistakeFix
Switch turned off, but next refresh shows it back onYou forgot to tap Save. Toggles only persist when you save.
Customer says "didn't get my bill"Check usage — was quota full? Check customer's whatsapp_notify — is it on? Check the customer's number is registered on WhatsApp.
Got "this template doesn't exist" errorMeans the template isn't approved in Meta yet. Contact MilkGo support.
Multi-product delivery fired 3 separate messagesThis is fixed — the unified template merges them. If you still see this, your app is on an old version — refresh / reinstall.
Reminder button missing on a billCheck Bill reminder owner toggle. Also check the bill is unpaid + customer has WhatsApp opt-in.

Tips

  • Keep all 4 toggles on by default — auto-confirmations build trust with customers.
  • Switch Counter update off if you serve a lot of casual walk-ins where you don't have customer profiles.
  • Watch usage in the second half of the month — overage = silent failures.
  • Never spam reminders — once per bill is plenty. Customers feel harassed otherwise.

What's next?

Related upstream