Post-Installation
Overview
CPQ is not immediately operational after having installed the Salesforce integration package from the AppExchange. Manual parameterization tasks have to be completed before end-users will be able to create quotes using CPQ.
Connect to the CPQ Server
CPQ is an application which is composed of software components, hosted and managed by PROS. It is called from within Salesforce.com by means of external Web Services to the CPQ server.
Along with the link that allows you to download the package from AppExchange, PROS Customer Services will send you the name of CPQ server put in place for your business. External calls to this server will be permitted only after having created a new Remote Site in Salesforce.
In order to create a new Remote Site in Salesforce, log on as an administrator and navigate as follows:
- Click on Administration Setup
- Click on Security Controls in “Administration Setup”
- Click on Remote Site Settings
The All Remote Sites page now opens:
| Remote Site URL | Enter the root URL to access the CPQ server. This URL will have been sent to you previously by PROS Customer Service. https://<public name of the CPQ server> Do not mention anything else than the protocol (https) and the server name. E.g.: https://sample.proscloud.com |
After having entered all parameters, click the Save button.
Link the CPQ Quote Model
The behavior of the integration between CPQ and Salesforce.com can be customized by means of some parameters which have been created during the installation of the Salesforce integration package for CPQ.
These parameters will be managed by the Salesforce Custom Settings entity. The installation of the Salesforce integration package for CPQ will have created these parameters, but you still have to assign values to them that are appropriate for your business.
The Custom Settings for CPQ are of type “Hierarchy”, which means that the parameter values can be set for the whole Salesforce.com organization or at the most fine-grained level by user’s profile. At runtime, the lowest level parameters values will apply: if values have been entered for the current profile, they will have priority before values defined for the organization.
In order to manage the Custom Settings in Salesforce, log on as an administrator and navigate as follows:
- Click on Setup
- Click on Develop in “App Setup”
- Click on Custom Settings
The Custom Settings page now opens:
After having clicked on the Manage link for the PROS CPQ Settings entity, you will see the following page:
At this point in time, it is advised to define the Custom Settings for CPQ at Organization level. The values will thus apply for all Salesforce users working with CPQ. Specific values per profiles can still be defined afterwards.
In order to create custom settings for the whole Salesforce organization, click on the New button. You will see the following page:
On this page, you will see that some default values are already set.
The following table describes each custom setting for the Salesforce integration package for CPQ:
| LABEL | FUNCTION |
|---|---|
| CPQ Frame Height | Height of the frame embedding CPQ in the 'Content' tab |
| CPQ Mapping Set Name | The name of the PROS Mapping Set object to be used to control the synchronization process between Salesforce and CPQ. This parameter is optional and depends on your business needs (More details are provided in the following chapter: 6.2-CPQ Content parameterization (basic) ) |
| CPQ Server Url (Deprecated) | The root URL of the CPQ server (protocol + hostname). This URL is used to call CPQ from within Salesforce with Basic authentication by default. E.g.: https://sample.proscloud.com Warning: From V8.67+, this setting must be replaced by the use of Named Credentials (see below this table). |
| CPQ Auth.Password | The credentials to be provided by PROS Customer Service to authenticate into the cloud platform via Basic authentication by default. Warning: From V8.67+, this setting must be replaced by the use of Named Credentials (see below this table). |
| Language mapping policy | Specifies how the CPQ Language_ID is passed from SFDC to CPQ 1 = [The language code sent to CPQ is the Force.com user's Language] 2 = [The language code sent to CPQ is the Country code of the Force.com user's Locale] |
| CPQ Quick Action | The name of the quote model action that will be triggered when starting a CPQ session, before the quote is displayed and only when the quote is empty/has no line. This function can be used to immediately start a configuration when creating a new quote (and thus bypassing the CPQ Quote page). |
| CPQ Back Action | The name of the quote model action that will be triggered when returning from the Catalog or Configurator UI to the Quote UI. This function can be used to immediately synchronize the quote content when closing the Catalog UI session (and thus bypassing the CPQ Quote page). |
| CPQ Proposal UI Layout | Name of the CPQ layout that determines the user interface of CPQ Quote 'Proposal' tab. If empty, the 'Proposal' tab is not activated. |
| Quote Panel PRINT Tab Visibility | Defines the Quote statuses list for which the PRINT tab will be visible. Comma separated list of statuses: "Draft", "In Review", ... or "NONE" (default) or "ALL". The tab will be visible only if a "CPQ Proposal UI Layout" has been defined in Custom Settings |
| CPQ UI Layout | Name of the CPQ layout that determines the user interface of PROS Quote 'Content' tab. |
| CPQ Synchronize Action | Name of the quote model action to be called when clicking on the 'Overview Tab' when returning from the 'Content' to the 'Overview'. This action is also used when returning from the 'Proposal' tab to the 'Overview' tab or to the 'Content' tab and reverse. |
| CPQ Quote Model Name CPQ Quote Model Release | The name and release of the CPQ Quote model. A quote model is a template that defines the header fields and spreadsheet columns of a quote as well as field accessibility, functions available to the end-user, and computations available from the 'Content' tab. |
| CPQ Refresh Action | Name of the quote model action (of type StatelessExecutionMode) to be called when clicking on the 'Refresh' button |
| CPQ UI Theme (deprecated) | Name of the CPQ theme. This field should remain empty. The theme used to render the UI is the one in the layout file. |
| CPQ User Group Policy | CPQ model access rights is based on the current userGroup. This userGroup can correspond either to the SFDC profile of the user (Value 1), or the SFDC role of the user (Value 2) or a combination of both information (Value 3 – in that case the CPQ userGroup = SFDCUserProfile_SFDCUserRole) |
| Custom Apex Class Debug | Name of the Custom Apex class dedicated to debugging. |
| Custom Apex Class Mapping IN | Name of the Apex Class that is invoked (if defined) before calling CPQ Web service. This class allows to inject settings from SFDC to make them available during the CPQ session. |
| Product management policy | Specifies the way product entities are created/updated along with the opportunity line items. (This policy is only useful when an opportunity is linked to the Force.com PROS Quote – Please check here for more details : 7- Linking PROS Quote with an Opportunity ): 1 = [Re-Use Only], 2 = [Allow Creation Or Re-Use Existing] 3 = [Re-Use Existing And Update] 4 = [Re-Use (or Create if necessary) and Update] |
| CPQ Quote Screen mode | Specifies the way CPQ Content will be displayed in the browser window: 1 = [Standard (SFDC Chatter and left/top menu bar are visible)] 2 = [Full screen capability (SFDC Chatter and left/top menu bar can be hidden)] 3 = [Full screen only (SFDC Chatter and left/top menu bar are hidden, but the Content and Overview tabs are visible)] 4 = [Absolute Full Screen (SFDC Chatter and left/top menu bar are hidden, and Content and Overview tabs are hidden as well)] |
| Refresh on clone | Triggers a refresh of the quote objects, in Force.com and in CPQ, after cloning an existing quote. |
| Enable standard trigger | By default this setting is set to 'true'. It allows to disable the standard trigger and treatments launched when the content of the PROS Quote Content is synchronized with the PROS Quote 'Overview' entity. |
| Quote Panel CONTRACT Tab Visibility | Defines the Quote statuses list for which the CONTRACT tab will be visible. Comma separated list of statuses: "Draft","In Review", ... or "NONE" (default) or "ALL". The tab will be visible only if the user has a valid license for Contract module |
| OAuth Authentication (Deprecated) | Define if the authentication will be done through oAuth (Connected app). Prior to V8.68 of the managed package, this setting was set to 'false' by default and the Session ID was used as authentication method. From V8.68+, the oAuth authentication is forced whatever the value of this flag. The Oauth setup is described in the oAuth setup section of this documentation. |
| License Type | Defines the type of license to be taken into account by CPQ license monitoring module for the Web Service calls from SFDC. Possible values are: named concurrent hits (empty) – Default to named in that case This is passed as a setting in API calls (CPE.Settings.User.License) |
| License Role | Defines the role of named users to be taken into account by CPQ license monitoring module for the Web Service calls from SFDC. Possible values are: internalSales (default) internalReviewer externalPartner externalCustomer If the role is set for other "licenseType" than "named", its value is ignored. This is passed as a setting in API calls (CPE.Settings.User.LicenseRole) |
| Statuses for Content read-only mode | Defines the list of statuses for which quotes will be opened in read-only mode. Read only mode guarantees/freezes the state of the quote when it is opened: Triggers are disabled All actions that have their 'read-only' flag set to false will be hidden Values should be separated by a comma character. If empty then no status will be opened in read-only mode. Examples: Accepted, Rejected NONE ALL |
All of these parameters are assigned with a default value, except for the CPQ Server URL and Authentication Password for which you must provide one (see below).
Press the Save button to activate these Custom Settings values at organization level.
Named Credentials
The CPQ Server URL and Authentication Password do not have any default value, but since they are deprecated since V8.67+, you must declare Named Credentials instead.
Templates of Named Credentials and External Credentials are provided within the PROS managed package:
- In the Setup menu in Salesforce, navigate to Named Credentials and search for
LEGACY_CPQ:
- In the Actions drop down, click on Edit.
- Set your CPQ Server URL value in the URL field.
You then must set some settings for Basic authentication in External Credentials:
- From the Setup > Named Credentials list in Salesforce, click on the External Credentials link displayed on the LEGACY_CPQ entry:
- In the Principals section, click on Edit on the LEGACY_CPQ_PRINCIPAL row. Enter the following values:
Username is the Salesforce Organization ID.
Password is the CPQ Auth. Password value.
Finally, you must grant access to Named Credentials. All users accessing the CPQ application
UI (quote) from Salesforce must be grant access to LEGACY_CPQ Named Credentials.
By default, the PROS_LegacyCPQ_User permission set delivered with the managed package has access to LEGACY_CPQ Named Credentials.
We recommend to assign the PROS_LegacyCPQ_User permission set to all Legacy Quote users to benefit from pre-filled permissions. You can also add the LEGACY_CPQ Named Credentials to your own permission sets or profiles:
- From the Setup > Named Credentials list in Salesforce, click on the External Credentials link displayed on the LEGACY_CPQ entry:
However, granting access to LEGACY_CPQ Named Credentials is not enough to authorize end users to access quotes. If Salesforce automatically grants Create, Read, Update, and Delete rights on the UserExternalCredentials object for standard profiles, custom profiles require to be set up manually (See this article for more details). You must therefore grant CPQ end users the Read permission on the User External Credentials object.
As you cannot edit the PROS_LegacyCPQ_User permission set to set the Read property for the User External Credentials object because this permission set is "managed", it is recommended to select a permission set or profile within your organization that is dedicated to CPQ end users, or find the one that suits you most. Then, in the Object Settings section, check the Read permission for the User External Credentials object:
When trying to open a CPQ quote from the CRM, an incorrect setup will raise this kind of error message:
Read access not granted for User External Credentials object :
If this happens, go through the above steps again and retry.
Give Access to PROS Quote Entity
CPQ is accessible from a tab or as an application within the Salesforce environment.
Although the installation of the CPQ package has created all pieces needed to access CPQ, it did not associate the “PROS Quote” application to each user/profile.
Because of the fact that the usage of CPQ could be restricted to certain groups of users within your organization, you first have to identify the user profiles that will be able to access CPQ and then associate the correct access rights to these profiles.
HOW TO CREATE A STANDARD SFDC PROFILE WITH ACCESS TO PROS QUOTE
In order to manage create a new profile, log on as an administrator and navigate as follows:
- Click on Manage Users in “Administration Setup”
- Click on Profiles
- Select an existing profile and Clone it.
The Profile page now opens.
Choose a name for you profile and click on Save.
Setting the Application as Visible
On the profile, give access to the CPQ App by setting it as ‘Visible’.
You can additionally activate the PROS Quote tabs as follows:
Granting the Correct Profile Permissions
The profiles used by Salesforce users that have access to PROS Quote must allow creating the objects.
To authorize the creation of new quotes, make sure that the appropriate access rights have been set up for PROS Quote objects in the Custom Object Permission section of the profile:
Allowing the Execution of APEX Classes
The CPQ package downloaded from AppExchange includes Apex classes and Visualforce pages. Salesforce.com user profiles that will grant access to CPQ must enable execution for all Apex classes and Visualforce pages belonging to the CPQ package.
CPQ Apex classes and Visualforce pages all have a name starting with “CPQ”, which will facilitate their selection.
Hover over the Enabled Apex Class Actions shortcut and click on the Edit button:
In the following page, you will see both the Available Apex Classes as well as the Enabled Apex Classes. You should see all CPQ classes in the Available Apex Classes list. In order to authorize the execution of the CPQ APEX classes, select them and add them to the right column:
After having enabled the APEX classes, click on the Save button.
The authorization to access Visualforce pages will be also be done in the Salesforce Profile entity. In order to authorize them, hover over the Enabled Visualforce Page Access shortcut and click on the Edit button:
In the following page, you will see both the Available Visualforce Pages as well as the Enabled Visualforce Pages. You should see all CPQ classes in the Available Visualforce Pages list. In order to authorize the execution of the CPQ Visualforce Pages, select them and add them to the right column:
After having enabled the Visualforce Pages, click on the Save button. The user profile will be updated accordingly.
ACCESS RIGHTS SUMMARY
Depending on the User profile and the way Force.com PROS Quote is used in your company, we recommend to set up the following access rights:
PROS Quote Contents: As it is an internal technical entity, you must NOT allow the end-user to read/create/edit nor delete this object)
PROS Quotes Releases: The end-user must have the capability to read and edit the PROS Quote release entity. He can also have the capability to delete the release.
However, the object permissions should prevent him from creating a quote release object (New Quote releases are automatically created by the manage package when needed). Moreover, the Layout page associated to the quote release object should set all its fields in ‘Read-Only’ mode.
Additional Context: The end-user must have the capability to read and edit the PROS Additional Context entity. However, the object permissions should prevent the end-user from creating and deleting an additional context object (An Additional Context is automatically created or deleted by the manage package at the quote creation / deletion).
Access rights of other SFDC entities.
If you plan to deploy PROS Quote for various typologies of users (Internal sales, external users from a customer portal, partners, managers etc…), these users may have different access rights on the SFDC entities. For example some will have the ability to update ‘Contacts’ whereas other
ones will only be able to display or reference them.
These users will then be associated to different SFDC Profiles. That is the reason why you may need to create custom settings specific to a given profile.
Indeed, if you use the standard synchronization mechanism, PROS Quote will be able to automatically update some SFDC entities (mapping OUT) on condition that the user is allowed to update this entity. The SFDC access rights will always prevail upon the defined PROS Mapping Sets and policies.
Quote Synch & Refresh - Lightning Only
In Salesforce lightning, there is a setting that enables a cache that will prevent users from seeing the synchronized data from Smart CPQ Quote to Salesforce Quote. The data is synchronized, but it won’t be visible unless user refreshes the page.
