In B2B wholesale, the time between an order arriving and leaving is mostly spent waiting for two decisions: whether this customer has credit available, and what price they are contractually owed. Both are answerable by the system and are usually answered by a person.
Where the hours go
- Credit check. The order sits while someone looks at the account. On a busy day it either ships unchecked or waits until tomorrow.
- Price verification. The rep quoted something. Somebody confirms it against a contract that lives in a document.
- Quote to order. The CRM has a quote. The ERP needs an order. Frequently a person retypes it.
- Pick release. The only genuinely physical step, and usually the fastest one.
Warehouse automation projects target the fourth item because it is visible. The first three are where the day goes.
Credit as a system state
The design requirement is that the hold blocks the action instead of notifying someone about it. A warning that can be clicked through is not a control, and under pressure it will be clicked through.
Equally important: define the release path. Who can override a hold, on what basis, and where is that recorded? An override with no audit trail is worse than no hold at all, because it looks like a control in a review.
Contract pricing
| Where the price lives | What goes wrong |
|---|---|
| A maintained price matrix with effective dates | Nothing. This is the target state. |
| A signed contract PDF | Correct and unenforceable — nobody checks it per order. |
| The rep's spreadsheet | Diverges from the contract within a quarter. |
| Institutional memory | Leaves when the person does. |
CRM and ERP, one customer
Where Dynamics 365 Sales sits in front of Business Central, the synchronisation question that matters is not technical. It is which system owns the customer record.
Two systems that both believe they own the customer will overwrite each other, and the pattern is only discovered when a credit limit set in one is reverted by the other.
Measuring it end to end
Track hours from order receipt to shipment across the entire path, not by stage. Stage-level metrics reward moving delay rather than removing it, and every function can show an improvement while the customer's wait is unchanged.