Common Salesforce integration issues
Summarize
Summary of Common Salesforce Integration Issues
This guidance addresses frequent challenges encountered when integrating Salesforce CPQ with ServiceNow CPQ configurations. It provides practical troubleshooting steps and configuration checks to resolve common errors, ensuring smooth data synchronization and functionality between CPQ environments and Salesforce orgs. Following the recommended solutions helps maintain effective product configuration, quote line generation, and user access within integrated systems.
Show less
Key Issues and Solutions
- SOQL Query Limit Error (“SBQQ: Too many SOQL queries: 101”)
Occurs when large BOMs trigger excessive queries. Enable the "Large Configurations" setting in Salesforce CPQ Package Settings to reduce governor limit hits, albeit with slower performance. - Null Object Reference Error (“Attempt to de-reference a null object”)
Typically caused by missing or inactive Pricebook entries or nested bundling structures.- Check all Pricebook entries for products, ensuring they are active and correctly associated.
- If using nested bundling, consider redesigning configurations or disabling nested bundling via Salesforce CPQ Additional Settings and submit a support ticket to disable it on the CPQ side.
- Missing Configuration Line Items (CLIs) or Configuration Field Data Sets (CFDSs)
These Salesforce objects are created asynchronously when configurations are saved.- Ensure the CPQ Admin settings “Push BOM Data to CPQ” and “Push Config Data to CPQ” are enabled.
- Verify integration user permissions, and review Salesforce debug logs and paused flow interviews for errors.
- Child Quote Lines Not Created on Save
Happens when BOM items do not meet inclusion criteria or product sync is incomplete.- Verify BOM item types against CPQ Admin settings for inclusion.
- Confirm products exist in Salesforce with correct IDs and recent modifications to trigger sync.
- Check that the parent configurable product has the related dynamic feature and correct option selection method; toggle the "ServiceNow CPQ Enabled" flag to regenerate attributes if needed.
- Quote Lines Not Reflecting Expected Data
Often due to custom quote calculator plugin scripts, flows, or Apex triggers altering quote lines. Review and validate any customizations impacting quote line fields. - JSON Heap Size Limit Exceeded
Triggered by large BOM data during reconfiguration. Control the BOM item count using the BOM Item Limit feature and request tenant setting adjustments via a support case. - Reconfiguration Does Not Retain Selections
Causes include incorrect user permissions, missing related features or price books, or Blueprint settings such as twinning or enrichment scripts. Verify these configurations and user access. - Cannot Access CPQ Admin in Salesforce
Check user admin permissions, browser compatibility, Salesforce profile permissions, and that CPQ URLs are correctly configured and trusted. This ensures admins can manage CPQ design and settings effectively. - Cannot Launch Configuration
Errors such as “Insufficient Privileges,” blank screens, or content blocking may arise from permission issues, incorrect URLs, or Blueprint script errors. Verify permissions, browser issues, CPQ external configurator URL settings, and Blueprint logs to diagnose. - Partner Users and RFQ API Sharing Settings
Ensure relevant Salesforce objects (Pricebook, Product, Feature, Quote, Quote Line, Configuration Attributes, and related items) have appropriate external sharing settings (Public Read-Only or Read/Write) to allow partner access during RFQ processes. - Salesforce Platform-Specific Error When Saving Records
The error about converting configurable products to static products can occur if unchecking the configurable flag on Product2 records. Enable the “Skip Configurable Product Setup Trigger” setting in ServiceNow CPQ.io Admin Custom Settings to resolve.
Best Practices for Troubleshooting
- Use Salesforce debug logs to pinpoint error sources.
- Confirm installation and environment setup according to integration guides.
- Check user permissions and profiles for access-related issues.
- Review CPQ Admin logs for Blueprint or script errors affecting configuration launches.
- Submit support tickets via the ServiceNow Support portal for assistance with tenant setting changes or feature toggling.
By following these focused checks and adjustments, ServiceNow customers can effectively address common integration challenges, ensuring reliable CPQ functionality and seamless user experiences within their Salesforce environments.
Learn how to solve problems you may have integrating CPQ with Salesforce.
When Salesforce CPQ is a host for CPQ configurations, integrating the two sites my lead to some common errors. Here is a list of known issues with their solutions and what to check.
In general, when you see an error generated by Salesforce, you can use the Salesforce debug logs to find where that error is being triggered.
Salesforce: “SBQQ: Too many SOQL queries: 101”
This error happens usually when a user creates a BOM that has more than 100 items, clicks Quote in CPQ, and there are too many quote lines being created for the default Salesforce CPQ behavior to handle.
Solution: confirm that Enable Large Configurations is set in the Salesforce CPQ Package Settings.
This setting decreases the likelihood of hitting governor limits when your sales reps configure a large bundle, but performs slower overall. To read more about this setting, see Enable Large Configurations.
Salesforce: “Attempt to de-reference a null object”
This error usually happens when an end user saves the quote in CPQ and before they return to the QLE. It speaks to either a missing or inactive Pricebook entry for affected items, or an issue with nested bundling.
Solution (no nested bundling): The Pricebook entry for the product is missing or inactive.
Check all of the product's Pricebook entries. This error occurs if any of the following are true:
- A returned product is missing a Pricebook entry
- A returned product has an inactive Pricebook entry
- A returned product's related Pricebook is inactive
- The standard Pricebook is used by default but is inactive
Solution (nested bundling): If you have nested bundling enabled and your configuration has products configurations that match the following structure, there is no direct solution. You can either design your configurations to not encounter this Salesforce issue, or turn off nested bundling.
Parent product
Nested child 1
Product X
Nested child 2
Product X
To learn more about this issue, see the following Salesforce.com topic:
If you decide to disable nested bundling, you can do so in SFDC through Setup > Installed Packages > Salesforce CPQ > Additional Settings > Nested Bundles for External Configurator.
Please also submit a support ticket so that we can send this request to our DevOps team to turn off this feature from the CPQ side. You will continue to encounter the issue until we turn off this feature.
Not generating configuration line items or configuration field data sets
This functionality is not used by many implementations, but when it is, it is paramount that the expected Salesforce Objects are created. Configuration line items (CLIs) and configuration field data sets (CFDSs) are Salesforce objects that are managed by our base managed package, and their creation is asynchronous with the data that is pushed to the quote line.
The moment that a user saves the configuration from CPQ, the process to create these objects begins, regardless of whether you save the final quote lines created in the QLE. When this occurs, there is usually only one place to check.
Solution: The creation of these objects depends on the following settings being enabled.
- (For CLIs) The Push BOM Data to CPQ Salesforce Object CPQ Admin setting
- (For CFDSs) The Push Config Data to CPQ Salesforce Object CPQ Admin setting
- The SFDC permissions of Refresh Token username
If these settings are not enabled, these objects will not be created when the user clicks Save.
If these settings are enabled, and you still do not see CLIs or CFDSs (or Extended Information Field Mapping is not working), try the following:
- Check the logs to see whether the error “Salesforce syncing of LGK__ConfigurationLineItem__c object for configuration [******] did not complete successfully” appears. There may be more information in the “Paused And Failed Flow Interviews” page in your Salesforce Setup.
- Check the permissions of the integration user against the list in Required permissions for the integration user.
Saving does not create child quote lines
CPQ BOM has the product CPQ environment.
Saving to Salesforce has only the parent Configurable product, not the CPQ environment.
We only create quote line items when a BOM item fits these conditions:
- The BOM type of the item is specified in the “BOM Types to Include in Save Request” setting
- The product exists in our database from our product sync with Salesforce
This issue occurs when the user clicks Save from CPQ and they are met with only the parent Configurable product that they launched the configuration from, and no child quote lines that were created in the CPQ configurator. This usually means that there is a disconnect between the product Object in Salesforce and the BOM item created in CPQ.
-
Check whether the products exist in your Salesforce Site with the same product IDs that are determined by your product rules. If the products exist, try updating a field in the product record (such as “Active”), saving, reverting it, waiting 30 minutes, and then trying again.
Our product record sync relies on the Last Modified Date of the product2 records to speed up performance. If your environment was repointed from another one, products that did not exist in your last environment may now exist here and have a date that is older than the reconnect. Wait for the product sync to complete every 30 minutes, and try to save the configuration again.
-
Confirm that the BOM items have the correct BOM types as defined in CPQ Admin:
If your BOM item was of type Manufacturing and your CPQ Admin had only Sales and Installation defined in the Settings tab, that item would not be returned to the QLE.
-
Check whether the parent configurable product has the related Dynamic feature defined:
If so, also confirm that the option selection method is also dynamic:
This related feature should be automatically created when you click ServiceNow CPQ Enabled on the Configurable product, but some custom product triggers in your Salesforce org can disrupt this automation. To trigger the feature creation again, try disabling ServiceNow CPQ Enabled, saving, and then re-enabling it. Then, try to configure with that product.
(If using nested bundling, every product that has children quote line items associated with it must have this dynamic feature related to its product, not just the top-level parent Configurable Product.)
Saving does not create quote lines as expected
This usually happens when one of the fields on the child quote lines are being populated in a way that is not reflected in the CPQ configuration. This is a tricky issue to track since there isn’t a clear error.
Solution: Check to see whether the SFDC environment has any quote calculator plugin (QCP) scripts, flows, or Apex triggers acting on the quote lines.
For QCP specifically, search custom scripts. Also check whether there is a script in the Quote Calculator Plugin field (Setup > Installed packages > Salesforce CPQ > Plugin).
Review this custom script to see whether it is behaving as expected.
CPQ: “JSON string exceeds heap size limit”
This will happen if the LGK__BomData__c field contains too much data (such as a lot of quote lines or extended information) and the user tries to reconfigure the quote.
Solution: Control how many items get written with the BOM Item Limit feature. To solve, count the items in the BOM of the configuration that is causing the error. (The number of items is the number of lines in the BOM. Items are separated by “{}” in the BomData field.) Then, create a support case to set the tenant setting to half that number. If you are not using this Salesforce field, have it set to zero.
Reconfigure doesn't save selections in CPQ
An end user can save a configuration correctly and it writes to the QLE without issues. However, when the user tries to reconfigure, not all the selections are retained.
Solutions:
- Check whether this issue occurs only with a specific user or profile. Their permissions may be set incorrectly.
- Check whether the product has the related Feature Name, Configuration Attributes, and Price Books defined.
- Check whether the Blueprint uses twinning, which could be triggering a rule to clear certain selections, or has the On Configure/Reconfigure Enrichment set up incorrectly. To learn more about this issue, see Scripting: Checking for first and subsequent configurations.
Saving doesn't create child quote lines
The configurable product you are attempting to configure with may have had an issue with the CPQ enabled automation and did not create the necessary configuration attributes for reconfiguring. To reconfigure, the Configuration ID attribute must be present, as this is where the quote line references the previous configuration's UUID.
On the Configurable Product's details page, uncheck ServiceNow CPQ.io Enabled, save, then recheck and see whether the configuration attribute has been created.
Cannot access CPQ Admin from SFDC
This issue may prevent admins from working on the design and implementation of CPQ. There are many causes for this issue.
Solution:
- If this is happening for only one user:
- Confirm that they have Admin access. See User access.
- Check whether they are running into browser issues. See Common browser issues while using CPQ.
- If this is happening for a group of users:
- Confirm that their profile and permission group have the proper SFDC permissions. See What to do if receiving an Insufficient Privileges or blank screen when launching a configuration.
- Confirm that CPQ has been added to Trusted URLs in the Setup section, with iFrame enabled. While this isn't necessary in all cases, we've seen this addition help organizations with CPQ users from multiple different countries, or if they are using Subscription Manager/RLM.
- If this is happening for every user, check whether the URL is correctly entered in Custom Settings.
This is usually one of the first steps done when integrating a CPQ environment with an SFDC org. Sometimes, the user that sets it up will unintentionally set the URL as an override for a profile (the bottom box) instead of accessible for all users (the middle box).
Cannot launch a configuration
The “Insufficient Privileges” error message from Salesforce is only one of many screens a user can encounter when clicking the wrench icon in the QLE or when selecting a product after clicking Edit lines in the quote.
When this issue occurs, other issues may include seeing the Content Blocked screen (as seen in the Cannot Access CPQ Admin from SFDC issue), seeing a blank screen, or seeing an error message display.
This can happen for a variety of reasons, including problems with the same permissions that are necessary for accessing the CPQ Admin. However, this issue affects only end users of the configurator (that is, sales/partner users).
Solutions:
- If this is happening only for one Blueprint or when launching from one quote, check whether there are any errors in the Logs tab of the CPQ Admin.
If you find no errors in the logs, review Common error messages and causes. This may be due to an issue with the On Configure/Reconfigure script of the Blueprint, or with a twinned field that is expected from the quote.
- If this is happening for only one user, check whether they are experiencing browser issues. See Common browser issues while using CPQ.
- If this is happening for a group of users, check to see whether their profile and permission group have the proper SFDC permissions. See What to do if receiving an Insufficient Privileges or blank screen when launching a configuration .
- If this is happening for every user, confirm that the URL is correct in Salesforce CPQ. Navigate to Setup > Installed packages > Salesforce CPQ > Configure > Additional Settings > External Configurator URL &
Third Party Configurator.
This is usually one of the first steps done when integrating a CPQ environment with an SFDC org. The URL will usually take the form of
https://<domain-name>.<sector>.ServiceNow CPQ.io/ui/configure, but it can vary based on whether you use VisualForce pages to launch the configurator.If your URL is not in the above form, your organization should have documentation for the custom setup done for launching into the CPQ configurator.
Partner users/RFQ API sharing settings
- Pricebook
- Product Feature
- Quote
- Quote line
- Configuration Attribute
- Configuration line item
Salesforce CPQ needs access to these objects for part of our reconfigure integration to work.
Usually, you wouldn't need to edit the Sharing Settings for this object since it's created by the Integration user, but in many cases, partner users could try to reference these records during RFQ, so they will need it set to either Public Read-Only or Public Read/Write.
Salesforce platform issues
You may receive an "Error saving record" message:
Error saving record: We couldn't convert the configurable product to a static product. Ensure that the child components meet the requirements and try again.
This error can occur when you try to uncheck the LGK__IsConfigurable__c field on a Product2 record. To resolve the issue, from the Salesforce app launcher, visit the ServiceNow CPQ.io Admin Custom Settings page and enable the Skip Configurable Product Setup Trigger setting.