Product-Specific Approvals
47 min
this guide shows you how to configure approval workflows that vary based on product types, product families, skus, or specific product configurations what are product specific approvals? product specific approvals route records to different approvers based on what's being sold product family or category specific skus requiring specialist review professional services vs product sales new product launches requiring additional oversight bundled vs standalone products custom configurations or non standard offerings quote with multiple products │ ┌─────────┼─────────┐ ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌────────┐ │software│ │services│ │hardware│ │products│ │ │ │ │ └───┬────┘ └───┬────┘ └───┬────┘ │ │ │ ▼ ▼ ▼ software services operations lead director manager business scenarios covered scenario description product family routing different approvers for software vs services vs hardware professional services approval services deals require delivery capacity review new product oversight recently launched products need product management approval custom configuration review non standard configurations require technical approval high value sku approval specific premium products have different approval chains scenario 1 product family based routing requirement requirement route quote approval to the appropriate product leader based on the primary product family in the quote prerequisites products have a family or product family c field quote has a formula field identifying the primary product family option a using quote line item aggregation 1\ create variable setting value variable name primaryproductfamily object quotelineitem field product2 family function mode (most common value) 2\ create separate paths by family path path software products entry criteria $primaryproductfamily = 'software' approver role software sales lead path services path services entry criteria $primaryproductfamily = 'services' approver role services director path hardware path hardware entry criteria $primaryproductfamily = 'hardware' approver role operations manager option b using formula field on quote 1\ create primary product family formula field primary product family c (formula) this requires creating a roll up or using flow to calculate the dominant product family 2\ create clause conditions path entry criteria software primary product family c = 'software' services primary product family c = 'services' hardware primary product family c = 'hardware' scenario 2 professional services capacity review requirement any quote containing professional services requires delivery team approval to confirm resource availability configuration 1\ create services detection variable setting value variable name hasserviceslineitems object quotelineitem filter product2 family = 'professional services' function count 2\ create services approval path setting value approval path name services delivery review depends on (none runs in parallel) entry criteria type aggregation variable $hasserviceslineitems operator greater than value 0 3\ create services approval step setting value approval step name delivery capacity approval approver type group group services delivery managers flow quote contains software license + implementation services │ ┌────────────┴────────────┐ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ software path │ │ services path │ │ (license review)│ │ (delivery review)│ └────────┬────────┘ └────────┬────────┘ │ │ ▼ ▼ software lead services delivery mgr │ │ └──────────┬──────────────┘ ▼ both approved = deal approved scenario 3 new product launch oversight requirement products launched within the last 90 days require product management approval on all deals configuration 1\ create new product detection field on product is new product c (formula, checkbox) product launch date c >= today() 90 2\ create variable for new products setting value variable name hasnewproducts object quotelineitem filter product2 is new product c = true function count 3\ create new product path setting value approval path name new product review entry criteria variable $hasnewproducts operator greater than value 0 4\ create product management step setting value approval step name product management approval approver type user lookup lookup path use formula to find pm based on product product manager routing create a formula that identifies the product manager for the newest product most recent product pm c = \[query to find pm of newest product on quote] or use a group product management team scenario 4 custom configuration review requirement non standard product configurations require technical review before approval identifying custom configurations common indicators of custom configurations indicator field/condition custom pricing listprice != unitprice non standard terms custom terms c = true modified sku product2 is custom c = true special discount product specific discount > threshold configuration 1\ create custom config detection variable hascustomconfig setting value object quotelineitem filter product2 is custom c = true or custom pricing c = true function count 2\ create technical review path setting value approval path name technical configuration review entry criteria $hascustomconfig > 0 3\ create technical approval step setting value approval step name solutions architect review approver type group group solutions architects scenario 5 high value sku approval requirement premium or enterprise tier products have different approval requirements using product tiers 1\ define product tiers on product product tier c (picklist) standard professional enterprise premium 2\ create tier based variables variable filter function hasenterpriseproducts product2 product tier c = 'enterprise' count haspremiumproducts product2 product tier c = 'premium' count totalenterprisevalue product2 product tier c = 'enterprise' sum(totalprice) 3\ create tiered approval paths path enterprise products entry criteria $hasenterpriseproducts > 0 approver enterprise sales director path premium products entry criteria $haspremiumproducts > 0 approver vp sales + product vp specific sku approval for specific premium skus requiring special handling 1\ create sku list variable setting value variable name hascontrolledskus object quotelineitem filter product2 productcode in ('sku ent 001', 'sku prem 002', 'sku custom 003') function count 2\ create special sku path entry criteria $hascontrolledskus > 0 scenario 6 bundle vs component approvals requirement bundled products have different approval requirements than standalone components identifying bundles option a bundle flag on product products marked as bundles product2 is bundle c = true option b parent child relationships quote line items with children hasparentitem c = false and childcount c > 0 configuration bundle approval path setting value approval path name bundle pricing review entry criteria $hasbundlelineitems > 0 step bundle pricing approval approver pricing team standalone path setting value approval path name standard product review entry criteria $hasbundlelineitems = 0 step standard sales approval approver sales manager scenario 7 product specific discount thresholds requirement different products have different discount approval thresholds software >20% requires approval services >10% requires approval hardware >5% requires approval using product family variables 1\ create product family discount variables variable filter function maxsoftwarediscount product2 family = 'software' max(discount) maxservicesdiscount product2 family = 'services' max(discount) maxhardwarediscount product2 family = 'hardware' max(discount) 2\ create product specific steps step software discount approval entry criteria $maxsoftwarediscount > 20 approver software sales director step services discount approval entry criteria $maxservicesdiscount > 10 approver services director step hardware discount approval entry criteria $maxhardwarediscount > 5 approver operations vp using approval matrix create a matrix with product family as one dimension and discount range as the other 0 5% 5 10% 10 20% >20% software auto auto manager director services auto manager director vp hardware manager director vp coo see approval matrices docid\ pmcr5xpdwndph0zwj6pti for detailed matrix configuration best practices do's use variables for line item evaluation more flexible than quote level fields create parallel paths for independent reviews services and software can approve simultaneously use product family, not individual skus easier to maintain document product specific thresholds keep reference for the business don'ts don't create a path per product use groupings (family, tier, category) don't forget default handling what happens with uncategorized products? don't evaluate on entry criteria at process level can slow page loads troubleshooting issue cause solution path not triggering for product product family value mismatch check exact picklist value all products triggering same path variable filter too broad refine filter criteria services path not running no services line items detected verify product2 family value slow quote page load complex aggregations on entry move to step level criteria related guides discount approval workflows docid\ uu08kacohc10hl9a1zr4n discount based triggers approval matrices docid\ pmcr5xpdwndph0zwj6pti product × discount matrices deal desk routing docid\ uwih3wye4e4ez7cbjvcy4 complex deal handling need help? check our troubleshooting guide docid\ sgpxdyp dpg9a9uanwlis or faq docid\ relcvm0ggisy7rghm2jml