Simplified Opportunity path to Closed Won without Products or Quotes — how to keep it from being abused?
Background
We maintain a multi-business-unit Sales Cloud org. Opportunities are split by Record Type, one per business unit, and one of them (I'll call it DY System) has a fairly heavy sales process:
Inquiry → Proposal→ Proposed Agreement → Contracted → Closed Won / Closed Lost
Today, reaching Closed Won on this Record Type requires a full paper trail, enforced by an Apex trigger:
- Proposal — a Quote flagged as "final" must exist, with a quote status and proposal date
- Contracted — the final Quote must exist, have a PO-confirmed flag, and the Opportunity must carry an effective contract date
- Closed Won — a completion certificate date is required
Two more relevant constraints:
- Quote creation is fronted by a custom LWC that requires the user to pick an OpportunityLineItem, so no Product means no Quote
- A validation rule prevents stage skipping (one step at a time) on this Record Type, and it is shared with two other Record Types — I'd rather not touch it
- The Opportunity's displayed unit price is a formula field reading from the synced Quote, so it can't be typed in
What the business is asking for
For small or simple deals on this Record Type only, they want a simplified path: no Product, no Quote, unit price entered manually, still able to reach Closed Won.
Their own caveat: because intermediate steps are skipped, the simplified path must not become the default. They explicitly asked for a safeguard, but they don't want a heavy approval process either.
What I'm currently leaning toward
- No new Record Type. Adding one forks page layouts, path assistants, profiles, reports, and every RecordTypeId comparison in Apex. Instead: a single checkbox field on the Opportunity.
- Don't skip stages — skip the artifacts. Users still click through the same stages; the trigger simply waives the Product/Quote requirements when the checkbox is set. This avoids touching the shared stage-skipping validation rule and preserves the per-stage date stamps.
- Manual unit price — a new currency field, and extend the existing formula field to IF(simplifiedFlag, manualUnitPrice, SyncedQuote.UnitPrice) so existing reports and list views keep working without being re-pointed at a new field.
If you have shipped an express / simplified / fast-track path on Opportunities (or Cases, Orders, anything with a gated stage model), I'd like to hear how you ran it