How-to Rename/Relabel the Pricebook Entry – Field: List Price!

Guess what! You can relabel / rename the Pricebook Entry field, List Price! I bet you can’t find where though! You might think it would be in the Custom Labels Setup. Nope. Translation? Nope. Rename Tabs & Labels, Pricebook Entry object? Negatory. Well, you’re half right. Setup > Rename Tabs & Labels > Opportunity Products …
Continue reading How-to Rename/Relabel the Pricebook Entry – Field: List Price!

CPQ – Product2 Field – Has Configuration Attributes

There is a field on the Product2 object called “SBQQ__HasConfigurationAttributes__c”.  This field is one of the only fields in CPQ that does not have help text next to it in the UI. You can see Lock Description has a help text “i” next to it but Has Configuration Attributes does not. It does have a …
Continue reading CPQ – Product2 Field – Has Configuration Attributes

APEX – Don’t Allow Contact Deletion if Contact is an Opportunity Contact Role.

This is not CPQ but a short, quick, request from someone for some code. The request is: If a Contact is an Opportunity Contact Role of same Account, don’t allow deleting it. Below is the code. I didn’t think “of same Account” matters, so I didn’t write that into the code. APEX Trigger – ContactTriggers …
Continue reading APEX – Don’t Allow Contact Deletion if Contact is an Opportunity Contact Role.

Error Message on VF Page – INSUFFICIENT_ACCESS_OR_READONLY: user does not have access to use approval assignment email template.

You have an approval process that sends and email to an approver using a specific visual force email template. You get an error that says: INSUFFICIENT_ACCESS_OR_READONLY: user does not have access to use approval assignment email template. GAAAH!!! What the heck?? You see that the template is in a folder that is set to read …
Continue reading Error Message on VF Page – INSUFFICIENT_ACCESS_OR_READONLY: user does not have access to use approval assignment email template.

Error Message in QLE: Attempt to de-reference a null object

This message is the worst. Very sorry that you’ve found this error. This is telling you, ”something bad happened in CPQ and we’re not telling you what It is”. This is going to be a living document that contains reasons why you might encounter this error. Upon upgrading to CPQ 222, when clicking the wrench …
Continue reading Error Message in QLE: Attempt to de-reference a null object

Error Message in QLE: Apex CPQ Time Limit Exceeded

Whaaaaaat is going on with this error message??Sometimes, when you click save on the Quote Line Editor, you get a message saying it timed out! Why would this happen, you ask? There are plenty of reasons and some of them are listed below. Too many Price Rules/Product Rules Price Rules Product Rules Summary Variables Too …
Continue reading Error Message in QLE: Apex CPQ Time Limit Exceeded

Price Rules – Configurator!

Guess what! Price Rules can operate inside of the configurator! Most times, folks configure them to run in one of the four calculation events in the line editor. But you can also configure them to run within the configurator too! I am going to use an example Price Rule to illustrate some things about configurator …
Continue reading Price Rules – Configurator!

CPQ – Oldity – The Mysterious “None” Option

You have a bundle product. You have a couple features. You have a few options in those features. You quote the product to test it. Lo and behold! There is a “None” option under all of your other options! Whaaaaaat. I didn’t put that there. There’s no setting anywhere to turn this off or on. …
Continue reading CPQ – Oldity – The Mysterious “None” Option

CPQ – Oddity – Product Rule does not show “Continue” button in QLE

Hello! Welcome to another episode of “well this is weird”, CPQ edition. You have a bunch of products. You have an Alert Product Rule set up to run on Quote. See below. Where in the world is the “Continue” button? Is my alert Product Rule acting like a validation and not letting me save the …
Continue reading CPQ – Oddity – Product Rule does not show “Continue” button in QLE

CPQ – Feature – Usage-Based Products

This feature is for when you have a product that is usage based! This is for “number of” products. Hours, Views, Impressions, Calls, Incidents, Visits, Bandwidth, and many many more. There are a few things you need to do before you begin quoting with Usage-Based Products. SFDC Help Case: Enable the Usage Based Pricing FeatureIf …
Continue reading CPQ – Feature – Usage-Based Products

CPQ – Feature – Pricing Guidance

This is a feature of CPQ that allows for some guidance when your reps are deciding on discounts for the products they’re quoting. There are Two Types!– Manual Pricing Guidance (OOTB LOE: 20 Hours)– Pricing Guidance with Einstein Analytics (OOTB LOE: 50 Hours) Off-the-Bat Caveats!There are some caveats with this feature!  See below. Not available …
Continue reading CPQ – Feature – Pricing Guidance

CPQ Training

