0% found this document useful (0 votes)
98 views20 pages

Salesforce CPQ Deployments

Uploaded by

gopesh.kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views20 pages

Salesforce CPQ Deployments

Uploaded by

gopesh.kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Salesforce CPQ

deployments
How to cut the complexity from
CPQ release management

1
Contents

Who is this whitepaper for?..............................................................................................3

CPQ: a problem worth solving...........................................................................................4

Salesforce CPQ challenges...............................................................................................5


CPQ is technically complex...................................................................................................................... 5
Many teams lack purpose-built tooling................................................................................................... 8

CPQ deployments reimagined...........................................................................................9


External IDs handled............................................................................................................................... 10
Deploying CPQ configuration like metadata......................................................................................... 10
Full visibility into the impact of CPQ changes.......................................................................................11
Auditing CPQ changes alongside metadata......................................................................................... 12

Why solving CPQ matters................................................................................................ 13


Developer impact: frustration and inefficiency.................................................................................... 13
Team impact: silos and poor collaboration........................................................................................... 13
Business impact: unpredictable time and cost of delivery.................................................................. 14

The benefits of streamlined CPQ deployments.............................................................. 15


A better experience for developers....................................................................................................... 15
Effective collaboration for teams........................................................................................................... 16
Predictability and efficiency for the business...................................................................................... 17

Next steps........................................................................................................................ 18

About Gearset.................................................................................................................. 19

2
Who is this whitepaper for?
This whitepaper is for anyone wanting to untangle and eliminate
the complexity of Salesforce CPQ deployments.
Perhaps you’re in the early stages of CPQ adoption and want to ensure you achieve
a successful implementation. Or perhaps you’ve had Salesforce CPQ in your organization for
some time, but your existing release process is painful for both your team and the bottom line.

Getting to grips with this subject is important for anyone with an interest in rolling
out or streamlining releases for Salesforce CPQ.

Technology leaders Executives, managers, and stakeholders who are responsible


for making decisions about the implementation of CPQ need
to understand the practical needs of their internal technical
team or consultants. Learn how to ensure a successful setup
and integration of CPQ with existing business processes,
maximizing its impact on efficiency and profit.

Devs, admins Technical professionals who are responsible for implementing,


and CPQ specialists configuring, and maintaining Salesforce CPQ within an
organization experience the pain of deploying CPQ configuration
first-hand. Dig down to the fundamental CPQ challenges,
and learn how to solve them.

CPQ consultants Professionals who provide Salesforce CPQ implementation


and implementation services, such as system integrators, consultants, and resellers
partners are looked to for expertise and efficient delivery, so master the
subject and equip yourselves with the best solutions for CPQ.

Industry analysts Advisors and guides across the Salesforce ecosystem provide
and influencers trusted opinions and advocacy on a broad range of topics
for CRM implementation and best practice. You’ll gain valuable
insights into the challenges of deploying a Salesforce CPQ
implementation and see how leading solutions manage
it more effectively.

3
CPQ: a problem worth solving

What is Salesforce CPQ?

Salesforce CPQ (Configure, Price, Quote) simplifies the process


of creating accurate quotes for products and services. It reduces
errors and ensures compliance with pricing rules and guidelines.

As part of Salesforce Revenue Cloud, CPQ helps businesses to streamline their sales processes,
maximize revenue, and create better buying experiences for customers. Salesforce also offers
Billing and Advanced Approvals — packages that further enhance the value of CPQ for different
industries or expand its capabilities.

Integrating CPQ tools into the sales process can lead to significant improvements in performance
indicators such as deal size, quote accuracy, and overall sales efficiency. CPQ also minimizes
the time spent on administrative tasks, which frees up sales teams to concentrate
on higher-value activities.

The state of CPQ deployments


Given these benefits, it’s no surprise that there’s a growing take-up of Salesforce CPQ.
The State of Salesforce DevOps 2023 report found that 42% of businesses use Revenue
Cloud, and 29% more plan to adopt it soon.

Naturally, each organization will want to tailor the CPQ solution to meet its unique needs —
configurability is what makes Salesforce so valuable. But without the right tools, deploying
changes from development environments through to testing and finally to production
can be time-consuming and error-prone at the best of times, and this is particularly true
of CPQ configuration.

In this whitepaper, we’ll outline the most common and complex challenges of deploying
Salesforce CPQ, and explain how they can be addressed.

4
Salesforce CPQ challenges

CPQ is technically complex

While it’s now part of Salesforce’s Revenue Cloud offering, CPQ started life as a third-
party solution. SteelBrick, acquired by Salesforce in 2015 for $360 million, created
CPQ as a managed package. So configuring and deploying CPQ feels different because
it is different, and we’ll go on to explore the various ways it’s more tricky than most other
kinds of Salesforce configuration.

