You are here:
Smart Approvals
Smart approvals let you streamline the approval resubmission process for your sales reps. When you enable smart approvals on an approval condition, Advanced Approvals compares the condition’s tested field value during resubmission with the tested value of the previous submission. If the values are the same, the approvers for that rule aren’t asked to approve it again during resubmission. (Salesforce CPQ Managed Package)
Required Editions
| Available in: Salesforce CPQ Summer ’16 and later with Advanced Approvals 3.1 and later |
Enable smart approvals by selecting Enable Smart Approvals on an approval condition. While smart approvals are active, a rejected approval stores the original value of an approval condition’s tested field in the Approval Snapshot object. Approval snapshots appear as a related list on the approval record.
When the sales rep resubmits the quote, Advanced Approvals compares the snapshot value with
the value of the new tested field, using the condition’s logical operator. If the comparison
still evaluates to true, the approval condition returns
true.
- If you enable smart approvals on a condition that uses the equals operator, snapshot
comparisons always return
false. We recommend avoiding smart approvals on conditions with the equals operator. - Approval snapshots don’t update for auto-approved approvals.
Let’s look at a basic example. Your sales rep submits a quote under the following approval rule.
- Approval Rule
- Approver: Finance Team
- Condition 1
- Net Total > $60,000
- Smart Approvals:
true
A sales rep submits a quote with a net total of $70,000 for approval. Because the tested field meets the approval condition, Advanced Approvals sends the quote to the finance team, who approves it. The sales rep revises the quote so it has a net total of $75,000, then resubmits it for approval.
Because smart approvals are active on your condition, Advanced Approvals creates an approval
snapshot on your approval record. The approval snapshot has an Approved Value (Numeric) field
with a value of $70,000, representing the original tested value. Advanced Approvals then
compares the new value to the snapshot using the condition’s operator of >=. Because $75,000
is greater than $70,000, the condition returns true, and
Advanced Approvals sends the quote to the finance team for reevaluation. If the net total
didn’t change or was less than $70,000, the condition returns false, and the approval doesn’t require resubmission.
Managing Mixed Conditions
Approval rules can contain a mix of smart and standard approval conditions. When a sales
rep resubmits a record for approval, a standard condition evaluating to true isn't always enough to qualify the record for
reevaluation. Often, smart approvals and conditional logic cause the overall conditional
logic to evaluate as false. Let’s look at an
example.
- Approval Rule
- Approver: Sales Manager
- Condition 1
- Opportunity Type: New
- Smart Approvals: Disabled
- Condition 2
- Service Discount > 15%
- Smart Approvals: Enabled
- Condition 3
- Subscription Discount > 15%
- Smart Approvals: Enabled
- Rule Condition: 1 AND (2 OR 3)
Your sales rep submits a quote that meets all three conditions, which gives a rule
condition of true AND (true OR true) = true. Because the condition is true,
Advanced Approvals submits the quote to the Sales Manager, who approves it. The sales rep
recalls the approval, changes nonconditional tested fields, then resubmits it.
Condition 1 returns true. Because conditions 2 and 3
are smart approvals, Advanced Approvals checks whether the tested value’s original state and
its new state are different. They aren't different, so Conditions 2 and 3 return false. This new logic returns the condition true AND (false OR
false) = false.
Because the final logic is false, Advanced Approvals
doesn’t resubmit the approval request to the Sales Manager, even though the first condition
returns true.
Advanced Approvals Rule Evaluation and Smart Approvals: Comma-Delimited Comparison
A keyword-like comparison of a string field occurs in Rule Evaluation and Smart Approvals. All string-based fields use it (text, long text, rich text, and picklist, for example). We use the comma character to delimit the individual keywords (or email addresses, for example) and then compare the comma-delimited chunks individually.
Consider these string values.
- “ketchup, mustard, pickles”
- “mustard, pickles, ketchup”
When comparing them, Advanced Approvals ignores the order and white space of the individual chunks and considers the two values equal.
These two values aren’t considered equal.
- “ketchup, mustard, pickles”
- “mustard, onions, ketchup”
For Smart Approvals, this comparison is made when we look at the previous snapshot value to determine whether the value changed and whether the rule must be evaluated again.
- Reevaluating Smart Approvals Individually
If you want your approval rule to send approvals for evaluation when any one of its conditions changes, regardless of the overall conditional logic, select the approval rule’s Reevaluate Smart Approvals Individually field. While the field is active, Advanced Approvals compares a smart condition’s previous tested value with the new value during resubmission. If the comparison evaluates tofalse, Advanced Approvals ignores conditional logic and sends the record to the approver. (Salesforce CPQ Managed Package) - Smart Approvals with the Equals or Contains Operators
When a smart approval compares the snapshot and present value of a condition that uses the Equals or Contains operators, unchanged values returnfalsefor that condition in the overall rule condition logic. In this case, an unchanged value for an Equals or Contains means that no value difference between the snapshot and current value exists, so reevaluating that specific condition isn't required. (Salesforce CPQ Managed Package) - Advanced Use Cases for Smart Approvals
Approval rules that use complex rule conditions with a mixture of smart and standard approval conditions can cause unexpected results when a sales rep resubmits a record. When you use smart approvals, take note of cases where unchanged conditions require reapproval or where changed conditions don’t require reapproval. If your rule requires a complex logical statement for its rule condition, we recommend spending time reviewing how different complex logical statements can returntrueorfalse. (Salesforce CPQ Managed Package)

