A discount can look reasonable while hiding an expensive payment term or a heavily discounted add-on. Salesforce discount approval works best when it evaluates the full commercial request, not one percentage.
For SaaS teams, the goal is controlled exceptions without making every quote wait for finance. That requires reliable pricing fields, clear decision owners, and approval controls that survive quote revisions.
Start by choosing the approval mechanism your Salesforce setup supports, then build the policy around your actual pricing model.
Choose the Right Salesforce Discount Approval Mechanism
Salesforce offers different approval approaches. Before building rules, identify which object holds the commercial request and which product manages quoting.
Classic Approval Processes for Record-Level Reviews
A Classic Approval Process evaluates a record against entry criteria, routes it through approval steps, and runs configured actions.
This can suit a lean SaaS team using Opportunities and a short product catalog. However, an Opportunity discount field must reflect the underlying pricing accurately. Native opportunity products allow sales prices, but they don’t provide a complete discount governance system.
Keep the approved commercial request on one authoritative record. If reps maintain multiple quotes, approving the Opportunity alone may leave uncertainty about which version received approval.
Advanced Approvals for Existing CPQ Setups
Salesforce CPQ Advanced Approvals uses approval rules, conditions, and approvers. Salesforce’s documentation describes how CPQ approval rules control approval requests and related notifications.
For an existing CPQ implementation, evaluate the configured quote approval model before adding a separate Opportunity process. Two independent approval systems can produce conflicting statuses or duplicate requests.
Advanced Approvals isn’t interchangeable with standard platform approvals. Also, verify licensing and configuration before assuming it’s available. If you use Flow Approval Processes or Revenue Cloud, check that product’s documentation rather than copying legacy CPQ instructions.
Define the Pricing Data Before Routing Requests
Approval logic is only as trustworthy as its inputs. Agree on the discount calculation before discussing thresholds.
Establish a Consistent Discount Baseline
Calculate discount against comparable list and net amounts. Both totals should cover the same products, currency, quantities, and subscription period.
For a quote-level percentage, divide the difference between total list and net values by total list value. Don’t average individual line percentages, because differently priced lines carry different economic weight.
Separate recurring software from implementation fees when evaluating recurring revenue. Also, handle zero-list-price lines explicitly instead of dividing by zero or silently excluding concessions.
Salesforce CPQ’s discount schedules support quantity- or term-based discounts. Decide whether approval measures the total reduction from list price or additional discretionary discount. Those are different policy choices.
Capture Exceptions in Structured Fields
For a lightweight implementation, consider fields such as Requested Discount, Discount Reason, Payment Terms, Non-Standard Terms, and Quote Version. These are design suggestions, not standard fields guaranteed in every org.
Use picklists, checkboxes, and numeric fields for values that drive routing. Reserve free text for the explanation an approver needs.
Keep selling responsibility with the Opportunity owner. Track the current approver and deal desk coordinator separately, so review assignments don’t accidentally change sales ownership.
Finally, require the pricing and commercial details before submission. Approvers shouldn’t need a Slack conversation to discover what they’re approving.
Set Approval Bands Without Ignoring Other Concessions

