Salto for Salesforce CPQ

Each business application connection in Salto has a configuration file, allowing various metadata and data customization. For example, supporting a fetch of specific Salesforce CPQ configuration metadata and data.

The Salesforce CPQ configuration includes both metadata items (e.g. Custom Objects, Apex classes, Triggers) as well as data records of various object types (e.g. Product2, PriceActionc, PriceConditionc).

By default, if you selected 'I want to manage CPQ' upon connecting Salesforce to Salto, we'll manage your metadata items that belong to the SBQQ & SBAA Salesforce packages, and the relevant CPQ-related data records.


Salto ID Collisions

In some cases, during fetch, we have to omit CPQ-related data records, if they collide with other elements.
This happens because Salesforce data records are fetched without a Salesforce ID, in those cases, we generate the IDs automatically, by combining their identifying fields.
When multiple data records share the same value, for all their identifying fields - a collision happens.

To fix this, open the config file from the SETTINGS tab:


And proceed with one of the following solutions:

1. Setup Salto to Uniquely Identify the Collided Data Records

In the config file, find the section 'saltoIDSettings', and beneath it, find the name of the type of the collided data records, or create a new one if it doesn't exist.

Here is an example for the type 'Product2':


We can see that the IDs of 'Product2''s data records are generated from 'Product2''s fields: 'Name', 'ProductCode', and 'Family'.
Replace or add fields that identify its data records, for instance, 'Description'.

2. Change the Values of the Data Records in your Salesforce Account, to be Unique

In the warning about the collision, we name the fields of the collided data records that their ID is generated from, in the example above it would be 'Name', 'ProductCode', and 'Family'.

Go to your Salesforce account, and change the values of those fields, in the collided data records, making sure they are unique, for example, if the error was that Product2's 'Perpetual software license per TiB usable' was omitted, we'll change one or more of its fields: 'Name', 'ProductCode", 'Family', to make sure other data records will generate a different ID.

3. Remove the Duplicated Data Records in your Salesforce Account

If there is in fact a data records duplication in your Salesforce account, that you wish to fix, remove the duplicated data records, making sure you won't get this error every time you fetch

4. Exclude the Types of the Collided Data Records, in case you don't want to Manage them Using Salto

In case you don't want to manage those data records in Salto, you can exclude the types of the collided data records (in the example above, it would be 'Product2'), by adding their name to the exclude section in the config file, a full list of the types can be found here


Once fixed, fetch your configuration again for the changes to take effect.

Additional details about our config files can be found here