Sales
XBuddy Sales turns a won opportunity into cash. It manages the entire order-to-cash chain — from a customer quotation, through a confirmed sales order, to a delivery order that decrements stock and an invoice that gets paid. Every document in the chain is linked, so a rep can trace a shipment back to the quote that started it, and Finance can see exactly what was ordered, delivered, and billed — without re-entering a single number.
Who uses it: sales reps who build quotes and orders, sales managers who set price lists and track commissions, warehouse users who fulfil delivery orders, and finance users who bill against confirmed orders. Because line items carry per-line tax and discount, unit-of-measure conversions, and product references, the numbers stay consistent from the first quote to the final invoice.
Before you start
Prerequisites
| You need | Why | Where |
|---|---|---|
| At least one product or inventory item | Quote and order lines reference a catalog record; a line without one cannot resolve unit of measure, price list, or COGS | /prod-mkt/catalog, /inventory/items |
| A contact (and usually an account) | The customer on the quote; also decides which price list and payment terms apply | /crm/contacts |
| A price list (optional but recommended) | Without one, every line is priced manually and nothing enforces consistency | /sales/price-lists |
| A warehouse with stock | Only needed once you ship: a delivery order decrements a real warehouse | /inventory/warehouses |
| Chart of accounts mapped | Needed the moment an invoice posts revenue and COGS | /accounting/chart-of-accounts |
Products & Services (/prod-mkt/catalog) is the commercial list for non-stock offerings. Physical goods live in Inventory. If the same service will be scheduled, SLA-tracked, or invoiced through Service Management, create one operational rate card and link the SKU — otherwise converting a quotation to a Service Order is rejected. A Sales-only digital SKU does not need a rate card.
Permissions that unlock each area
Permissions are AND-ed, not inherited: holding sales:read does not grant quotations:read. A user needs the specific key for each screen.
| Permission | Unlocks |
|---|---|
quotations:read / quotations:write | View / build quotations |
quotations:send | Send a quote to the customer |
quotations:approve | Approve a quote that hit an approval rule |
sales_orders:read / sales_orders:write | View / create and confirm sales orders |
delivery_orders:read / :write | View / create delivery orders |
delivery_orders:pick · :pack · :ship · :deliver | The four fulfilment steps, grantable separately so a picker is not also a shipper |
sales_price_lists:read / :write | View / maintain price lists |
products:read | Resolve catalog lines |
commissions:read | See your own earnings |
commissions:team | See the team’s earnings |
commission_runs:read / :write / :approve | Run and approve commission periods |
sales:admin | Quotation templates, sales teams, pipeline settings |
Which records you see
Sales records are owner-scoped (Axis 7). A role’s tier decides the row set:
| Tier | A rep sees |
|---|---|
own | Quotes and orders where they are the assignee or creator |
team | The above plus their direct and indirect reports’, resolved through the manager chain |
all | Everything in the company |
none | Nothing — an explicit revocation that a role holding sales_orders:read can still be given |
The tier is set per resource under Settings → Roles → Data scope. Scope narrows rows; it never widens what the permission already allows.
Key Features
- Quotation builder with reusable templates, per-line tax and discount overrides, and before/after-tax columns
- Quote → Sales Order → Delivery Order → Invoice document chain with full traceability and one-click hand-off
- Five configurable revenue recognition methods — recognize revenue on invoice, on order confirmation, on shipment, on completion, or at custom milestones
- Customer-specific and tiered price lists applied automatically on the line
- Customer returns / RMA with stock and financial reversal (credit note)
- Commission rules with a rep-facing My Earnings and My Performance view
- Sales teams and reps roster for organizing quota and commission attribution
- Sales product catalog surfacing both stock and non-stock sellables
- Sales channels for splitting revenue by storefront, marketplace, or team
- Pipeline analytics, weighted forecast, and win/loss analysis for managers
- Reusable quotation and order templates for fast, consistent quoting
- AI Hub with the Sales Coach assistant reviewing every open deal, quote, and order
Screen map
Every route below exists in the app. Anything the docs claim but the code lacks is caught by pnpm validate:site-docs (rule D4).
Selling
| Screen | Route | What it is for | Permission |
|---|---|---|---|
| Sales overview | /sales | Pipeline value, open quotes, orders awaiting fulfilment | quotations:read |
| Quotations | /sales/quotations | The quote list; filter by status | quotations:read |
| Quotation detail | /sales/quotations/[id] | Lines, totals, document chain, e-signature, convert actions | quotations:read |
| New / edit quote | /sales/quotations/new, /sales/quotations/[id]/edit | The builder | quotations:write |
| Quotation templates | /sales/quotation-templates | Reusable line sets and terms | sales:admin |
| Sales orders | /sales/orders | Confirmed orders and their fulfilment state | sales_orders:read |
| Sales order detail | /sales/orders/[id] | Lines, delivered vs invoiced quantities, chain, revenue recognition | sales_orders:read |
| Order templates | /sales/sales-order/templates | Recurring order shapes | sales:admin |
Fulfilment and returns
| Screen | Route | What it is for | Permission |
|---|---|---|---|
| Delivery orders | /sales/delivery-orders | Everything queued to ship | delivery_orders:read |
| Delivery order detail | /sales/delivery-orders/[id] | Pick → pack → ship → deliver, serial/lot capture | delivery_orders:read |
| Returns / RMA | /sales/returns | Customer returns and their financial reversal | sales_orders:read |
| Return detail | /sales/returns/[id] | Received quantities, restock, credit note | sales_orders:read |
Pricing and catalog
| Screen | Route | What it is for | Permission |
|---|---|---|---|
| Price lists | /sales/price-lists | Customer and tier pricing | sales_price_lists:read |
| Price list detail | /sales/price-lists/[id] | Per-product rows and validity window | sales_price_lists:read |
| Products | /sales/products | The sellable catalog as Sales sees it | products:read |
People, commission and analysis
| Screen | Route | What it is for | Permission |
|---|---|---|---|
| Sales reps | /sales/reps | The roster Sales owns | sales:read |
| Sales teams | /sales/teams | Team grouping; opt-in feature | sales:admin |
| Commission runs | /sales/commissions | Period runs awaiting approval | commission_runs:read |
| Run detail | /sales/commissions/[runId] | Line-level attribution | commission_runs:read |
| Commission plans | /sales/commissions/plans | Rules and rates | commission_runs:write |
| Team earnings | /sales/commissions/earnings | What the team earned | commissions:read |
| My earnings | /sales/commissions/my-earnings | A rep’s own figures | commissions:read |
| My performance | /sales/my-performance | A rep’s own attainment | commissions:read |
| Team performance | /sales/performance | Manager view of attainment | deals:read |
| Channels | /sales/channels | Revenue split by channel | sales:read |
| Reports | /sales/reports | Sales reporting | quotations:read |
| Settings | /sales/settings, /sales/settings/pipeline | App configuration | sales:admin |
| Automation | /sales/automation/agents, /sales/automation/workflows | AI agents and workflows scoped to Sales | agents:read / workflow:read |
Important features
Full feature reference
| Nav item | What it does |
|---|---|
| Overview | Sales dashboard with revenue, open orders, quotation-to-order conversion rate, and a chart of sales by period. |
| Quotations | Build, send, and track customer price proposals with per-line tax/discount and template reuse. Convert accepted quotes to orders. |
| Sales Orders | Confirmed commercial commitments. Reserve stock for product lines, track fulfilment status, choose a revenue recognition method, and generate delivery orders and invoices. |
| Delivery Orders | Picking and dispatch documents that post a goods issue in Inventory and decrement on-hand stock for the shipped, product-only lines. |
| Customer Returns | RMA workspace that reverses stock (goods back in) and finances (credit note) against the original sale. |
| Sales Products | Sellable catalog surfacing both non-stock products and stock items flagged as sellable, used by the line-item picker across quotes and orders. |
| Sales Price Lists | Customer- or tier-specific price tables applied automatically to matching line items on quotes and orders. |
| Sales Channels | Revenue-splitting dimension (storefront, marketplace, team) for analyzing where sales come from. |
| My Earnings | Rep-facing view of accrued and paid commission per deal and period, scoped to that rep only. |
| My Performance | Rep-facing quota attainment, win rate, and sales trend against targets, scoped to that rep only. |
| Commissions | Commission rule engine (flat/tiered/per-category) with run periods and manager approval, feeding rep earnings. |
| Sales Teams | Optional roster of teams for organizing reps and, when enabled, scoping pipeline visibility. |
| Sales Reps | Roster of individual reps, their team assignment, and their quota. |
| Reports | Sales reporting hub: revenue by product/customer/channel, order aging, and commission summaries with CSV export. |
| Pipeline Analytics | Manager report on open value, stage distribution, and conversion across the sales pipeline. |
| Pipeline Forecast | Weighted revenue projection by period, owner, and stage for committed vs. best-case planning. |
| Win/Loss Analysis | Report on closed-won vs. closed-lost with reasons, helping refine pricing and process. |
| Sales Quotation Templates | Reusable quotation blueprints with pre-filled line items for fast, consistent quoting. |
| Sales Order Templates | Reusable order blueprints for recurring or standard-configuration orders. |
| AI Hub | Run Sales AI assistants (Sales Coach) and review their suggestions inline before approving any action. |
| Workflows | Automation for sales events — e.g. notify a manager on a large order, or auto-create a delivery order on confirmation. |
| Settings | Configure document numbering, tax defaults, revenue recognition, commission rules, data scope, feature toggles (including Sales Teams), and sales master data. |
Integration points
| Connects to | How the data flows |
|---|---|
| CRM | A won deal generates a quotation with the account, contact, and amount pre-filled, and confirming a linked Sales Order advances the deal to Won — keeping the opportunity linked to its fulfilling documents end to end. |
| Finance | A confirmed, shipped, or milestone-triggered Sales Order posts revenue per its recognition method; invoicing nets off whatever has already been recognized. Customer returns raise credit notes against the customer balance. |
| Inventory | Delivery orders post a goods issue and decrement on-hand stock for product lines only; returns receive goods back into the warehouse. Stock reservation happens on order confirmation, before any goods physically move. |
| Product & Marketing | The sellable product catalog and price lists originate from the shared catalog used across the platform, so pricing stays consistent between Sales and any customer-facing storefront. |
| Service Management | A mixed order with real service delivery — scheduling, technician dispatch, completion sign-off — should be routed through a Service Order rather than relying on a Sales Order’s simplified service-line fulfilment. |
| Payroll | Approved commission amounts can flow to Payroll as a payout component for the pay period. |
Related AI agents
| Agent | What it does |
|---|---|
| Sales Coach | Reviews open deals, quotes, and orders across the pipeline, spots stalled or under-discounted opportunities and overdue quotations, and suggests next actions — a follow-up, a price adjustment, an escalation — for a rep or manager to approve. |
| CS Guardian | Watches customers for churn and renewal risk after the sale closes, surfacing retention actions before recurring revenue slips. |
Sales Coach never sends anything to a customer or changes a document on its own. Every suggestion — a follow-up task, a discount recommendation, an escalation — lands as a card you review and approve from the AI Hub or directly on the relevant quote/order.