End-to-end workflows
How work moves through Sales from start to finish, who does each step and what the system does in response.
On this page (8)
Quote to cash: quotation, send, accept, order, delivery, invoice, payment
Who: Sales user (prepares), Sales manager (confirms), Warehouse user (delivers), Accounts user with invoice and payment rights
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales user: Sales > Orders > Quotations > New quotation; customer with VAT 5%, 2 lines (3 x 100.00 with 10% discount, and 1 x 50.00); Save draft | Draft SO-... saved; net 320.00, VAT 16.00, total 336.00; Valid until = today + settings validity days |
| 2 | Sales user: Quotation tab > Send quotation; copy the customer link into a private window; customer types a name and presses Accept quotation | Version 1 frozen as Sent with a reference hash; the page shows lines and totals; after accepting: 'Accepted by <name> on <date>. Thank you.'; the quotation shows Accepted - by link |
| 3 | Sales manager: open the same quotation, check Prices & margin (no warnings), press Confirm order | State Confirmed, title Sales order, moves to Sales orders; a draft delivery order is raised from the default warehouse; credit is reserved; History shows 'sale.confirm' |
| 4 | Warehouse user: Inventory > Deliveries, open the draft delivery, validate full quantities | Delivery done; the order's Delivery status = Fully delivered; stock reduced and the cost-of-sales journal posted |
| 5 | Accounts user: open the order > Create invoice > keep quantities > Raise the invoice; open it and press Post invoice | Draft invoice INV-... has the order's lines; after posting: Dr receivable 336.00, Cr revenue 320.00, Cr output VAT 16.00; order Invoice status = Fully invoiced |
| 6 | Accounts user: Record receipt 336.00 to a bank account | Payment badge = Paid, Outstanding 0.00; the receipt is listed under Payments; the customer's open balance and credit exposure drop by 336.00 |
| 7 | Sales user: reopen the order and check Delivery & invoicing tab and Sales analysis for the month | Per line Ordered = Delivered = Invoiced; the invoice appears in Sales analysis with untaxed 320.00 |
Discount over the limit: request, approval by somebody else, confirm
Who: Sales user (prepares and asks), a different Sales manager with the price approval right (decides), the same Sales user (confirms if allowed) or the manager
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales manager: Sales > Configuration > Settings: Largest discount without approval = 10%; Margin control = Hold; Save | 'Sales settings saved.'; Audit shows 'sales.settings' with before and after values |
| 2 | Sales user: new quotation with a 15% discount on one line; Save draft; press Confirm order (if the user may confirm) | Refused: 'This quotation needs price approval before it is confirmed: A 15% discount is over the 10% allowed without approval.' |
| 3 | Sales user: Prices & margin tab > Why this price? > Request approval | 'Approval requested.'; status Waiting for price approval; the quotation appears in Sales > Orders > Price approvals as Requested |
| 4 | The SAME Sales user (or the manager who last saved the quotation) opens Price approvals and tries Approve | Refused: 'Somebody other than the person who priced or asked must decide this.' |
| 5 | A different user holding sales.price.approve: Price approvals > open the request > Approve | State Approved; History shows 'sale.price_approval.approved' by the second person |
| 6 | Edit a quantity on the quotation, save, then Confirm order; then undo the edit | After the edit the approval no longer matches and confirm is held again ('needs price approval'); a new request must be made; with no edit, confirm succeeds |
| 7 | Repeat with a rejection: second person Rejects with an empty note, then with a note | Empty note refused 'Say why it is rejected.'; with a note the state is Rejected and the quotation stays held |
Credit limit hold and release
Who: Sales user, Sales manager, Finance credit controller (credit override right)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Finance: set the customer's credit limit to 1,000.00 with policy Hard block; Sales manager: tick Credit re-check at Dispatch and Invoice in Sales settings | Customer and settings saved; Audit lists both changes |
| 2 | Sales user: quotation for the customer worth 5,000.00; Confirm order | Refused with 'Credit check: This takes exposure to ... over the limit of 1,000.00. Ask for a credit override (Finance > Credit control)...' |
| 3 | Sales > Orders > Credit holds | The quotation is listed with Why (amount over the limit); it stays a draft |
| 4 | Finance credit controller: Finance > Credit control: create and approve an override for the customer with an expiry date (not the same person who requested it) | Override approved with an expiry date |
| 5 | Sales manager: Confirm order again | Confirms; the credit reservation records the override; the hold disappears from Credit holds |
| 6 | After the override expiry date (or after cancelling it) the Warehouse user validates the delivery | Refused: 'Credit check: the credit override behind <order> ended on <date>...' and the order is put back on credit hold |
Partial delivery, back order and partial invoicing
Who: Sales manager, Warehouse user, Accounts user
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales manager: confirm an order of 10 units of a stocked product; settings Invoicing basis = Delivered quantities | Order Confirmed; draft delivery for 10; Invoice status = Nothing to invoice |
| 2 | Warehouse user: validate the delivery for 6 units and create a back order for 4 | Delivery status = Partially delivered; a back-order delivery of 4 is open |
| 3 | Accounts user: Create invoice and try 8; then 6 | 8 refused: '<line>: only 6 can be invoiced now - 6 of 10 delivered, 0 already invoiced.'; 6 raises a draft invoice for 6 units; post it |
| 4 | Warehouse user: validate the back order for 4; Accounts user: Create invoice again | Dialog shows Already invoiced 6, Left 4; invoice for 4 posts; Invoice status = Fully invoiced |
| 5 | Open the order > Delivery & invoicing tab | Ordered 10, Delivered 10, Invoiced 10, To deliver 0, To invoice 0; two invoices listed under the Invoices smart button |
Customer return, credit note and refund
Who: Sales user (starts the return), Warehouse user (receives), Accounts user (credit note), Sales manager (approves note if required)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Open a Fully delivered and invoiced order with a posted, paid invoice; Returns tab: 2 coming back, reason Defective; Create return | 'Return drafted. Authorise and receive it in Inventory > Returns.'; return listed as drafted (needs the delivery right - a draft-only user is refused) |
| 2 | Warehouse user: Inventory > Returns: authorise and receive the return | Stock increases by 2 (or goes to scrap by the reason's disposition); return status Received; Returned column on the order = 2 |
| 3 | Accounts user: back on the order Returns tab press Create credit note | Draft credit note tied to the invoice lines for 2 units, Against invoice set |
| 4 | Accounts user: Approve note, then Post note (a different person from the one who drafted it where billing approval is on) | Credit note Posted; journal reverses receivable, revenue and VAT for 2 units; Credited column on the order = 2 |
| 5 | Try a second credit note for more than the remaining quantity | Refused: 'INV-... has only n of <CODE> left to credit.' |
| 6 | Accounts user: register the refund / allocate the credit against the customer's open invoices | Customer balance falls by the credit note total; Sales analysis for the month shows invoices less the credit note |
Change order on a confirmed order
Who: Sales user (asks), a different user with confirm rights (approves)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales user: confirmed order of 10 units, nothing delivered; Changes tab: reduce quantity to 8 and request | 'Change applied.' at once (a pure reduction needs no approval); total recalculated; change listed Applied |
| 2 | Sales user: request a change that raises the price or the quantity to 12 | 'Change order recorded.' state Waiting for approval; appears in Price approvals > Change orders waiting; order unchanged |
| 3 | The same Sales user opens the waiting change and tries to approve it | Refused: 'Somebody other than the person who asked must approve this change.' |
| 4 | Sales manager (document.confirm) approves | Change Applied; order quantity 12; the draft delivery order follows the new quantity; credit reservation grows (a Hard-block customer over limit is refused) |
| 5 | Open History and the Changes tab | Before and after pictures of the order are kept; Audit lists change requested and decided by two different users |
Price list and quantity-break pricing through to the invoice
Who: Sales manager (price list), Sales user (quotation), Accounts user (invoice)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Administration > Masters > Price lists: new list with product P at 100.00, a break of 90.00 from 10 units, assigned to the customer; set Active | List saved and assigned; customer shows the list on its record |
| 2 | Sales user: new quotation for the customer; add P quantity 5, save; add another line of P quantity 12; save | 5 units price at 100.00 (source price list); 12 units price at 90.00 (quantity break); Prices & margin shows both |
| 3 | Sales manager: change the list price to 110.00; open the saved quotation and press Confirm order | Refused 'Prices on the list have changed since this quotation was priced...' |
| 4 | Sales user: Update prices, then Confirm | 'Prices updated from the price list.'; lines re-priced to 110.00 and 99.00 (break scaled by the list); confirm succeeds |
| 5 | Accounts user: Create invoice and post | Invoice lines carry the confirmed prices, not later list changes; totals equal the order |
Blanket agreement and releases
Who: Sales user (drafts), a different Sales manager (activates), Sales user (releases)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales user: Sales > Orders > Blanket agreements > New; customer, period, product P quantity 5 at 100.00; Save | 'Agreement saved.'; number SA-..., state Draft |
| 2 | The same Sales user tries to Activate | Refused: 'Somebody other than the person who drafted it must activate the agreement.' (a draft-only user also lacks the confirm right) |
| 3 | Sales manager activates | 'Agreement active.' with Activated by the manager; Released 0 / Left 5 |
| 4 | Sales user: quotation released against the agreement for 3, confirm; then another for 3 | First consumes 3 (Left 2); second refused (6 of 5): quantity over what is left |
| 5 | Sales manager: Close the agreement; try another release | 'Agreement closed.'; release refused: 'Agreement SA-... is closed, so nothing can be released against it.' |