Common Salesforce integration issues
Summarize
Summary of Common Salesforce Integration Issues
This guide helps ServiceNow customers troubleshoot frequent issues encountered when integrating Salesforce CPQ with external CPQ configurations. It outlines common errors, their causes, and practical solutions to ensure seamless data synchronization and configuration management between Salesforce and CPQ environments.
Show less
When facing Salesforce errors during integration, customers are advised to utilize Salesforce debug logs to pinpoint error causes and verify that all installation and setup steps for Salesforce org integrations were correctly completed.
Common Issues and Solutions
- Too Many SOQL Queries (101 limit): Occurs when configuring large BOMs with over 100 items.
Solution: Enable the "Enable Large Configurations" setting in Salesforce CPQ Package Settings to reduce governor limit errors. - Attempt to De-reference a Null Object: Often triggered by missing or inactive Pricebook entries or nested bundling conflicts.
Solution: Verify all Pricebook entries are active and present. For nested bundling issues, redesign configurations to avoid nested bundles with duplicate products or disable nested bundling via Salesforce setup and request support assistance. - Missing Configuration Line Items (CLIs) or Configuration Field Data Sets (CFDSs): These Salesforce objects are asynchronously created on saving configurations.
Solution: Ensure relevant CPQ Admin settings ("Push BOM Data to CPQ" and "Push Config Data to CPQ") are enabled and the integration user's Salesforce permissions are adequate. Investigate Salesforce Flow interviews and error logs if issues persist. - Saving Does Not Create Child Quote Lines: Happens when BOM items do not meet inclusion criteria or product sync discrepancies exist.
Solution: Confirm BOM types match CPQ Admin settings, validate product existence and sync status in Salesforce, and ensure dynamic features and option selection methods are correctly configured on configurable products. - Saving Does Not Create Quote Lines as Expected: May be caused by quote calculator plugin scripts, flows, or Apex triggers modifying quote lines incorrectly.
Solution: Review and validate any custom scripts or plugins affecting quote line processing. - JSON String Exceeds Heap Size Limit: Triggered by overly large BOM data during reconfiguration.
Solution: Use the "BOM Item Limit" feature to control item count and request tenant setting adjustment via support if necessary. - Reconfigure Does Not Save Selections: Occurs when product attributes or permissions are misconfigured or blueprint scripting clears selections.
Solution: Check user permissions, product feature and price book settings, and blueprint enrichment scripts. - Cannot Access CPQ Admin from Salesforce: Can be due to insufficient user permissions, browser issues, or improper URL/trusted site setup.
Solution: Verify admin access, Salesforce permissions, trusted URLs with iFrame enabled, and correct CPQ environment URLs in custom settings. - Cannot Launch a Configuration: End users may face insufficient privileges, blank screens, or content blocked messages.
Solution: Investigate specific blueprint errors, user permissions, browser issues, and validate the External Configurator URL in Salesforce CPQ settings.
Partner Users and RFQ API Sharing Settings
For partner users or when using RFQ APIs, ensure that certain Salesforce objects (Pricebook, Product, Feature, Quote, Quote Line, Configuration Attribute, Configuration Line Item) have Default External Access set to at least Public Read-Only or Public Read/Write under Sharing Settings. This access is necessary for proper reconfigure integration functionality.
Salesforce Platform Specific Issue
An "Error saving record" related to converting configurable products to static products may occur if the LGKIsConfigurablec field is unchecked on Product2 records.
Solution: Enable the "Skip Configurable Product Setup Trigger" setting in Logik.io Admin Custom Settings to bypass this trigger and resolve the error.
Practical Recommendations
- Always check and maintain product and pricebook data consistency between CPQ and Salesforce.
- Review Salesforce permissions and sharing settings for all users involved in CPQ configurations and quoting.
- Use Salesforce debug logs and Flow interview pages to diagnose asynchronous processing issues.
- Coordinate with ServiceNow Support via the ServiceNow Support portal to handle tenant settings adjustments and feature toggling.
- Ensure trusted URLs and iFrame settings are properly configured to avoid access and launching problems.
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 Logik 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 Logik 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 Logik.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 Logik 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 Logik 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>.logik.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 Logik.io Admin Custom Settings page and enable the Skip Configurable Product Setup Trigger setting.