Approvals, Guided Selling & Analytics
A deep-dive comparison of approval orchestration, guided product selection, and revenue analytics capabilities across Salesforce CPQ (with Advanced Approvals) and Salesforce Revenue Cloud. Covers data model, automation patterns, configuration effort, and the full migration path.
Use Case, User Journey & Personas
When This Section Applies
Deal Scenarios
- Quote with discount exceeding rep authority (deal desk approval)
- Strategic account pricing requiring VP sign-off
- Non-standard contract terms requiring legal review
- Partner/PRM deal registration requiring internal approval
Analytics & Selling
- Guided product selection for complex multi-cloud bundles
- Quote conversion funnel & win/loss analytics
- Discount analysis by product family or territory
- Revenue forecast accuracy and pipeline health
Internal Personas
External Personas
Partner (PRM)
Partner submits deal registration or quote via Salesforce PRM (Experience Cloud). CPQ Advanced Approvals evaluates partner discount rules and routes to channel manager + deal desk for approval. Partner receives email notification on decision.
Partner (Revenue Cloud)
Partner submits via Experience Cloud. Revenue Cloud Flow-based approvals trigger on ApprovalRequest creation. Approval chain routes through channel manager flow steps. Platform Events broadcast status updates to the partner portal in real time.
Journey A — Approval Flow
Both platforms follow this logical sequence; implementation mechanism differs (see 6.4)
Journey B — Guided Selling Flow
Journey C — Analytics Flow
The personas and logical journeys are identical across both platforms; the difference is in the implementation mechanism. CPQ relies on its proprietary approval engine and guided selling objects, while Revenue Cloud leverages platform-native Flow orchestration, Decision Tables, and optionally OmniStudio — resulting in more flexibility but requiring more declarative design effort upfront.
Licensing Requirements
Salesforce CPQ Licensing
- CPQ Base — includes basic approval rules (limited; no advanced chain management), Product Rules and guided selling (SBQQ__Process__c included)
- CPQ+ — required for Advanced Approvals: parallel/sequential chains, delegated approvals, smart approvals, auto-approve conditions, approval history dashboard
- CRM Analytics / Tableau CRM — separate add-on required for revenue analytics; no pre-built CPQ-specific app (must build custom datasets and dashboards)
- Tableau — alternative BI layer; requires ETL/connector to Salesforce objects
Revenue Cloud Licensing
- Revenue Cloud Base — includes Flow-based approval orchestration (no separate SKU), Decision Tables for guided selling and pricing, native approval request tracking
- Revenue Intelligence — separate add-on; includes pre-built Revenue Cloud dashboards, AI-powered forecasting, deal health scoring
- Einstein Recommendations — requires Einstein Platform license; powers next-best-action guided recommendations
- OmniStudio — included in some Revenue Cloud bundles; enables OmniScript-based guided selling wizards
Feature Availability by License SKU
| Feature | CPQ Base | CPQ+ | RC Base | Revenue Intelligence | Einstein / OmniStudio |
|---|---|---|---|---|---|
| Basic approval rules | ✓ Limited | ✓ Full | ✓ Flow-based | ~ Included | ~ Included |
| Advanced parallel/sequential approvals | ✗ | ✓ | ✓ Via Flow | ~ Included | ~ Included |
| Delegated approvals | ✗ | ✓ | ✓ Via Flow | ~ Included | ~ Included |
| Guided selling (basic) | ✓ | ✓ | ✓ Decision Tables | ~ Included | ~ Included |
| OmniScript guided selling wizard | ✗ | ✗ | ~ Bundle-dependent | ~ Included | ✓ |
| Revenue analytics dashboards | ✗ (CRM Analytics add-on) | ✗ (CRM Analytics add-on) | ✗ (add-on) | ✓ Pre-built | ~ Included |
| Einstein AI recommendations | ✗ | ✗ | ✗ | ~ Partial | ✓ |
| Approval email with approve/reject links | ✗ | ✓ | ✓ Via Flow/Email Action | ~ Included | ~ Included |
CPQ's advanced approval capability requires upgrading from base CPQ to CPQ+, while Revenue Cloud includes Flow-based approval orchestration in the base license. However, meaningful revenue analytics requires an add-on in both products (CRM Analytics for CPQ; Revenue Intelligence for RC). Revenue Cloud's Decision Table-based guided selling is included in base, whereas CPQ's guided selling objects are part of the base package but have limited flexibility compared to OmniStudio (which may require an additional license).
Data Model
CPQ-Specific CPQ Advanced Approval Objects
SBQQ__ApprovalRule__c
CPQ-Specific
SBQQ__Quote__cLookup to Quote — scopes rule to a quote recordSBQQ__ApprovalStep__rChild steps evaluated in order or in parallelSBQQ__Operator__cAND/OR logic for condition evaluationSBQQ__RejectBehavior__cControls quote lock behavior on rejectionSBQQ__Active__cBoolean — rule is live or dormant
SBQQ__ApprovalCondition__c
CPQ-Specific
SBQQ__Rule__cParent lookup to SBQQ__ApprovalRule__cSBQQ__TestedVariable__cLookup to SBQQ__ApprovalVariable__c — the formula to evaluateSBQQ__Operator__cComparison operator: =, !=, >, <, >=, <=, containsSBQQ__FilterValue__cThreshold value (e.g., "20" for 20% discount)
SBQQ__ApprovalStep__c
CPQ-Specific
SBQQ__Rule__cParent lookup to SBQQ__ApprovalRule__cSBQQ__Number__cSequence number — same number = parallel, ascending = sequentialSBQQ__ApproverGroup__cLookup to group of approvers (any-one or all required)SBQQ__Approver__cDirect user lookup for single approverSBQQ__ApproverField__cDynamic approver from a formula field on the quote (manager hierarchy)SBQQ__Email__cEmail template to send on step activation
SBQQ__ApprovalVariable__c
CPQ-Specific
SBQQ__ApproverGroup__c
CPQ-Specific
CPQ-Specific CPQ Guided Selling Objects
SBQQ__Process__cCPQ-SpecificSBQQ__ProcessInput__cCPQ-SpecificSBQQ__ProcessInputCondition__cCPQ-SpecificSBQQ__LookupQuery__cCPQ-SpecificRC-Standard / Platform-Standard Revenue Cloud Approval & Guided Selling Objects
ApprovalRequestPlatform-StandardRelatedRecordIdPolymorphic — points to the Quote, Order, or Contract under reviewStatusPending, Approved, Rejected, RecalledApproverIdUser assigned to approve this requestCommentsApprover's free-text reason / decision notes
ProcessInstancePlatform-StandardDecisionTableRC-StandardNameUnique API name referenced in Flow / Pricing ProcedureInputColumnsColumn metadata defining input field mappingsOutputColumnsReturn value columns (discount %, product code, approval flag)IsActiveBoolean — table is live or draft
DecisionMatrixRowRC-StandardDecisionTableDatasetRC-StandardRecommendationStrategyRC-Standard / EinsteinCPQ's approval data model is opinionated and self-contained — all approval logic lives in SBQQ__ApprovalRule__c through SBQQ__ApprovalStep__c with direct quote integration. Revenue Cloud uses the platform-standard ApprovalRequest object orchestrated by Flow, giving architects more flexibility but requiring explicit orchestration design. For guided selling, CPQ's SBQQ__Process__c hierarchy is tightly scoped to the CPQ configurator, whereas Revenue Cloud's DecisionTable objects are general-purpose and can drive approvals, pricing, and recommendations from a single configuration construct.
Automations
CPQ Advanced Approvals — Automation Behaviors
- Automatic rule evaluation on quote save — approval rules are checked every time the quote is saved; no manual trigger required
- Parallel and sequential chain management — steps with the same
SBQQ__Number__cfire in parallel; ascending step numbers enforce sequential routing - Auto-approve conditions — rules can be configured so quotes below a discount threshold automatically approve without routing (removes friction for low-risk deals)
- Smart approvals — if the same approver appears in multiple sequential steps, CPQ skips redundant approvals (avoids double-approval for the same user)
- Delegated approvals — approvers can designate a delegate user; approvals auto-route to the delegate during absence windows
- Email notifications — configurable templates sent per step with deep-link "Approve" and "Reject" action URLs; approvers can act from email without logging in
- Rejected quote lock — on rejection, quote is locked for editing; reason is captured in
SBQQ__ApprovalStatus__cand rejection reason field - Approval recall — submitter can recall a pending approval chain if the quote needs changes before a decision is reached
Revenue Cloud — Automation Behaviors
- Flow-based approval orchestration — Record-Triggered or Scheduled Flows invoke approval logic; fully declarative with unlimited branching capability
- ApprovalRequest object tracking — each approval step creates an
ApprovalRequestrecord; full audit trail queryable via SOQL/reports - Decision Table-driven thresholds — approval trigger conditions are evaluated by querying a
DecisionTableat runtime; thresholds updated in the table without Flow changes - Einstein Next Best Action —
RecommendationStrategysurfaces guided product recommendations in the quote UI; surfaced via Flow Screen components or LWC - OmniStudio guided selling — if licensed, OmniScript provides a step-by-step questionnaire wizard that pre-populates quote lines via DataRaptor transforms
- Platform Events for broadcast —
ApprovalStatusChange__eplatform events notify downstream systems (portal, Slack, external) when approval status changes - Recall and reassignment via Flow — submitters can trigger a recall Flow that cancels open
ApprovalRequestrecords and resets quote status - Mobile approval actions — Salesforce mobile app supports Flow Screen for approval with native push notifications
Automation Capability Matrix
| Automation Capability | CPQ (CPQ+) | Revenue Cloud | Notes |
|---|---|---|---|
| Auto-evaluate on record save | ✓ Native, automatic | ✓ Record-Triggered Flow | RC requires explicit Flow; CPQ is implicit |
| Parallel approval steps | ✓ Same step number | ✓ Parallel paths in Flow | Both support parallel; RC via Flow Fault Paths |
| Sequential approval chain | ✓ Ascending step # | ✓ Chained Flow elements | RC is more flexible but more complex to build |
| Auto-approve below threshold | ✓ Built-in | ✓ Decision Table + Flow condition | RC: condition evaluates DT output before creating ApprovalRequest |
| Smart approvals (skip duplicates) | ✓ Automatic | ~ Custom Flow logic | RC requires custom check for duplicate approver skip |
| Delegated approvals | ✓ Built-in delegation UI | ✓ Flow re-assignment | CPQ has native UI; RC requires Flow + custom component |
| Email approve/reject links | ✓ Native template | ✓ Flow email action + custom handler | RC requires custom URL-based Flow invocable action |
| Platform Event broadcast | ✗ Not native | ✓ Native in Flow | CPQ requires custom Apex trigger to publish events |
| Einstein recommendations in approval | ✗ | ✓ Next Best Action | RC can suggest alternative pricing or product before submitting for approval |
CPQ Advanced Approvals provides a richer out-of-the-box automation experience — auto-evaluation, smart approvals, and native email action URLs come pre-wired. Revenue Cloud's Flow-based approach is architecturally superior in flexibility and transparency (every step is inspectable as a Flow element), but requires deliberate design work to achieve feature parity on capabilities like smart approvals and email-based action links. For organizations prioritizing speed-to-value on approvals, CPQ+ still leads. For organizations prioritizing maintainability and extensibility, RC's Flow approach wins long-term.
Configuration — Architect Setup Effort
Effort ratings reflect typical architect-days for a greenfield implementation with moderate complexity. Scale linearly for enterprise orgs with multi-level approval hierarchies or large product catalogs.
| Configuration Task | CPQ Effort | RC Effort | Notes |
|---|---|---|---|
| Basic approval rules setup (single-level) | Medium | Medium | CPQ: define rule, condition, step. RC: create Flow with ApprovalRequest creation. Both ~2–3 days. |
| Advanced parallel / sequential approval chain | High | Medium-High | CPQ: step numbering + group management; complex rules for multi-product conditions. RC: Flow parallel branches; more visual but requires careful fault path handling. |
| Delegated approvals configuration | Medium | Medium | CPQ: native delegation setup per user. RC: Flow re-assignment logic + user delegation custom object or external schedule. |
| Guided selling process setup | Medium | Medium | CPQ: configure SBQQ__Process__c + inputs + conditions (~3 days). RC: Decision Table rows + input/output column mapping (~3–4 days). RC DT reusable across pricing and guided selling. |
| Analytics dashboard setup | Very High | High | CPQ: custom CRM Analytics recipes ingesting SBQQ__ objects; no pre-built template; 2–4 weeks. RC: Revenue Intelligence pre-built app; customization adds 1–2 weeks. |
| Einstein recommendations configuration | N/A | High | RC: define RecommendationStrategy, train or configure AI filters, surface via LWC/Flow Screen. Einstein platform expertise required. |
| Approval email template setup | Low | Low | Both platforms use standard email template builders. CPQ templates reference SBQQ__ merge fields; RC uses standard Flow email variables. |
| Approval UI customization (custom components) | Medium | Medium | CPQ: override standard approval page with LWC. RC: embed approval status component in Quote Lightning record page. Both require LWC and LDS knowledge. |
| Decision Table dataset refresh automation | N/A | Medium | RC-specific: scheduled Flow or Data Cloud pipeline to refresh DecisionTableDataset rows from source objects or external data. |
| OmniScript guided selling wizard | N/A | High | RC (if OmniStudio licensed): design OmniScript steps, DataRaptor transforms, and Integration Procedure for quote line pre-population. Specialized OmniStudio skill required. |
Most configuration tasks are comparable in effort between CPQ and Revenue Cloud. The significant outlier is analytics: CPQ requires heavy custom dataset engineering in CRM Analytics (Very High effort), while Revenue Cloud's Revenue Intelligence app provides a usable baseline out of the box (High, but faster). RC also opens capabilities not available in CPQ at all (Einstein recommendations, OmniScript wizards, Decision Table dataset refresh) — but these carry their own complexity and licensing requirements.
Customization — Common Additions
CPQ Customizations
APPROVAL CUSTOMIZATIONS
- Custom Apex approval condition logic — when SBQQ__ApprovalCondition__c filter expressions cannot capture complex business logic (e.g., multi-currency margin calculations, external API calls to check credit limits), Apex-invoked approval variables replace declarative conditions
- Custom approval UI via LWC — override the standard CPQ approval action buttons with a custom LWC that shows approval history, pending steps, and a reason input in a modal before submission
- Custom notification delivery — extend default email notifications with Slack messages or Teams webhooks via Apex callout triggered from the approval step activation workflow
- Integration with external approval systems — use Apex or MuleSoft to push approval requests to ServiceNow, Jira, or SAP GRC; bi-directional sync updates SBQQ__ApprovalStep__c status from the external system response
GUIDED SELLING CUSTOMIZATIONS
- Custom question rendering — replace default SBQQ__ProcessInput__c text fields with a custom LWC component that renders rich input types (range sliders, multi-select picklists, product image carousels) not natively supported
- Real-time eligibility checks — augment SBQQ__LookupQuery__c with Apex that calls an external eligibility API (e.g., telco network inventory, insurance underwriting engine) before surfacing available products
ANALYTICS CUSTOMIZATIONS
- Custom CRM Analytics datasets — build dataflow/recipe pipelines joining
SBQQ__Quote__c,SBQQ__QuoteLine__c,SBQQ__Subscription__c, and custom approval objects into a star-schema analytical dataset - Tableau integration — replicate CPQ objects to Snowflake or Redshift via Salesforce Connector; build Tableau workbooks for executive revenue reporting with custom discount waterfall charts
Revenue Cloud Customizations
APPROVAL CUSTOMIZATIONS
- Custom approval notification flows — extend Flow-based approvals to send structured approval packets (quote PDF, pricing breakdown, margin analysis) as email attachments or Slack Block Kit messages before the approver takes action
- Complex Decision Table logic with custom formulas — augment Decision Table output columns with formula fields on the Quote that pre-compute values consumed by the DT as inputs, enabling multi-variable threshold calculations without Apex
- Integration with external approval systems — use Platform Events to publish
ApprovalRequestcreation events to an external ESB; MuleSoft integration pattern routes requests to ServiceNow and returns decisions via REST callback to a Flow-invocable Apex method
GUIDED SELLING CUSTOMIZATIONS
- Custom recommendation engine integration — replace or augment
RecommendationStrategywith a callout to an external ML model (AWS SageMaker, Vertex AI) that returns ranked product bundles based on customer usage telemetry - AI-augmented guided selling via Einstein — configure Next Best Action to surface not just product recommendations but contextual talking points and objection-handling scripts based on Opportunity stage and competitor signals
ANALYTICS CUSTOMIZATIONS
- Revenue Intelligence custom KPI dashboards — clone and extend pre-built Revenue Intelligence dashboards to add custom KPIs: approval cycle time by product line, discount variance vs. approved floor price, guided selling abandonment rate
- Data Cloud integration — unify Revenue Cloud quote and asset data with external data sources (ERP shipments, support cases, usage data) in Data Cloud; build Insights that trigger guided selling recommendations or approval escalations based on unified customer health score
CPQ customizations typically concentrate in Apex (approval conditions, external API calls, notification extensions) because the declarative engine has fixed extension points. Revenue Cloud customizations lean more on Flow composition, Platform Events, and Data Cloud — aligning with a lower-code, event-driven integration philosophy. Both platforms require LWC skill for UI customization. Revenue Cloud's extensibility through Platform Events and Data Cloud creates a more future-proof integration pattern, particularly for organizations building toward a unified revenue operations platform.
CPQ → Revenue Cloud: Overall Migration Guide
■ When to Stay on CPQ
blng__ objects) is already heavily configured — if the org has an established invoice engine, tax integration, and revenue recognition schedule on the CPQ Billing package, migrating to RC Billing requires a full re-implementation of billing rules, rating engines, and payment gateway integrations
■ When to Migrate to Revenue Cloud
■ Migration Complexity Matrix
| CPQ Feature / Object | Revenue Cloud Equivalent | Migration Complexity | Key Migration Risks |
|---|---|---|---|
| Product / Bundle setup SBQQ__Product__c + ProductOption |
Product Categories + Classification Attributes + Product Selling Models | Medium | Bundle hierarchy maps reasonably to RC Categories; attribute-based products require re-modeling; automated migration tooling available but requires validation |
| Price Rules + Quote Calculator Plugin SBQQ__PriceRule__c + QCP JS |
Pricing Procedures + Pricing Steps (Decision Table or Apex) | High | QCP JavaScript cannot be directly ported; each QCP function must be analyzed and reimplemented as a Pricing Procedure step; high regression testing surface area |
| Quote object SBQQ__Quote__c |
Quote (Standard Object, enhanced by RC) | Medium | Custom fields on SBQQ__Quote__c must be recreated on the standard Quote object; page layout and Lightning page rebuild required; historical data migration via bulk API |
| Advanced Approvals SBQQ__ApprovalRule__c hierarchy |
Flow-based Approval Orchestration + ApprovalRequest | High | No automated migration path; each approval rule must be rebuilt as a Flow; parallel/sequential logic, smart approvals, and email-action URLs all require custom design; extensive UAT required with business approvers |
| CPQ Billing package blng__Invoice__c, blng__BillingRule__c |
RC Billing (BillingPolicy, BillingSchedule, Invoice) | Very High | Complete package replacement; invoice history migration; ERP integration re-pointing; tax engine (Avalara/Vertex) reconfiguration; payment gateway adapter rebuild; revenue recognition schedule re-mapping. Highest risk area in any CPQ to RC migration. |
| Subscriptions SBQQ__Subscription__c |
Asset + Asset Line Items | High | Subscription records must be migrated to Asset Line Items with correct start/end dates and product associations; amend/renew history is non-trivial to reconstruct; active subscriptions require cutover coordination with billing cycle |
| Guided Selling Process SBQQ__Process__c + ProcessInput__c |
DecisionTable + DecisionMatrixRow (or OmniScript) | Medium | Guided selling logic is conceptually transferable; CPQ process inputs map to Decision Table input columns; conditional display logic requires Flow or OmniScript translation; low regression risk compared to pricing |
| Contract / Amendment SBQQ__Contract__c + amendment process |
Asset Actions (Amend, Renew, Cancel, Split) | High | CPQ amendment creates a new quote from the contracted subscriptions; RC Asset Actions modify assets directly. The data model and business process are fundamentally different; requires process re-design, not just data migration |
■ Architectural Decision Points
💾 Data Migration Strategy
- Evaluate Bulk API v2 for SBQQ__Quote__c and line item volume; consider SOAP API for complex parent-child hierarchies requiring atomicity
- ETL tools (Informatica, MuleSoft, Talend) recommended for complex transformations (SBQQ__Subscription__c → AssetLineItem); native Data Loader insufficient for transformation logic
- Establish a data validation framework: row counts, field-level checksums, and business rule assertions (e.g., all migrated assets have valid ProductSellingModel references)
- Plan for a data freeze window during final cutover; coordinate with Finance and Legal on contract effective dates
🏠 Org Split vs. In-Place Migration
- In-place migration (same org): installs Revenue Cloud managed packages alongside CPQ; allows gradual feature flag cutover; risk of package conflicts between SBQQ__ and RC namespaces
- Org split (new sandbox → new production): clean slate; no namespace conflicts; higher data migration complexity; requires full integration re-build; preferred for orgs with significant technical debt
- Hybrid: migrate new product lines to RC in the existing org while keeping legacy subscriptions on CPQ until natural renewal; requires a dual-path configuration and clear ownership boundaries
⏳ Parallel Run Period
- Plan a minimum 90-day parallel run for billing-critical workloads; invoices generated by both systems must be reconciled nightly
- Approval workflows should be validated with real deal scenarios before disabling CPQ approval rules; run shadow approvals in RC for 30 days before cutover
- Analytics: maintain CPQ CRM Analytics datasets in read-only mode for 12 months post-migration to support historical trend analysis in Revenue Intelligence
- Define a clear go/no-go checklist: zero invoice discrepancy, approval parity confirmation, integration smoke tests passing
🔗 Integration Re-pointing
- ERP (SAP, NetSuite): order creation APIs must switch from SBQQ__Order__c triggers to RC Order object; validate field mapping for line item charge types
- Payment gateway (Stripe, Adyen): CPQ Billing payment runs reference
blng__Invoice__c; RC Billing uses its own Invoice API; requires adapter layer update - E-signature (DocuSign, Conga): quote document generation must be re-mapped from SBQQ__Quote__c merge fields to standard Quote object fields; template redesign required
- Tax engine (Avalara/Vertex): tax calculation callouts are invoked at different points in the RC pricing engine; validate tax category mapping for all product types
No two CPQ migrations are identical. The complexity matrix above represents typical patterns, but actual effort depends on QCP complexity, custom approval Apex depth, integration surface area, and the volume of active subscriptions requiring asset migration. A migration readiness assessment — cataloging all SBQQ__ custom metadata, QCP functions, and integration touchpoints — is a prerequisite before committing to a timeline. Budget 20–30% contingency on all High and Very High items.