There are two training resources available to you offered by Salesforce. Salesforce Training and Trailhead. Salesforce TrainingAt the time of this writing, you get a free seat in both the CPQ-201 and CPQ-211 courses offered by Salesforce. There is also a CPQ Billing course. Salesforce CPQ Admin Essentials for New Administrators (CPQ-201)CPQ-201 is a hands-on …
Continue reading CPQ Training

Error Message when Amending Contract: Invalid field SBQQ__SegmentUplift__c for Asset

Error MessageError Message “Invalid field SBQQ__SegmentUplift__c for Asset” would appear when amending a Contract. Root CauseThis is caused by one of two things (or both): The Required By field on the Subscription record points to an Asset record ID. There are both an Asset record and a Subscription record existing for the same Product. SolutionThere …
Continue reading Error Message when Amending Contract: Invalid field SBQQ__SegmentUplift__c for Asset

CPQ Implementation Project – Guide

Introduction Many folks have asked, “How do we even start our CPQ project?”. This is a great question. It can be daunting to think about all of the things you’re going to need in your system. Here is a guide to help you kick off and run your CPQ implementation project.  Also this:  I like …
Continue reading CPQ Implementation Project – Guide

No such column ‘LastViewedDate’ on entity SBQQ__. If you are attempting to use a custom field, be sure to append the ‘__c’ after the custom field name. Please reference your WSDL or the describe call for the appropriate names.

Wow this is a long article name. But it’s appropriate! This message can be seen throughout the Line Editor screen and/or the Documentation Generator screen. The above screen cap shows Quote Line Group as the culprit. But there are common others such as, but not limited to: Quote Line, Product Option, and Product Feature. What …
Continue reading No such column ‘LastViewedDate’ on entity SBQQ__. If you are attempting to use a custom field, be sure to append the ‘__c’ after the custom field name. Please reference your WSDL or the describe call for the appropriate names.

CPQ – Amend MDQ Past First Segment

The ProblemIf you’re dealing with amendments on MDQ products, you may have realized you can’t do this… Click Amend on Contract Set Start Date past first segment Save Quote You get the below error: The AnswerHuzzah! There is an answer! The answer is… Contract -> Amendment Start Date Set Amendment Start Date on Contract past …
Continue reading CPQ – Amend MDQ Past First Segment

AUTO-POPULATE Fields on Quote Creation

Repubished from here: https://learningsalesforcecpq.com/2018/09/19/auto-populate-fields-on-quote-creation/ A specific set of fields on Quote can be auto-populated from the associated Opportunity and Account at the time of creating a new Quote. If you do not do the necessary setup, sales reps would spend time re-entering Quote fields which were already filled in at the time of creating Opportunity and Account. Salesforce CPQ provides a Field …
Continue reading AUTO-POPULATE Fields on Quote Creation

Generating a Document: Error generating document: Bad Request

If you’ve ever got this error when generating a document, you probably have less hair than you did before generating the document. There are multiple reasons this could happen: HTML tags in a Quote Line Line Column field in the lines section Template Content. One of your HTML Template Content records has a reference to …
Continue reading Generating a Document: Error generating document: Bad Request

The 5 Minute Time-Based Workflow (or 15 Minute, or 30 Minute…)

This was originally posted here. But I wanted to re-post it to save it in case it ever disappears. This is also not super CPQ related but VERY helpful! Salesforce workflows come in 2 flavors – real time and time-based workflows.  Time-based workflows are evaluated at the time interval you set – some number of hours or days after …
Continue reading The 5 Minute Time-Based Workflow (or 15 Minute, or 30 Minute…)

CPQ Spring ‘19 – Delete SBQQ__Opportunity__c from the Quote Object.

When version 26 of Salesforce CPQ + Billing was introduced in September 2016, the SBQQ_Opportunity_c field was replaced by SBQQ__Opportunity2__c. This field allows you to maintain the relationship between Quotes and Opportunities, and the introduction of SBQQ_Opportunity2_c allowed users to create quotes without first requiring to have an Opportunity record in place.  Both SBQQ__Opportunity__c and …
Continue reading CPQ Spring ‘19 – Delete SBQQ__Opportunity__c from the Quote Object.

CPQ Self Service

It looks like there is a need for some guidance here.  Sorry I have been dormant for the last while.  Busy busy with CPQ configurations and a growing company!  😀  As far as CPQ Self Service goes: This is not out of the box and when this link references Self Service with a Customer Community, …
Continue reading CPQ Self Service

Legacy Data Import Process

Once you have your CPQ implementation all set, you will have to figure out a process to import legacy data. This could be importing data from another system into SFDC or importing data from another SFDC object (such as the old Quote object) into the CPQ setup. First, let’s look at a simple general flow …
Continue reading Legacy Data Import Process