How to Build a CRM Approval Process for Discounts and High-Value Deals
Stop deals advancing without sign-off. How RevBlack builds approval processes in Salesforce and HubSpot for discounts and high-value contracts.
Table of contents
Most sales teams leak revenue the same way, not because reps are dishonest, but because the system lets deals move forward without the right people ever seeing them. A rep offers a 30% discount. A non-standard contract goes out. A six-figure deal closes without Finance knowing. RevBlack sees this pattern consistently across mid-market B2B sales teams: the deals are real, the reps are capable, but the governance layer is missing.
An approval process fixes this by routing specific deals, those with large discounts, high contract values, or non-standard terms to the right approvers before they can advance. The result is improved deal quality, a clear audit trail, and a process that protects reps as much as it protects the business.
This playbook covers when to implement an approval process, who needs to be involved, how to configure it in Salesforce and HubSpot, and the most common problems to avoid.
What Is a CRM Approval Process and What Does It Solve?
An approval process is a structured workflow that requires designated individuals to review and authorize a deal before it can advance, eliminating the revenue leakage that happens when pricing exceptions, non-standard terms, or high-value contracts move forward without documentation.
An Approval Process is a structured workflow that requires one or more designated individuals to review and approve a record, typically an Opportunity or Deal, before a specific action can be taken or a stage can progress. It enforces governance over decisions that carry financial or strategic risk.
Problems this solves:
- Deals with large discounts moving forward without manager sign-off
- No audit trail for high-value or non-standard contracts
- Reps moving opportunities through stages without proper authorization
- Inconsistent deal review processes across teams or regions
- Revenue leakage due to unreviewed pricing exceptions
What success looks like: Every deal that meets defined criteria is automatically routed to the right approver, and no opportunity advances without documented approval. At that point, the team will see improved deal quality, stronger governance, and a clear accountability trail in the CRM. Reps should feel like the process protects them as much as it protects the business.
When Should You Implement an Approval Process?
An approval process makes sense when deals are advancing without the right oversight, but the conditions to build it correctly need to be in place first.
Common pain points that trigger this project:
- Deals being discounted heavily without any review or sign-off.
- Sales reps making pricing decisions that should require management approval.
- Leadership has no visibility into non-standard deal terms being offered.
- Multiple teams or regions are inconsistently applying deal criteria.
- There is no documented process for who approves what and when.
- Compliance or legal reviews are being skipped before contracts are sent.
Prerequisites before starting:
- Clear definition of which criteria should trigger an approval (discount %, deal size, contract length, product, etc.)
- Agreement on who the approvers are and a backup in case they are unavailable.
- Understanding of which opportunity record types or pipelines the approval should apply to.
- Leadership alignment on what happens if an approval is rejected.
- Clarity on SLA expectations: how quickly must approvers respond?
Which KPIs Does an Approval Process Impact?
An approval process affects three metrics that directly reflect governance quality and sales velocity, tracking them tells you whether the process is working or creating bottlenecks.
Approval Cycle Time: Measures how quickly approvers are responding to approval requests. A long cycle time may indicate bottlenecks that are slowing down the sales process.
Approval Rate vs. Rejection Rate: Tracks how many approval requests are approved on the first submission versus rejected or sent back for revision. A high rejection rate may indicate that reps need better guidance on what qualifies.
Revenue Protected: Tracks the total deal value that passed through the approval process. This helps quantify the financial impact of the governance layer.
Who Needs to Be Involved?
An approval process is a cross-functional build, Sales Ops configures it, but it only works if managers commit to SLAs and reps understand what triggers it.
Sales Operations: Sales Ops is the primary builder and owner of the approval process configuration. They will define entry criteria, manage approver routing, handle errors, and train reps.
Sales Leadership / Managers: Managers are typically the approvers in this process. Their buy-in is critical — they need to understand the criteria, commit to SLA response times, and provide feedback when a request is rejected.
Finance / Legal (when applicable): For deals involving non-standard payment terms, legal language changes, or unusually large contract values, Finance or Legal may be added as a secondary approver in the chain.
Sales Reps (AEs, BDRs, etc.): Reps are the submitters. They need to understand what triggers the approval, how to submit the request, what happens while the deal is pending, and what to do if the request is rejected.
What Tools Are Used to Build an Approval Process?
The right tool depends on the CRM in use and the complexity of the approval logic required, Salesforce supports more complex multi-step chains natively, while HubSpot requires workarounds for multiple approvals in a single pipeline.
Salesforce: Salesforce has a native Approval Process engine. It supports automated entry criteria, multi-step approval chains, email notifications, approval history tracking, and actions on approval or rejection. Screen Flows can also be used to enhance the UX when submitting an approval.
HubSpot: HubSpot has a native Deal Approval feature, but it is limited to one approval process per pipeline. For more complex scenarios requiring multiple approvals, a workaround using checkboxes and workflows is needed (see the HubSpot configuration section below).
Lucidchart / Miro:These tools are valuable during the discovery phase for mapping approval flows, visualizing multi-step chains, and aligning the team on routing logic before building.
What Do You Need to Know Before Building?
Locking down the answers to these questions before touching any configuration prevents the most common source of rework, mid-project changes to entry criteria that cascade into significant rebuilds.
Need to know before starting:
- What types of deals or scenarios should trigger an approval? (discount threshold, deal size, contract terms, product type)
- Who are the designated approvers? Is there a backup approver if the primary is unavailable?
- Should the approval be a single-step or multi-step process? (e.g., manager approval → VP approval → Finance)
- What should happen to the opportunity while an approval is pending? Should it be locked from editing?
- What happens when an approval is rejected? Does the deal go back to a previous stage?
- Should reps be required to provide a justification or comment when submitting for approval?
- Are there different approval rules for different teams, regions, or product lines?
- What is the expected SLA for approvers to respond? Should there be automated reminders or escalations?
- Should approvers receive email or in-app notifications? Both?
- Are there existing automation rules or workflows that could conflict with the approval logic?
- Which reports or dashboards should track approval usage and compliance?
- Who is the Sales Rep Champion we can test and validate the experience with?
How Do You Set Up an Approval Process in Salesforce?
Salesforce's native Approval Process engine handles the full configuration: entry criteria, approver routing, email notifications, and record locking, but requires a thorough validation rule audit before building to avoid conflicts.
Always review existing validation rules and workflows before building, conflicts are the most common source of bugs. Ensure the approval criteria are fully locked down before building. Mid-project changes to entry criteria can cascade into significant rework.
Step 1 — Discovery
- Map all existing validation rules on the Opportunity object.
- Get all prerequisite questions answered and documented.
- Align on entry criteria, approver hierarchy, and rejection behavior.
- Document the full approval chain: who approves, in what order, under what conditions.
Step 2 — Configure the Approval Process
2.1 — Create the Approval Process
- Go to Setup → Approval Processes → Opportunity.
- Use the Standard Setup Wizard for guided configuration.
- Set the entry criteria (e.g., Discount > 20% AND Stage = Proposal).
2.2 — Configure the Approval Steps
- Define Step 1: Assign to direct manager.
- Optionally add Step 2 triggered by deal value > $100K.
- Set what happens when each step is approved or rejected.
2.3 — Configure Actions
- On submission: Lock the record (recommended to prevent edits while pending).
- On approval: Advance the stage or update a custom field (e.g., Approval Status = Approved).
- On rejection: Unlock the record, update Approval Status = Rejected, notify the rep.
2.4 — Email Templates Create clear, professional email templates for: Approval Request, Approval Granted, Approval Rejected. Include the deal name, amount, discount, submitter name, and a direct link to the record.
Step 3 — Build Submission Trigger (Optional but Recommended)
- Create a Screen Flow triggered by a button on the Opportunity page.
- The flow should: display deal details, ask rep for a justification comment, then call the Submit for Approval action.
This provides a more guided, rep-friendly experience compared to the default submit button.
Step 4 — Test
- Test with your Sales Rep Champion using a real opportunity that meets the entry criteria.
- Validate all email notifications firing correctly to approvers.
- Test the rejection path and confirm the record unlocks and the rep is notified.
Salesforce Example Scenarios:
Example 1 — Discount Approval
- Entry Criteria: Discount__c > 0.20 AND StageName = 'Proposal/Price Quote'
- Approver: Opportunity Owner's Manager
- On Approval: Update Discount_Approved__c = true, advance stage to Negotiation
- On Rejection: Notify rep, set Approval_Status__c = 'Rejected', unlock record
Example 2 — High-Value Deal Approval
- Entry Criteria: Amount > 100000
- Step 1 Approver: Direct Manager
- Step 2 Approver: VP of Sales (triggered automatically after Step 1 approval)
- On Final Approval: Set Deal_Tier__c = 'Enterprise', notify Finance team via email alert
Example 3 — Non-Standard Terms Approval
- Entry Criteria: Non_Standard_Terms__c = true
- Step 1 Approver: Sales Manager
- Step 2 Approver: Legal (User lookup field populated on the Opportunity)
- On Approval: Update Legal_Cleared__c = true, allow contract to be sent
How Do You Set Up an Approval Process in HubSpot?
HubSpot's native Deal Approval feature is simple and effective for single-pipeline scenarios, but requires a custom workflow-based workaround when multiple approval processes are needed within the same pipeline.
HubSpot Native Approval (Single Pipeline)
HubSpot's native Deal Approval feature allows you to require approval before a deal can move to a specific stage. It is simple, clean, and effective, but is limited to one approval process per pipeline.
- Go to Settings → Objects → Deals → Pipelines.
- Select the pipeline and click Manage Approval.
- Define which stage triggers the approval requirement.
- Set the approvers: you can select specific users or roles (maximum of three approvers).
- Reps will see an 'Approval Status' panel on the right corner when moving the deal to the gated stage.
- Approvers receive a notification and can approve or reject directly in HubSpot.
Limitation: Each pipeline supports only one approval process. If two separate approval workflows are needed within the same pipeline (e.g., one for discount approvals and one for legal sign-off), the native feature cannot handle this out of the box.
HubSpot Workaround: Multiple Approvals in the Same Pipeline
This approach was built for a client who needed two separate approval workflows within the same pipeline, a scenario HubSpot's native feature does not support. Because HubSpot only allows one approval process per pipeline, both workflows had to be engineered using a combination of pipeline stages, custom properties, workflows, and property-based visibility rules.
Case 1 — Closing Stage Approval (Closed Won / Closed Lost)
The Problem: Reps were closing deals without filling in required information fields. Leadership wanted to ensure that no deal could reach Closed Won or Closed Lost without all critical data being present and reviewed.
The Solution: A 'Pending Approval' stage was added immediately after Closed Won and Closed Lost in the pipeline. When a rep moves a deal to either closing stage, a workflow automatically pushes it one step further into Pending Approval, holding it there until a leader makes a decision.
Pipeline Structure:
... → Negotiation → Closed Won → Pending Approval (holding stage)
... → Negotiation → Closed Lost → Pending Approval (holding stage)
Workflow 1 — Auto-send to Pending Approval
- Trigger: Deal stage becomes Closed Won OR Closed Lost
- Action: Move deal stage to Pending Approval
- Critical: This workflow must be configured to NOT re-enroll. If re-enrollment is allowed, the workflow will trigger again after the leader moves the deal back to Closed Won or Closed Lost, creating an infinite loop.
Workflow 2 — Approved (Closed Won path)
- Trigger: Leader sets the approval decision property to 'Approved' AND the original stage was Closed Won
- Action: Move deal to Closed Won
- Action: Notify the rep that the deal was approved and closed
Workflow 3 — Rejected (Closed Lost path)
- Trigger: Leader sets the approval decision property to 'Rejected'
- Action: Move deal to Closed Lost
- Action: Notify the rep with the rejection reason
Workflow 4 — Changes Required
- Trigger: Leader sets the approval decision property to 'Changes Submitted'
- Action: Move the deal back to the stage immediately before Closed Won or Closed Lost
- Action: Notify the rep that changes are needed and include the leader's notes
Case 2 — Expansion Deal Approval (Booking Type = Expansion)
The Problem: The company wanted a separate approval workflow specifically for deals where the Booking Type property was set to 'Expansion'. These deals required sign-off from a designated approver before the rep could move the deal forward. HubSpot's single native approval was already used for Case 1, so a custom workaround was needed.
The Solution: An 'Approved Deal' checkbox property and a custom deal section visible only to approvers was created. When a deal with Booking Type = Expansion reaches the defined trigger stage, a workflow rolls it back one stage and notifies the approver. The approver reviews the deal, selects Approved or Rejected from a dropdown, and the workflows handle the rest automatically.
Step 1 — Align on the Trigger Stage: Work with the internal team to define the exact pipeline stage that should trigger the approval requirement for Expansion deals. This stage becomes the 'gate' — no Expansion deal can pass through it without approval.
Step 2 — Create Custom Properties
- Approved Deal (Checkbox): the final approval flag, set by workflow once approved
- Approval Decision (Dropdown: Approved / Rejected): filled in by the approver
- Approval Change Notes (Multi-line text): approver writes context or required changes
Step 3 — Create the 'Approve This Deal' Section (Approver Only)
- In HubSpot CRM, create a new deal record section called 'Approve This Deal'.
- Configure section visibility so it is only visible to users with the approver role or team.
- Add the Approval Decision dropdown and Approval Change Notes text field to this section.
- Reps will not see this section — it is exclusively for the approver's use.
Step 4 — Workflow A: Trigger the Approval Process
- Trigger: Deal reaches the defined trigger stage AND Booking Type = Expansion AND Approved Deal = unchecked
- Action: Move the deal back one stage (to hold it from progressing)
- Action: Send an internal email to the designated approver with all key deal details and a direct link to the deal record
Step 5 — Workflow B: Handle Approval Granted
- Trigger: Approval Decision = 'Approved'
- Action: Check the Approved Deal checkbox
- Action: Move the deal forward to the trigger stage (or the next stage in the pipeline)
- Action: Send an internal email to the rep confirming the deal was approved
Step 6 — Workflow C: Handle Approval Rejected
- Trigger: Approval Decision = 'Rejected'
- Action: Keep the deal in its current (held) stage
- Action: Send an internal email to the rep informing them of the rejection and including the Approval Change Notes
- Action: Create a follow-up task assigned to the rep, prompting them to make the required changes before resubmitting
What Are the Most Common Approval Process Problems?
Most approval process failures trace back to configuration conflicts, workflow logic errors, or rep resistance, not the approval design itself. These are the five problems that come up most often.
Problem 1 — Salesforce: recordId Variable Not Storing Correctly If the recordId variable is named incorrectly in the Flow, the opportunity's Id won't be stored in the variable and the record will not be updated. You can confirm this in the debug log by checking whether the variable is null.
Solution: Always name the variable recordId — lowercase 'r', capital 'I'. This exact casing is required.
Problem 2 — Salesforce: Validation Rules Conflicting with the Approval Validation rules that fire on save can block the approval actions (e.g., the approval tries to update a field, but a validation rule prevents the save). This is one of the most common causes of unexplained approval failures.
Solution: Thoroughly map all validation rules before building. Review each rule's conditions and determine if any could fire during the approval process. Adjust criteria or add bypass logic where necessary.
Problem 3 — HubSpot: Workflow Firing Multiple Times If a workflow is not configured to fire only once, checking and unchecking a field can trigger it repeatedly, sending duplicate notifications or creating incorrect status updates.
Solution: Set each workflow to 'Enroll once per contact/deal' where appropriate, and add re-enrollment rules carefully. Always test by simulating a rep checking and unchecking the approval field.
Problem 4 — Rep Resistance to the Process If reps feel the approval process is micromanagement or additional bureaucracy, they may try to route deals around it, undermine data quality, or disengage from the CRM.
Solution: Frame the approval process as protection for the rep, it gives them cover when offering a discount and ensures they have documented authorization before committing. Involve a Sales Rep Champion during design and testing to build buy-in early.
Problem 5 — Approver Bottleneck If the designated approver is unavailable (vacation, sick leave, heavy workload), pending deals can stall and create pipeline delays.
Solution: Always configure a delegate or backup approver. In Salesforce, use the Delegated Approver field on the User record. In HubSpot, add a second approver to the notification workflow and communicate the backup process to the team.
When Should You Revisit the Approval Setup?
An approval process is a starting point, the real value comes from reviewing it against actual usage data 3–6 months after launch and making incremental adjustments based on what the numbers show.
Plan to revisit the approval setup in 3–6 months after launch. Check whether reps are using it correctly, whether approvers are responding within SLA, and whether the entry criteria are still aligned with the business. Make incremental adjustments based on data, not guesses.




