An order is a promise.
We track it to the cash.
Twelve states, not two. Every order is risk-scored from the phone's history, confirmed on WhatsApp before you pack, and closed only when the money moves.
From cart to confirmed in ninety seconds.
- 1
The order lands, already scored.
Before your staff sees it, the phone's history across every brand on your org sets the risk band: first order, past refusals, cash collected — all counted.
- 2
Confirm before you pack.
Risky and first-time orders queue for a WhatsApp confirm or a call. The customer answers with one tap; the order moves itself.
- 3
Every ending is a state.
Delivered, refused, unreachable, partial — each closes the loop differently, and each feeds the score of the next order.
A state machine, not a status column.
New, confirming, confirmed, packed, dispatched, out for delivery, delivered, cash collected, remitted, reconciled — plus refused, unreachable, returned and cancelled. Every move goes through one guarded function; an illegal jump is refused, not fudged.
The queue that knows who to call first.
Due orders first, then the risky bands. Every call attempt is logged with its outcome; a no-answer reschedules itself two hours out. WhatsApp quick replies confirm, cancel or request an edit — and the order obeys.
A score built from refusals, not vibes.
Zero to a hundred, deterministic: a first order adds thirty, each past refusal fifteen, every collected order takes eight off. Your caps decide the rest — refuse, or confirm by call, above a total you set.
A status column vs a state machine.
| The plugin way | Raizn | |
|---|---|---|
| States | Paid, unpaid, maybe “failed”. | Twelve, each with its own rules and timestamps. |
| Risk | A fraud app that never heard of COD. | A score from the phone's refusal history, across your brands. |
| Refusals | A refund you notice next week. | A state the moment the driver reports it, feeding the next score. |