CPQ is inherently complicated

Before we consider how configuration is represented and deployed, it’s worth


recognizing that CPQ is inherently complex.

There are many factors that make it hard to generate an accurate quote manually:

• Businesses have numerous products and prices to keep track of.

• Some products are unit based; others are subscription based.

• Products may be sold as bundles, or with different feature sets.

• Discounts might be offered, and there may be rules around discount limits.

• Selling into different regions has implications for currency and tax.

• Prices may change depending on quantities.

CPQ exists to automate these processes. It removes the challenge for sales reps,
but shifts the complexity to the developers building and customizing CPQ. All of these
interrelated factors need to be represented in CPQ, with dependencies between them.

5
To illustrate, a typical CPQ model might look something like this:

SALESFORCE CPQ [210.15.12] - OBJECT MODEL - V1.1 - MARK CANE - 2018-03-24

Quote Templates
Standard Object

Custom Object

Field Name Lookup Relationship


Line Column Style Options (Font and Margin)
Advanced Approvals:
SBQQ__LineColumn__c Width (must add cumulatively to 100%) Master Detail Relationship
Column Options (Rollup, Conditional Print,
Separate Package - Advanced Approval logic for Opportunity or Quote records.
Column Specification within Hide on Product Options, Summary Level,
the Quote Line Item output. Function and Label)
Points of difference:
Roll Up (to the master line, if set on the
template)
Approval Chains (parallel and independent) This model includes Primary Objects and
… Dynamic Approvers (assign based on a specific parameter - e.g. regional approval paths) relationships only.
Smart Approvals (prior acceptances not re-requested on resubmission)
For information purposes exclusively.
Steps:
(0) Setup Approvers - Users and Groups (by Public Group Id)
Quote Templates:
(1) Create Approval Chain (Target Object) “Finance”, “Sales”, “Legal” etc.
Displayed for Preview or Generate Document.
(2) Create Approval Rules
All Output fields must be on the Quote object.
Target Object
Templates (Request, Approve, Reject, Recall)
Custom Tab Related List Approver
Content (lookup) Approval Chain
Quote Template Template Section Display Order
SBQQ__QuoteTemplate__c SBQQ__TemplateSection__c Group Field (Product Category, Subscription (3) Add Approval Conditions
Related List Family) Tested Field
Quote Document Template. Content section within a Conditional Print Field Filter Field/Value/Approval Variable
Selectable during Document specific Template output. Page Break Behaviour (Before, After, Both)
Generation. Filtering Information (Field, Value, Operator) Quote shows Approvers and current Approval Status in Related List
Related List Hide the “Generate Document” button until the Quote is Approved.
… …
• Approvers and Approver Groups
○ Parallel and Serial Approvers at each Tier.
Header Content Section filtering:
○ Record Status; { Pending, Approved, Rejected, Recalled }.
Footer Content Use filtering on LineItems content sections to
○ Approval Record for each Approver with Status; { Assigned, Requested, Approved, Rejected, Revoked }.
Quote Template Fields: break the line items into separate sections.
○ Approver is either User or Public Group Id. Approver has Unanimous flag.
Is Default?
Logo Document Id • Approval Chains and Email Templates
Page Information (Width, Height & Margins) ○ Approval Chain functions as a parallel path alongside a Serial Approval. All chained approvals executed in parallel.
Header/Footer Information (Height & Content, T&Cs) Custom Tab Custom Tab
○ Visualforce email templates only.
Corporate Information Content Name Active
Style Information (Font, Size and Colour) Template Content Type: Quote Term Locked • Approval Rules
Group Style Information (Font, Size and Colour) SBQQ__TemplateContent__c HTML - Font, Markup SBQQ__QuoteTerm__c Body ○ Approval Rule has parent Approval Chain and Approver.
Section Titles LineItems - Font, Table Type (Standard, Price Status (Draft, In Review, Approved, ○ Approval Rule has Conditions and Email Notifications (templates) and Exclusions (statuses, date ranges.
Print Options (Hide/Show Options) Reusable Content. Dimensions as Cols or Row with Summary) Quote Specific or Reusable Rejected)
Line Columns (Related List) Quote Terms - Font Conditions Met (All, Any Custom)
Legal Terms with Conditional • Approval Variables and Submittal
Sections (Related List) Custom - Font, Custom Source=VF Page Url Logic. ○ Approval Variable; Target Object, Type (Summary) etc.
Additional Documents (Related List) Template Top - HTML Editor, merge fields
… … ○ Submit for Approval button (Opportunity and Quote).
Template Bottom - HTML Editor, merge fields

Merge fields: Quote Terms:


{!template.[field]} >> reference Quote Template fields. Quote terms must be added to Template Content
{!quote.[field]} >> reference Quote Template fields. then added to a Template Section. Evaluation of the Guided Selling
related Term Conditions controls inclusion in output.

Name Field or Variable Label


Additional Document Display Order Term Conditions Operator Quote Process Process Input Input Field
SBQQ__RelatedContent__c Required SBQQ__TermCondition__c Value SBQQ__QuoteProcess__c SBQQ__ProcessInputValue__c Display Order
Related List External Id (Document or Salesforce Conditions Met; All, Any
Marketing Content Content Record ID - mandatory) Logical Condition used in Guided Selling Process Question (or Prompt) within a
Product Specifications, Case determining whether Quote Definition guided Quote Process Twin fields required on QLI
Studies etc. Terms are printed.
… … … …
Line Item Summaries:
The Quote Process ID field indicates a Quote
Quote Template: Process should be used - set by workflow.
Group Field / Sub Group Field: Grouping QLI for totals.
Roll-Up Field: Rollup into a single line where QLI have
the same value in the value specified.
Total Field: Field to Total (Net Total Price)
Subtotal Field: (Regular Total Price)
Line Sort Field
Attachment Id Process Input
Line Column: Quote Document Electronic Signature Process Input Values Process Input Condition Master Process Input (value determines
Rollup? SBQQ__QuoteDocument__c Signature Status SBQQ__ProcessInputValue__c SBQQ__ProcessInputCondition__c visibility of the Process Input)
Summary Level Paper Size Operator
Summary Function (Sum) Versioned Generated Quote Quote Level Values for a given Visibility Conditions that make Value
Summary Label Document instance. Audit Process Input the question flow dynamic
Purposes - Admin Only.
… … …

Summary Variables:
Similar to RSF but no fields required. Aggregate Custom Tab Field
a collection of products on a Quote.
Function
Composite Operator (another Summary Variable)
Aggregate Field = Quantity, List Price Summary Variable
Filter Field
Dynamic SKU: Quote Line Fields: Where Product Code or Family = XYZ SBQQ__SummaryVariable__c
Filter Value
Product Max, Min, Sum, Average, Count Operator
Product Option Fields: Quantity Variable that summarise Quote Scope
Assign value to Component Code field Margin Used in :Product Rules, Price Rules, Validation Line items
Assign value to Component Code Position Quote Fields: Markup Rules, Dynamic Quote Terms
Primary Group …
Product Field: Type { Quote, Renewal, Amendment, Re- List Total / Unit Price Combine With [another SV]
Add expression to the Component Code Pattern Quote } Net Total / Unit Price Composite Operator (+ - / *)
e.g. 0000{10}-{20}-{30}-123 Status { Draft, In Review, Approved, Customer Total / Unit Price Variable Element - SV or Value Element - literal
Denied, Presented, Accepted, Rejected } Gross Profit
Expires On Start Date
Output is stored in the Package Product Code
Margin % End Date
field on the Parent Bundle Quote Line Item.

Custom Tab

Product Fields: Customer Total


Component Quote Quote Line Quote Line Group List Total
Quantity Editable SBQQ__Quote__c SBQQ__QuoteLine__c SBQQ__QuoteLineGroup__c Net Total
Hidden - not visible on the Quote Document Markup %
Asset Conversion { One per Quote Line, One per Unit } A Customer specific Quote. Individual Quote Line Item. Custom Group of Quote Line Billing Frequency
Exclude from Opportunity Items.
CPQ Configuration > Option Layout (Wizard, Sections, Tabs)
CPQ Configuration > Option Selection Method (Click, Add,
… … …
Dynamic)
Pricing > Pricing Method { List, Cost, Block, Percent of Total }
Pricing > Exclude from Percent Of Total
Subscriptions > Subscription Pricing
Subscriptions > Percent of Total
Upgrades > Upgrade Source
Upgrades > Upgrade Target Pricing & Discounts
Renewals > Renewal Product Price Dimensions: Pricing Waterfall: Percentage of Total Pricing Method:
Subscription Products that contain a segment Percent of Total Pricing allows a user to set a Percentage on
Product > Price Dimensions Related List List Price which the Product's List Price will be calculated based on the
MDQ = Multi-Dimensional Quote - System Discounts Quote, Quote Line Group, or Product Bundle's Total.
Opportunity Product Price Book Entry PriceBook Regular Price (or Inject Special Price) Percent of Total Pricing is calculated based on non-subscription
Product2 PriceBookEntry PriceBook2 Product Rules not Product Options with MDQ - Additional Discounts Products and Products marked as Include in Percent of Total.
Sales Cloud Sales Process. Can't be used on Parent Bundle Product Customer Price
Products that represent Goods Product List Price per Standard and Custom Segment Index = 0 activation fee, 1 = 1 Year 1… - Partner Discounts Product Fields:
or Services sold by the Pricebook. Pricebooks. One time Price Dimension requires at leat one Y, Partner Price % to Apply
Company. M or Q Price Dimension - Distributor Discounts Percent of Total Base: List, Regular, Customer, Net
… … … … Net Price Percent of Total Category - set on product and products included
in the calculation
Percent of Total Target - limit to a single product
Percent of Total Constraint - List Price is minimum or maximum
Include in Percent of Total
Exclude from Percent of Total

Type { Year, Quarter, Month, One-time } Lower Bound (inclusive)


Subscription Account Price Dimension Quantity Editable Block Price Upper Bound (exclusive) Price Rule Price Condition
SBQQ__Subscription__c SBQQ__Dimension__c Quantity Scale SBQQ__BlockPrice__c Effective Date SBQQ__PriceRule__c SBQQ__PriceCondition__c
Customers, Suppliers, Customer, Unit Price Expiration Date Evaluation Scope { Configurator or Calculator}
Customer Subscription to a Partners or Distributors. Distributor, Subscription Product Price Price Editable Quantity Block Pricing - Automate price calculations Conditions Met { All, Any or Custom } Use filters, variables and
Product or Service. Partner Segment Type (Year, Month Taxable Quantity Ranges and update Quote Line fields. formulas to specify conditions
etc.). Record per Currency. … Configurator Evaluation Event { None (save and
… … … … leave), Save (on save), Edit (realtime within …
Configurator) }
Created for Subscription Products when Object { Quote, Quote Line, Product Option,
Opportunity is set to Contracted. Contracted Pricing: Summary Variable }
Separate record per currency Field (Product Code)
Contracted Prices are inherited down the Account hierarchy Tested Variable (Summary Variable)
(to block inheritance set Ignore Parent Contracted Prices=TRUE) Tested Formula
EffectiveContractedPrice Visualforce page Filter (Operator, Type, Value, Variable, Formula)
Overlaps not allowed
Custom Tab
Master
Contract Active Specific Product or Filter (Field=Product, Target Object { Quote, Quote Line, Price Rules:
Asset Contract Cost Unit Cost Contracted Price Product Code, Family > Operator > Value) Price Action Product Option } Price Rules automate price calculations and
SBQQ__Cost__c SBQQ__ContractedPrice__c Price SBQQ__PriceAction__c Target Field (Unit Price, Discount %/£, update quote line fields. Configure Price Rules to
Customer Asset (Product) Commercial Contracts. Used in Cost plus Margin pricing Discount % Markup %/£) automatically discount Quote Lines based on
Per Currency Cost Price. Per Customer Pricing. Takes Effective Date -> Expiration Date Actions taken when the Price Value Product or Quote attributes or to inject pricing
Precedence. Discount Schedule Rule fires. Usually a discount, Formula when Quantity hits a level.
Ignore Parent Contracted Prices applied or price injection. Source Field
… … … … … Source Lookup
Source Variable (Summary Variable)
Created for Non-Subscription Products when
Opportunity is set to Contracted.

Products & Bundles

Discount Schedules: specify volume


discounts. These volume discounts are based
on a % of the product's price (or specific
Amount) to be discounted using the quantity Custom Tab Configuration Rule: Product ID
Custom Tab
purchased or term. Set the quantity or term EQUALS
ranges in tiers of different discount values. Product Feature: Configured SKU ID Tested Object
Discount Schedule Feature Configuration Rule Product Rule Error Condition Tested Field
Discount tiers - SBQQ__DiscountSchedule__c SBQQ__ProductFeature__c SBQQ__ConfigurationRule__c SBQQ__ProductRule__c SBQQ__ErrorCondition__c Operator
Lower Bound IS INCLUSIVE Min Options Type: Value
Upper Bound IS NOT INCLUSIVE Automatic Volume Discount Headers that group related Max Options Product Rule links to a Product Viability Check for Product { Validation (requires Message) Logical condition that causes Tested Attribute
Schedule Options. Category (picklist) Bundle. Parent Bundle Condition Level Configuration. Alert (requires Message) the Product Rule to FAIL. Tested Variable
Slab = Blended (1-10 5%, 11-20 10% etc.) Configuration Field Set (Product FieldSet) - Child Bundle Condition Level Selection
Range = single tier applied … … fields display in Quote Line Editor. … Child Bundle Action Level … Filter } …
Type: { Range - (quantity tier), Slab (quantity tier
plus preceding tiers i.e. Blended) Option Selection Method - { Click, Add, Evaluation order
Can be Product or Account specific Dynamic } Evaluation events; Load, Edit, Save, Always
Discount Unit: % or Amount or Price
Quantity Discounted or Term Discounted. Scope: { Product (Inside Configurator)
Aggregation Scope: Quote, or Quote Line Group
Cross Product: consider all product or features Quote or Quote LineItem (Outside Configurator) }
that share the same schedule Conditions Met: { All, Any
Cross Orders: or Custom (Advanced Formula field) }
Product Option: Configured SKU ID
EQUALS
Feature: Configured SKU ID
Product Rules:
Evaluate Quote Products against Conditions to validate configuration.
Lower Type { Dependency (must) Type: { Add, Remove, Show,
Error messages appear in the Quote Line Editor.
Discount Tier Upper Product Option Constaining Option Option Constraint Exclusion (can’t) { Product Action Hide, Enable, Disable }
Contract Amendments and Renewals: Real-time Rule Processing (Apply Immediately flag on the Product Option)
SBQQ__DiscountTier__c Discount Amount SBQQ__ProductOption__c SBQQ__OptionConstraint__c Check Prior Purchases SBQQ__ProductAction__c
Note: Option Constraints Override Product Rules
Discount % Constained Option Group Product (to target)
• Contract Generation
Discount Tier (Quantity Range) Product added to a Bundle. Constraints govern which Actions taken when the Validation Rules: Scope=Quote.
○ User creates Opportunity.
○ User creates Quote ([Primary]=TRUE, [Start Date] & [Subscription Term] set) linked to Opportunity.
within a Schedule Boundaries: inclusive on Lower Bound and Type { Component - fully dependent; qty and existence, Product Options must or must Product Rule FAILS. Filter Field (target all Options that match Configuration Rules: Bundle Specific Rules.
exclusive on Upper Bound. Accessory - existence only, Related Product - not be selected together. the defined filter)
○ User adds Products (1xSubscription Type (e.g. Warranty), 1xAsset Type (e.g. Printer)). independent) Filter Rules: Pre filter products for Dynamic Product Bundles.
… … … … Operator Alert Rules: Like validation but allow continuation.
○ User sets Opportunity field [Contracted]=TRUE. Unit Price
Filter Value
○ CPQ generates Contract, Subscription (related to Contract) and Asset records. Bundled, Required, Selected
Quote Line Visibiity Value Object Use cases:
○ User activates the Contract.
Apply Immediately Value Field Add a Product to a Bundle based on Conditions.
Apply Immediately Context (Always, On Selection, On
• Contract Amendment Display an Error if configuration is not viable or simply alert the Agent.
Quantity Change) Product Features:
○ User clicks Contract “Amend” button. Discounted by Package Category is the primary grouping - this groups Features in the Quote
○ CPQ creates Amended Opportunity (e.g Amendment for contract #00000101). Upifted by Package
Line Editor, which in turn groups Product Options.
Package Product Code; Component Code, Component Dynamic Bundles:
○ CPQ creates Amended Quote. Discount Schedule at Feature level overrides Product level.
Code Position? Product Feature with Option Selection Method = Dynamic
○ CPQ displays Quote Line Editor (Configurator). Configuration Attributes: are inputs located Dynamic bundles are based on a Feature.
Custom Tab Dynamic Option Filter Field Set : Product FieldSet containing Code, Name and Family
○ User adds Products, configures Quote Lines and saves the Quote. above or below the Product Option list in the
Dynamic Option Lookup Field Set : Product FieldSet containing Code, Name and Desc
○ User sets Amendment Opportunity to [Contracted]=TRUE. Configurator that enable convenient setting of the Row There are no Product Option records.
○ CPQ creates New Subscription for Existing Contract. value of a field shared by one or more Product Configuration Attribute Column (1 to 3) Option Constraints:
Use Product Rules to validate the configuration.
Options on a selected Bundle . SBQQ__ConfigurationAttribute__c Position { top (above) or bottom Override Product Rules
• Contract Renewal (below) Product Options) } Groups enable AND logic to be applied where 2 options impact a 3rd option
○ User sets Contract [Renewal Forecast]=TRUE. For example, adjust the Location or Discount % of Discount, Unit Price etc. Target Field
○ CPQ creates Renewal Opportunity linked to Renewed Contract and Forward Contract. all Product Options in a Bundle from within the Applied to all Product Options Required Configuration Attributes:
○ CPQ creates Renewal Quote linked to Contract. Configurator. within a Bundle or Feature. Auto Select Make changes to fields across Product Options within Bundle - spend less time in the
… Default Object & Field Configurator.

All of these dependencies need to be accounted for when it comes to deploying changes
between any two environments. Failure to account for dependencies can cause deployment
failure or an unexpected impact on related fields. With multiple team members working
simultaneously on multiple change requests across multiple environments, the complexity
escalates quickly.

Many teams face further layers of complexity. For example, they may also use Advanced
Approvals and Billing. They may have integrations with systems such as ERP that affect
the datasets used by CPQ. And they may have to ensure compliance with financial
and regulatory requirements.

6
Deploying CPQ involves
data and metadata

The inherent complexity of CPQ makes deployments difficult. And to make matters even
more challenging, CPQ configuration is represented as data records, not metadata.
And yet it still relates to data and metadata objects across your org.

For example, Products, Pricebooks, Quotes, and Orders are all CPQ configurations
structured as data. CPQ-specific metadata types for Apex, Permissions, Page Layouts,
Customer Fields and Custom Objects are also used. And other regular metadata types,
such as a Custom Field, might still be referenced.

Deploying data on Salesforce is typically harder than deploying metadata — partly


because data often references metadata anyway, but also because there are usually more
dependencies and relationships between data records than metadata types.

All this means deploying CPQ is a real challenge. Teams need to ensure data integrity,
manage data mapping, handle duplicate or missing data, and make sure all dependencies
are accounted for.

Record IDs are inconsistent


between environments

Salesforce automatically creates a unique ID for each record. But, as anyone who’s handled
data migrations will know, when deploying the same record through different Salesforce
orgs the Record ID changes. Without matching IDs, it’s all too easy to get duplicate records
in orgs. To make sure records are correctly mapped and deployed between environments,
these records need to be matched up using a unique identifier.

A common approach used by teams deploying CPQ is to assign each record an “external” ID.

External IDs help you:

• Cross reference records between environments and even multiple systems

• Accurately deploy CPQ configuration data for products, prices, price rules, etc.

7
• Simplify integrations with external systems such as ERP or financial platforms

• Maintain consistency across all environments and systems

• Ensure data integrity — preventing duplicates and data corruption

• Speed up CPQ deployments and improve confidence in the release process

• Drastically reduce the likelihood of human error

All of those benefits underline the importance of external IDs, but creating and managing
external IDs is also a huge amount of work. Teams deploying CPQ will typically sink lots of time
on spreadsheets and scripts, trying to maintain a source of truth for CPQ configuration records
and external IDs.

Many teams lack purpose-built tooling

It’s critical for teams to find tools that will help them overcome the
obstacles of CPQ deployments, but until recently the options have
been very limited. Most teams continue to follow a fairly manual
process, even though it’s painstaking, tedious and error-prone.

Most deployment solutions aren’t


built for both data and metadata

As we’ve seen, deploying CPQ changes isn’t like deploying regular metadata, because it isn’t
metadata. This means tools built solely for deploying metadata can’t be used for CPQ, whether
that’s change sets, DX, or most third-party solutions.

On the other hand, data deployment tools aren’t built for CPQ either. Usually they’re built
for loading records into an org from a CSV file, or for migrating data between orgs to seed
sandboxes with test data. CPQ configuration can be deployed using these tools — some teams
use Salesforce’s Data Loader, for example — but it’s hardly an intuitive process because they’re
the wrong tools for the job. It’s a bit like opening a tin with a knife: doable, but hard work
and pretty risky. Teams taking this approach will often rely on templates to help them configure
the data deployments.

8
Many teams simply choose not to bother with any tools. Instead, they document all changes
and recreate them in the target org — a highly laborious and error-prone process that reflects
just how painful those teams have found CPQ deployments.

CPQ is often isolated


from DevOps processes

As a result of these tooling challenges, Salesforce development and releases are very often split.
One approach is used for regular metadata deployments; another for CPQ. Audit trails are either
incomplete or divided. It’s a challenge to plan or integrate work across the different workstreams.

In short, teams aren’t able to get everyone together in one process to collaborate on
release management. Building, testing, deploying, monitoring and planning all happen in silos.
This compromises DevOps and violates the Agile manifesto, preventing teams from seeing
the benefits of these approaches when deploying CPQ.

CPQ deployments reimagined


The many challenges of Salesforce CPQ are clear. This clarity
makes it easier for us to identify what a proper solution
for CPQ deployments should look like.

It needs to:

• Manage external IDs without the need for spreadsheets and scripts

• Bring CPQ into the same DevOps process used for metadata development

• Support deployments of Salesforce data and metadata together

• Give teams visibility into the complex configuration changes they’re deploying

• Help teams identify dependencies and deploy them intact

9
These were the things Gearset had in mind when we set out to build Gearset for CPQ.
Our “compare and deploy” solution was already helping thousands of teams to deploy
Salesforce metadata with dramatically improved success rates, and we wanted to make
CPQ deployments just as easy.

External IDs handled

To save teams from the headache of managing external


IDs, Gearset handles those after a one-time setup. Our quick
and intuitive setup wizard guides teams through the process
for each org. The external ID doesn’t interfere with any existing
external ID fields.

Before deploying CPQ configuration in Gearset, you need to run its external ID setup wizard
on both your source and target orgs. You only need to go through this process once, unless
new objects are added.

Adding the external ID is a simple, automated process, which prevents duplicate records
from being created. It also enables rollbacks of changed CPQ items. The external ID doesn’t
interfere with any existing external ID fields you may already have.

You can enter the setup wizard from the list of your connected Salesforce orgs. Or, when
you first try to compare an org that has CPQ enabled, Gearset will detect this automatically
and prompt you to begin the setup process.

Deploying CPQ configuration like metadata

With Gearset for CPQ, teams can deploy CPQ config just like
metadata. Using two different processes — one for deploying
metadata changes and another for CPQ config changes —
is time-consuming, inefficient and stressful.

10
Gearset cuts the workload in half.

To give complete visibility over changes, Gearset compares both metadata and CPQ
configuration between source and target environments for the deployment. Gearset’s
comparison filter allows you to pull in the right CPQ and metadata types to compare and
deploy — an improvement on deployment templates. There’s a “standard CPQ filter” which
preselects the CPQ and metadata types most likely to be needed. Teams can also create,
save, and share other filters with the metadata and CPQ types they typically need
to deploy together. CPQ, Advanced Approvals and Billing types are all supported.

Full visibility into the impact of CPQ changes

The comparison view in Gearset shows all differences


that can be deployed. Items are categorized as:

Changed New Deleted

Present in both source Present in the Present in the


and target but different source only target only

Clicking on any item will show the exact line-by-line differences in Gearset’s diff viewer,
and we’ll also highlight all dependencies between objects. If teams do miss any dependencies,
Gearset will catch that during pre-deployment checks and offer to include the missing
dependency. This is thanks to one of Gearset’s many “problem analyzers” that find
and fix common causes of deployment failure.

11
Auditing CPQ changes alongside metadata

Once you’ve selected items to deploy and passed the problem analysis stage, Gearset
will prompt you to give each deployment a name and type in deployment notes, allowing
your team to build up a deployment history that makes auditing and debugging much easier.
The audit trail covers all metadata and CPQ changes alongside each other. You can roll back
changes from any deployment in the history.

To help you monitor any changes, including any unwanted ones made outside of a DevOps
process, Gearset’s change monitoring automatically checks every day for differences to
an org’s CPQ configuration and metadata, and notifies you of any changes found. You can
then decide whether these changes should be removed or pulled upstream to keep all
environments in sync.

12
Why solving CPQ matters

Developer impact: frustration and inefficiency

Due to the complexity of CPQ, it’s common for teams to have dedicated specialists whose sole
job is to develop and deploy CPQ configuration. At the implementation stage, businesses may
also choose to bring in consultants with expertise in CPQ.

CPQ specialists have valuable expertise in business systems and the CPQ model. They’ve
learned how to handle configuration, migration, dependency management, testing, and change
management. But, all too often, they’re left working on repetitive and manual tasks.

Unsurprisingly, CPQ specialists often find their work stressful and difficult to manage. And
regardless of expertise, CPQ specialists struggle without the right tools. A simple typo in a
manual process will cause deployments to fail and waste many hours on troubleshooting.

Data collected for The State of Salesforce DevOps 2023 report shows that just 21% of teams
managing CPQ can deploy in under an hour; for everyone else the figure is 38%. In other words,
teams deploying CPQ are almost half as likely to enjoy fast deployments. The same teams also
identified “more apps and packages” as the leading cause of rising workload over the last year.

Team impact: silos and poor collaboration


Specialization, of any kind, within a team creates bottlenecks and single points of failure —
precisely the problems that teams bought into DevOps are trying to avoid.

It’s not that teams can’t have subject-matter experts; CPQ specialists will always be the go-to
people for their expertise. But collaboration becomes impossible when CPQ is being developed
and deployed in an entirely separate workstream that the rest of the team have no visibility over.
It’s best practice to break down silos in development teams, so everyone can participate in one
shared process and on the same platform. CPQ poses a real challenge to that ambition.

While teams working with CPQ aren’t the only ones looking to improve in this area, 52% of them
report needing better collaboration.

13
Business impact: unpredictable time
and cost of delivery

The wider business, though often oblivious to the technical challenges of CPQ
implementation and configuration, is still impacted. The delivery of CPQ changes can easily
be delayed, costing the business in terms of developer time and missed opportunities.

CPQ configuration is already a difficult task, even before deployments are factored in.
So it’s hard enough for development teams (or consultants) to set expectations for the
wider business about the feasibility of CPQ changes, the timeline for delivery, and the cost.

End users will make assumptions about how quickly changes can be released and integrated
with existing systems. And often, changes need to be released at a particular time, for
instance, at the precise moment the business changes its prices. This is hard to achieve
when deployment times are unpredictable.

Delays in development all come with a cost to the business. Sales reps and other end users
have to wait longer for features that could boost revenue. For example, the business may
not be able to pivot quickly and match a competitor’s discount. And the development team
itself will struggle to clear a backlog of feature requests that the business needs.

It’s also important to note that difficulties deploying data come with an increased risk
of data loss or corruption. Since the CPQ model has such an intricate web of dependencies,
releasing a small error can still have a wide-ranging impact. The data gathered for Gearset’s
State of Salesforce DevOps 2023 reveals that 83% of orgs with CPQ experienced data
or metadata loss in 2022, compared to 75% for other businesses.

14
The benefits of streamlined
CPQ deployments
Solving the challenge of CPQ inverts the negative
impacts on developers, teams, and the wider business
to produce a whole raft of benefits:

• Increased developer productivity • A unified approach to DevOps with


shared tooling and audit trails
• Better job satisfaction for CPQ specialists
• Faster value delivery to the business
• Improved collaboration across
development teams • More predictable timelines for CPQ projects

• Integrated workflows for deploying • Reduced costs for CPQ implementation


metadata and CPQ changes and configuration

• Lower risk of data loss incidents

A better experience for developers

Gearset for CPQ has transformed the workflows of development teams building and
deploying CPQ. These teams benefit in terms of time-savings, and also banish the
stress of painstaking CPQ deployments.

“Thanks to Gearset, I can deploy CPQ data in 5 minutes


and focus on more important tasks!”
Katia Gleber | Business Applications Manager | WEKA

15
“Gearset’s approach to CPQ deployments
is groundbreaking. I would estimate it saves
us on average 50% of the time we used to set aside
for CPQ deployments. But the advantages it provides
truly go beyond time-savings. Consultants have
so much more confidence (and less stress) when
deploying with Gearset.”

Deepak Veera | Principal Consultant | Cloud Giants

Effective collaboration for teams


Teams also benefit from bringing CPQ into the fold for DevOps. Using one platform
for both metadata and CPQ deployments, teams can collaborate on releases and avoid
treading on each other’s toes when workstreams collide.

“We wanted a tool to support us in the future —


as our team grows, our processes grow alongside them.
WEKA wanted something scalable that could support
us in our future Salesforce development work.”

Katia Gleber | Business Applications Manager | WEKA

16
Predictability and efficiency for the business
Solving CPQ deployments generates time-savings that are ultimately cost-savings.
Development teams are freed up to build more solutions, giving businesses more
reliable estimates for delivery timelines. And they deliver changes to end users faster,
adding value to the business sooner.

“Gearset simplifies our lives and frees us up


to focus our attention on other mission-critical work.
As a result, we’re able to deliver more value to our
clients. It also helps build confidence in the time we’ve
scoped for deployments. Gearset lends more structure
and predictability. I can confidently go in and say
if we follow these processes, this deployment should
take two to three hours. Before that, it might be a five-
hour thing, it might be a seven-hour thing. We just
didn’t know. ”

Deepak Veera | Principal Consultant | Cloud Giants

17
Next steps

Make the case for


a new approach to CPQ
It’s always necessary to get buy-in for a new
approach. Particularly if you’re looking to overhaul
an existing deployment process for CPQ, proactively
address any concerns the team may have. If you’re
still at the implementation stage, it’s an ideal time
to plan for release management and weigh up
alternative routes forward. In either case, you
should outline a cost-benefit analysis for your
options — bearing in mind the costs of choosing
or sticking with a manual release process.
If CPQ is something of a black box to stakeholders
in the decision, why not share this whitepaper
to give them a rundown of the challenges?

Explore Gearset for CPQ


To see Gearset for CPQ in action and understand what it
can do for your team, get in touch to book a tailored demo.

Book a demo

18
About
Gearset

Gearset is the leading Salesforce DevOps platform, with


powerful solutions for metadata and CPQ deployments,
CI/CD, automated testing, sandbox seeding and backups.
It helps Salesforce teams apply DevOps best practices
to their development and release process, so they can rapidly
and securely deliver higher-quality projects.

Thousands of Salesforce professionals use Gearset,


and have shipped millions of deployments, run billions
of automated tests, and backed up billions of records. With
inbuilt intelligence that solves the fundamental challenges
of Salesforce DevOps, Gearset is a uniquely reliable solution
trusted by more than 2000 companies, including McKesson,
Accenture and IBM.

19

You might also like