In an org I have a field SBQQ__QuoteLine__c.CostsType__c, and this gets set by some kind of magic, it seems. The possible picklist values are "Monthly" and "OneTime". There is no APEX code, nor flow, nor workflow, process builder... that references this field (verified via grep over the whole source).

If I deactivate the value "OneTime" and create a new CPQ Quote from an Opportunity which holds products that logically will make the costs type "OneTime", I get an Exception:

SBQQ.QuoteAfter: execution of AfterInsert caused by: System.DmlException: 
Insert failed. First exception on row 0; first error: 
picklist field: OneTime: [CostsType__c] (SBQQ) 

I don't have much experience with configuring CPQ, so my current guess is that this is defined somewhere in the configuration records.

But where? It's probably obvious, but I just can't find it.

1 Answer 1


Theres a few different places I would check.

First, CPQ has a feature called twin fields that it uses to sync data between related records. If you have a field with an API name of CostsType__c on a related record such as the oli, it could be pulling data in from one of these other sources and populating that field.

Second, You can check for price rules. Despite their name, they can be used to set any field value.

Another area to check is field dependencies. If this field is dependent on another field and the dependency only allows for 1 value, it could be automatically setting this field when the parent field is changed.

Alternatively, my experience with managed packages tells me that one way to figure it out is to go to the Objects page in classic or Object Manager in lightning and look through the CPQ objects. Look for anything that stands out as a configuration object and then go to that object and view the records/configuration. This is usually the best way to quickly familiarize yourself with the various objects and how they are used by the app.

  • Thanks a bundle! It was a twin field (I only just started Trailhead for CPQ...). I had done something similar to what you suggested for managed packages - looked at the contents of all SBQQ-tables :-) Nov 27, 2019 at 13:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .