Mango CRM runs a cold-storage operation from two dashboards. The stock room watches shelf life and stock levels and drafts the message you send to the crew. Reorders watches the buyers, works out when each one is genuinely due back, and decides who is actually worth messaging.
Powered by 27th MarketingA crate that sits three days too long is not late, it's a loss. And a buyer who is silent for sixty days is either fine or gone, depending entirely on which variety they buy. Both answers were living in someone's head.
Every batch is plotted by days until its best-before date, so the lots about to become a problem are visible before they are one. Every buyer gets a cycle estimated from their own buying history and their own order size, so "due" means due for them, not due on average.
Anything already over the line, first in the list, every time.
The lots about to become a problem, while there's still time to move them.
A variety on the floor at zero, before a buyer finds out for you.
Per-variety thresholds, editable, not one number for the whole warehouse.
The stage-and-room mismatch that quietly costs a whole lot.
A room holding more than it should, flagged as a room problem.
Pick an alert, get written wording, choose who to tell, copy it out.
What was drafted, copied and sent, so a shift handover reads it, not guesses.
A browser page cannot deliver an SMS or an e-mail. This drafts and logs; you copy into whichever app actually sends. The SMS part counter is there because a three-part message costs three times as much and arrives out of order on a bad network. Nothing here claims a delivery it cannot verify, and that's a design decision, not a limitation we hid.
Due date is the last order plus units multiplied by days-per-unit. A buyer who takes six crates is covered roughly three times as long as one who takes two. A flat cycle would nudge the big buyer two-thirds of a cycle too early, every single time, until they stopped reading.
The estimate follows the median gap, not the mean, so one fiesta order can't drag it by weeks. It's then blended toward the product default by how much evidence exists, and clamped between half and twice that default, so a data glitch can't invent a year-long cycle.
Supplied, due, overdue, lapsed, with every boundary a multiple of that buyer's own cycle. Sixty days of silence is nothing for one variety and terminal for another, so a fixed day-count would be wrong for nearly everyone.
Due items go into a per-buyer basket instead of straight out the door, and the basket only sends once something in it is genuinely overdue. Everyone held back is listed with the reason, and every reason is fixable from the buyer's own record.
A restock nudge is suppressed when the cold store has none of that variety on the floor. Nothing is worse than a "time to reorder" message about something you cannot ship, and it's the reason the buyer side lives here instead of in a CRM that can't see the stock.
A fixed share of buyers is never nudged, so there is always an untouched group to measure the rest against. Without a holdout, "the nudges are working" is a feeling, not a number.
This is a dashboard that lives on a warehouse wall for weeks at a time. Most of the engineering went into the failure modes nobody notices until they've already cost money.
Harvest date, shelf life, spoilage risk, the exact same clock.
Expiry-driven stock with reorder points per line item.
Batch codes, best-before windows, and a wholesale reorder cycle.
No spoilage, but the same "who's due back" question, answered per customer.
Designed, built and powered by 27th Marketing.
Rules you can edit, numbers you can trust, and a system that admits what it doesn't know. That's the standard on every build we ship.
Tell us what you store and who buys it. We'll show you what the rules would catch in your first week.