12. Drivers — Adding Team Members Who Deliver
A driver is anyone who delivers milk on your behalf. Add them to MilkGo and they get their own login + a stripped-down app showing only today's checklist.
Before you start
- 02-roles.md — your role must support drivers (Tabela / Mandali / Shop)
- 04-areas-societies.md — for assigning routes
- 05-customers.md — customers exist with subscriptions
Where to find it
Bottom navigation → Drivers (truck icon).
If you're a milkman who delivers yourself, you don't need this section. Turn on "I am my own driver" in Settings → Modules — the Drivers screen hides and Deliveries becomes your direct checklist.
Adding a driver
- Tap + Add Driver.
- Fill in:
| Field | Example | Required? |
|---|---|---|
| Name | Pravin Solanki | ✓ |
| Phone | 9123456789 | ✓ — used as login |
| Vehicle type | bike / auto / tempo / truck / bicycle / other | recommended |
| Vehicle number | GJ-05-XX-1234 | optional |
| Commission type | none / fixed_monthly / per_delivery / percentage | optional |
| Commission value | depends on type | conditional |
| PIN (auto-generated 4 digits) | system-generated | ✓ |
| Active | On | ✓ |
- Tap Save.
A 4-digit PIN is generated for the driver. Share it with them via SMS or in person — they need it on first login.
How drivers log in
- Driver opens MilkGo (any phone with the app installed, or
milkgo.inin the browser). - Enters their mobile number (the one you registered).
- App detects it's a driver login — asks for the 4-digit PIN you shared.
- They're in. They see only today's deliveries assigned to them.
Assigning routes
A driver doesn't auto-see every customer — you must explicitly assign which routes they cover.
From the driver's profile
- Open the driver.
- Scroll to Route Assignments.
- Tap + Add Assignment.
- Pick:
- Area (or All Areas)
- Society (within that area, or All)
- Shift — Morning / Evening / Both
- Days of week — All / Mon–Fri / weekends / specific days
- Save.
You can add multiple assignments — e.g.:
- Pravin → Adajan, Morning, Mon–Sat
- Pravin → Vesu, Evening, all days
The driver's daily checklist will only show customers matching at least one of his assignments.
Bulk assign
If you have a single driver who covers everything, set All Areas / All Shifts / All Days. Done.
What the driver sees on their phone
A simplified version of the deliveries screen with just:
- Today's date + shift
- Generate button (only if owner allows)
- Customer list for their assigned area + shift only — names, addresses, qty
- Tap circle or swipe right to mark delivered
- Swipe left to skip (with reason picker)
- Edit qty when delivery is partial
- Optional: collect cash & record payment
What they don't see: products, billing, customers admin, drivers, reports, plans, settings beyond profile.
Driver permissions
By default a driver can:
- ✅ View today's assigned deliveries
- ✅ Mark delivered / skipped / partial
- ✅ Edit qty
- ✅ Record cash payments (if owner allows)
- ✅ Add notes / photos to deliveries
A driver cannot:
- ❌ Add or edit customers
- ❌ Add subscriptions
- ❌ See bills
- ❌ Generate bills or send WhatsApp messages
- ❌ See other drivers' assignments
- ❌ See revenue / reports
Multiple drivers
Add as many as you need (subject to plan limits — see 15-plans-billing.md).
Common setups:
- 2 drivers, split by area — Driver A: Adajan + Vesu morning; Driver B: Athwa + Piplod morning
- 2 drivers, split by shift — Driver A: morning all areas; Driver B: evening all areas
- 1 main + 1 backup — Main covers all routes; backup gets activated only when main is on leave
Commission tracking
If you pay drivers, set the commission method:
| Type | What it means | Reports show |
|---|---|---|
| none | Paid externally, not tracked | Just delivery counts |
| fixed_monthly | Flat ₹ per month | Salary outgoing per month |
| per_delivery | ₹X per delivery completed | Total deliveries × ₹X |
| percentage | X% of revenue from that driver's deliveries | Revenue × X% |
This is for your records — MilkGo doesn't auto-pay drivers. Use the report when settling up at month-end.
Removing or replacing a driver
If a driver leaves:
- Open their profile.
- Toggle Active off.
- Save.
Their deliveries history is preserved. They can no longer log in.
To replace: add a new driver, copy the route assignments. Old driver's history stays intact.
Driver works for multiple owners
A driver who delivers for two dairies can use the same phone number. When they log in, MilkGo asks "which owner are you delivering for today?" and shows that owner's checklist.
You set this up by ensuring the same phone number is added as a driver under both owner accounts.
Tips
- Keep PIN simple. 4 digits is already short — don't overcomplicate. Drivers will type it daily.
- Assign routes specifically. Vague "all areas" assignments make the daily list overwhelming for drivers.
- Don't share the owner's login with drivers. They'd see everything. Always create a proper driver account.
- Active toggle, not delete. If a driver might come back next month, deactivate; don't delete.
Common mistakes
| Mistake | Fix |
|---|---|
| Driver logs in but sees no deliveries | Check Route Assignments — at least one must match today's shift + area |
| Driver sees deliveries from wrong area | Edit assignments — remove unneeded areas |
| Forgot driver's PIN | Open driver profile → Reset PIN → share new one |
| Driver can't login at all | Confirm phone number matches what's saved; check Active = On |
| Driver records cash but it doesn't show on bill | Cash payments by drivers go through the same /api/payments flow — refresh the billing screen |
What's next?
- 07-deliveries.md — what driver sees in detail
- 10-payments.md — cash collection by drivers
- 13-reports.md — driver-wise delivery & commission stats
Related upstream
- 04-areas-societies.md — areas drivers can be assigned to
- 06-subscriptions.md — what creates the deliveries drivers handle