Advanced Approval – Submit Multiple Records in Related List (Classic)

A new Code Using Advance Approvals If you created a new approval process with Advanced Approvals package and you need a quick way to submit for approval multiple records from selecting them from a Related list (without having to enter each record), this code will work very well for you. For this Project we have …
Continue reading Advanced Approval – Submit Multiple Records in Related List (Classic)

CPQ Exam vs. CPQ Training

Do you want to hone your CPQ skills and become a super CPQ Specialist? Great! There is, of course, a difference between the CPQ Specialist exam and the CPQ Admin Essentials classes you can take. There are also trailheads! TrailheadsLet’s talk these first. If you’re new to trailhead, this is an online training program that …
Continue reading CPQ Exam vs. CPQ Training

CPQ – Line Editor – Component Option Quantities are Calculated Between Before Calculate and On Calculate

You have a Price Rule on before calculate that updates SBQQ__ListPrice__c using a formula which is something like: SBQQ__OriginalPrice__c * (SBQQ__Quantity__c *0.01). A formula that changes the list price based on quantity. You add a bundle product containing an option that is of type “Component” and save the configuration. The bundle product has a zero …
Continue reading CPQ – Line Editor – Component Option Quantities are Calculated Between Before Calculate and On Calculate

System.SObjectException: Invalid field SBQQ__Product__c for SBQQ__QuoteLine__c

Object o = myOb.get(myFieldName); Does your code look something like this? System.SObjectException: Invalid field SBQQ__Product__c for SBQQ__QuoteLine__c And you get an error something like that? This is an apex error. This can happen with any field on any object. If you’re here, you probably have less hair because you’re pulling it out trying to figure …
Continue reading System.SObjectException: Invalid field SBQQ__Product__c for SBQQ__QuoteLine__c

Salesforce CPQ – Standard Subscription Management Process

IntroductionHere is a click through (with screenshots) path for the standard management of subscriptions in Salesforce CPQ. New Subscription On Account Page Click the New Opportunity button. Fill in pertinent information for new Opportunity. Click the Save button. Click on the new Opportunity record. On Opportunity Page Click the New Quote button. Fill in pertinent …
Continue reading Salesforce CPQ – Standard Subscription Management Process

Salesforce CPQ – Pull Quote Line Groups into Renewals and Amendments

Hello! If you’re here, you’re looking for how to pull groups into your amendments and/or renewals! You might have come from the Salesforce Idea page or perhaps google search… There is a formula field, a trigger, and a small price rule involved. Fear not! All of it is right here. Please NOTE: This code is …
Continue reading Salesforce CPQ – Pull Quote Line Groups into Renewals and Amendments

The Entity ‘ConsumptionSchedule’ is not found. Contact the vendor for more details.

You’re here. You’re trying to install CPQ. But this message happens. Dammit. 😡 There’s only two ways to solve this: Enter a support ticket to have Salesforce provision Usage Based Pricing in your org. Create a fresh new org and try installing there. Support TicketBelow is an example thread you might see after submitting a …
Continue reading The Entity ‘ConsumptionSchedule’ is not found. Contact the vendor for more details.

When Migrate Quote Template Through data loader

You might notice, after migrating your quote templates to another org with data loader (to production perhaps), you see either double or duplicate columns in the Quote Template! Are you migrating the quote templates through data loader? You must keep in mind that the order to add the Quote template through data loader is: 1. …
Continue reading When Migrate Quote Template Through data loader

Salesforce CPQ – New Theme Woes

Did you create a new theme and it does not apply to your users and/or sales representatives?Is your theme giving you an error when previewing it?  Upsert Failed. First exception on row 0 with id xxx; first error: INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, insufficient access rights on cross-reference id: []Error is in expresssion ‘{!previvew}’ in page sbqq:theme: (SBQQ) After …
Continue reading Salesforce CPQ – New Theme Woes

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