Discount thresholds need explicit boundaries. Salesforce’s documented quote-approval example requires Sales Manager approval at 25% or above. Discounts above 50% also require Senior Vice President approval.
The example translates into these boundaries:
| Requested discount | Required review in Salesforce’s example |
|---|---|
| Exactly 25% through exactly 50% | Sales Manager |
| Greater than 50% | Sales Manager and Senior Vice President |
These are documentation examples, not Salesforce defaults or recommended SaaS thresholds. Your finance and sales leaders should set bands using your own economics.
Write the boundaries plainly. “Above 25%” excludes exactly 25%, while “25% or above” includes it. Test equality cases because a single comparison operator can change the approval path.
Discount percentage should also sit alongside separate exception rules. Extended payment terms, waived implementation fees, and multi-year price locks can deserve review even when the subscription discount stays within policy.
Assign each decision to its proper owner. Finance reviews financial exposure; legal reviews contract language. Technical commitments belong with the team responsible for delivery.
Where your approval product supports it, independent reviews can run in parallel. Use sequential review when a later decision depends on an earlier one. Avoid requiring senior leaders to approve routine concessions merely because they sit at the top of the hierarchy.
Build a Classic Approval Process Step by Step
For a record-level implementation, Salesforce’s approval process creation guide starts in Setup. Build in a sandbox first.
- Prepare the record. Add the necessary pricing, reason, and exception fields. Calculate the relevant totals before submission. Use validation rules or another appropriate control to prevent incomplete requests.
- Create the process. In Setup, enter Approval Processes in Quick Find. Select the target object, then create a process using the Standard Setup Wizard. Choose Opportunity only if it holds the authoritative approval request.
- Set entry criteria and submitters. Entry criteria decide whether the record can enter this process. Match your readiness requirements and approval-triggering conditions. Allowed submitters determine who can submit it.
- Configure approval steps. Step criteria determine which requests need each review. Assign approvers using supported options for your process. If you use manager-based routing, verify the user hierarchy and test missing-manager cases.
- Configure outcomes and activate. Set initial submission, final approval, rejection, and recall actions. Update a controlled status and choose the appropriate locking behavior. Add the submission action to the user experience, then activate after testing.
Entry criteria and step criteria have different jobs. A request can qualify for the process but skip a particular step. Test skipped-step behavior so a lower-band request doesn’t accidentally terminate the intended chain.
Also, keep representatives from manually setting an Approved status. Permissions and validation should protect the fields your release controls trust.
For new supporting automation, use Flow or the current Salesforce-supported approach rather than building with Process Builder. Document dependencies between automation, validation rules, and approval actions before deployment.
Protect Approved Quotes Against Later Changes
Approval should attach to a specific commercial package. Otherwise, a rep can receive approval for one price and send another.
Require Re-Approval for Material Revisions
Define which changes invalidate approval. Common candidates include price, quantity, subscription term, payment terms, and contract exceptions.
Store enough information to identify the reviewed version. Depending on your setup, that may mean a quote version, an approval snapshot, or controlled records of approved values.
Don’t assume a formula recalculating the current discount preserves the earlier decision. The current value and the approved value answer different questions.
Your re-approval policy should distinguish administrative corrections from changes that affect economics or risk. That keeps harmless edits from restarting the entire review.
Connect Approval to the Actual Release Path
Tie quote generation, sending, or the pre-close checkpoint to completed approvals. A status field alone doesn’t stop someone from sending an unapproved document.
Review who can edit protected fields and how administrators or integrations interact with locked records. Also, test related quote lines rather than checking only the parent.
Locking an Opportunity doesn’t automatically freeze every related commercial record. Test the quote and quote-line editing paths separately.
Before release, verify prices, quantities, terms, and customer-facing wording in the output document. Then confirm the approved package can reach contracting and billing without manual reinterpretation.
Test Failures, Renewals, and Approval Ownership

A successful new-business quote is only the first test. SaaS approval rules must also work when subscriptions change.
Test these cases before launch:
- Submit requests exactly at each threshold, just below it, and just above it.
- Combine a modest discount with non-standard payment terms or a waived fee.
- Revise an approved quote, then attempt document release and deal closure.
- Run a renewal and a mid-term amendment, including co-terming where your setup supports it.
- Submit with missing approver data, restricted permissions, and conflicting automation.
For supporting flows, configure fault handling where supported for risky data operations and actions. Give the rep a useful next step and route technical details to the administrator. A fault path doesn’t automatically reverse earlier changes, so choose transaction behavior deliberately.
Approval exceptions need an owner, too. Define a fallback reviewer or operational queue, a response target, and an escalation path for unavailable approvers. Keep this separate from ordinary sales ownership.
After launch, track submission-to-decision time, overdue requests, rejection reasons, and approved discounts by exception type. These measures show whether delays come from missing information or an overloaded reviewer.
Assign one business owner to the policy and one technical owner to implementation. Whenever pricing or catalog logic changes, retest approvals alongside renewals and amendments. A small pricing update can affect calculations, routing, documents, and downstream contract behavior.
Frequently Asked Questions
Do Small SaaS Teams Need CPQ for Discount Approvals?
No. A team with predictable products can use standard Opportunities, structured fields, and a Classic Approval Process.
However, the team must maintain reliable pricing calculations and release controls. CPQ becomes more relevant when configuration, subscription changes, and pricing dependencies exceed what a lightweight model can safely manage.
Does Opportunity Approval Cover Every Related Quote?
Only if your implementation explicitly connects that approval to the relevant quote and version. Salesforce discount approval should identify the commercial package reviewers accepted.
For multiple quotes, define which one is authoritative. Then test whether changing it invalidates approval and whether other quotes can bypass the release control.
Make Approval Match the Deal You Send
Effective discount rules depend on trusted pricing data and a clearly identified approved version. Thresholds help route decisions, but they can’t replace ownership or release controls.
Start with the smallest approval model that covers your real exceptions. Test revisions and subscription changes before launch, then use queue data to improve the policy.
The customer should receive the same commercial package your reviewers approved.