Architecture Overview
Architecture Diagram
- CPQ is an application which is composed of software components, hosted and managed by Conga.
- CPQ implementations are accessible through the public domain proscloud. A CPQ server can be exclusively dedicated to one customer or shared by multiple customers. Moreover, one or more public URLs are allocated to access the customer’s environments (test, production...).
- The transport layer between the user’s thin client (browser) and CPQ web application server is ensured by HTTPS protocol.
- The data exchange between Salesforce.com and CPQ web applications servers is performed through Web Services (REST / HTTPS).
- A CPQ integration bundle (refered as Managed Package) is deployed and hosted on the Salesforce.com platform. It implements several components specific to
the Salesforce.com platform (Custom buttons, Lightning components, VisualForce pages, APEX classes).
Process Flow
QUOTE INITIALIZATION:
Quote initialization is different if you use Classic or Lightning.
For Classic:
From the detail page of a CRM Smart CPQ Quote, you can edit the Quote general information or get access to the quote content, which is hosted outside Salesforce.com platform. The CPQ quote is initialized upon accessing the quote content by clicking the "Quote Content" button of the Salesforce Quote object: a call is made to a custom APEX class that performs several tasks:
- Initializes the CPQ quote session.
- Salesforce contextual data is sent to CPQ (this may be parameterized by the Smart Mapping Set object and extended via a Custom Apex Class).
- Quote is created (if it doesn't already exist).
- Steps of Sales Process are retrieved and are up to date.
- Upon clicking on the Content button, the first step ID is sent and the CPQ UI is displayed on the first Sales Process step.
For Lightning:
The CPQ Quote is created as soon as you enter the Salesforce Quote:
- Initializes the CPQ quote session.
- Salesforce contextual data is sent to CPQ (this may be parameterized by the Smart CPQ Mapping Set object and extended via a Custom Apex Class).
- Quote is created, if it doesn't already exist.
- Steps of Sales Process are retrieved and are up to date.
- Reports actions are retrieved and are up to date.
To access the Quote content, you can select a Sales Process Step. When clicking a step the UI is displayed in the selected Step.
If the quote version is not the latest one available, then the quote is migrated. A message is displayed to let you know that the quote is being migrated.
QUOTE SYNCHRONIZATION:
Synchronization is the same for Classic or Lightning.
When you are done on the CPQ side they can return to Salesforce by clicking the Close action (CloseSpreadsheet action).
CPQ makes a call to the SalesForce Web Services that fires a trigger responsible for retrieving the lines and fields from CPQ to the corresponding Salesforce objects.
PROPOSAL GENERATION
Proposal Generation is different if you use Classic or Lightning.
For Classic:
A "Generate Document" button displays a popup listing the Proposal templates defined in the Quote Model.
The selected Proposal is generated and attached in the Files section of the Quote object.
For Lightning:
On the Quote object a Salesforce component lists the available Proposal templates defined in the Quote Model.
The selected Proposal is generated and attached in the Files section of the Quote object.
Upon creating / opening a Smart CPQ Quote in Salesforce, a Lightning component of the managed package is invoked.
- Part of it, the Quote Steps component executes and perform several operations through WebService callouts to Smart CPQ public API layer:
- Smart CPQ session initialization
- Send CRM contextual values to Smart CPQ ( "Mapping IN" )
- Create or Open the Smart CPQ Quote
- Get and Display the Quote steps
- When the user clicks on one of the steps displayed, the HTML content of Smart CPQ Quote is retrieved and embedded into Salesforce content.
- Upon closing the spreadsheet in Smart CPQ, an export of the spreadsheet is triggered and Salesforce REST API is invoked to update the CRM Smart CPQ Quote record with the spreadsheet fields. The update of CRM Smart CPQ Quote record fires a trigger.
- The trigger performs one or more callouts through the CPQ Public API Apex Client, to retrieve the lines of the spreadsheet and create the Smart CPQ Quote Lines in Salesforce.
- Reports generation can be triggered from a Lightning component located underneath the Quote Steps components. A Report Action (part of CPQ model) must be chosen. The generated report will be attached in the Files section of the CRM Smart CPQ Quote.
