Blog by Doreen Nyeko
Doreen joined Boxfusion as a Business Application Consultant, arriving with three years previous experience at an award-wining marketing agency. She specialises in the implementation of Oracle Sales Cloud, but has gained particular strengths in projects involving both Sales Cloud and Oracle CPQ Cloud.
Oracle CPQ Cloud and Sales Cloud integration: Integration files (part three)
Posted by Doreen Nyeko on Mon, Mar 27, 2017 @ 1:33 PM
This blog post is the third in a series of technical blogs exploring a few interesting scenarios that you may come across if you decide to integrate Oracle Configure, Price and Quote (CPQ) Cloud and Oracle Sales Cloud. If you’d like to read the previous posts within this series, please click the links below:
Please note: CPQ Cloud has the ability to make and receive REST calls and Sales Cloud release 11 offers a REST API with most of the functionality of the SOAP web services. This differs from the standard integration with CPQ, which relies on SOAP (at the time of writing), therefore integration of the REST API function will require additional software.
How Web Services Work with Integration
The out-of-the-box integration between Oracle Sales Cloud and CPQ Cloud relies on CPQ Cloud sending changes back to Sales Cloud using the built-in Sales Cloud SOAP web services. For this reason, understanding Sales Cloud web services is vital for a seamless integration to CPQ Cloud. This is especially the case if you need to extend it to include information stored in custom fields in either application as part of the integration, or for any custom behaviour you need to factor in. For example, if your Opportunities or Opportunity Revenue lines have custom required fields such as Notes or Description, you can edit the integration to allow users to write descriptions on the CPQ transaction lines, then send the values from CPQ to Sales Cloud, providing the required information in both systems. This will also prevent changes to the Sales Cloud Opportunity being blocked, due to required fields not being populated.
The following is an extremely lightweight and simplified description outlining why SOAP web services play such an important part in the integration.
Sales Cloud does not actively trigger SOAP web service calls to send information to CPQ Cloud. Instead, Oracle Sales Cloud triggers SAML requests which direct users to different parts of the CPQ Cloud application. The most common places to which it will direct users are the areas for creating a new quote and editing existing quotes linked to the Opportunity. All SOAP web service calls in this integration are triggered by CPQ.
Fig 1: Simplified diagram from Oracle documentation showing flow of web service calls
CPQ Cloud can use SOAP web services to create, read, update or delete (i.e. CRUD operations) records on most objects in Sales Cloud. Oracle provides detailed documentation about the available SOAP web services in Sales Cloud via their website, which you can access by clicking here.
For each operation you will have to define a separate integration in CPQ, even if you are using two different operations from the same object web service. This is because each operation requires an individual SOAP request. Below is a summary table detailing what you require for a standard integration. However, during implementation, there is the option to define additional web service calls to other Sales Cloud objects.
These SOAP requests can be triggered to be called when certain actions or buttons are clicked in CPQ Cloud, or when CPQ Cloud transactions are opened.
Once you have defined which SOAP web services and operations will be used, you need to design the XSLT files which will dynamically build the SOAP requests. SOAP is based on XML, and for each request a packet of information written in XML needs to be generated before being sent to Sales Cloud. XSLT is used to read the values of attributes in CPQ and to map these to the SOAP XML request, in the format required by Sales Cloud. (From this point onwards you will benefit from possessing working knowledge of how to edit and manipulate XML and XSLT files and you should be comfortable with XPath.)
For integration web services, CPQ Cloud provides its transaction data in XML format. This is so that the XSLT files created for the integration can extract the information they need and transform it in to the correct format to form a SOAP request.
Below is an example of XLST script generating a SOAP request for a READ operation (getOpportunity). It pulls the value of the Opportunity ID from the CPQ transaction and uses this to build a SOAP request:
After the SOAP packet is sent to Sales Cloud, an XML response is sent back to CPQ Cloud. The information in the response packet will vary depending on the original SOAP packet sent, but it can include useful information such as the Sales Cloud IDs of newly created Revenue Lines, or values of all of the fields in the specified Opportunity. CPQ allows for XLST files to be designed to read these XML responses and save the information in CPQ attributes. For example, in the response packet from the getOpportunity operation, you can use XSLT to read the name of the Opportunity and save the value in a custom attribute on the transaction in CPQ Cloud called ‘Opportunity Name’.
CPQ will define basic default versions of the XLST transformations for each standard integration including the Parts and Account integrations, but it is highly likely that you will need to make some modifications in order for the integration to meet your specific use case.
By default, the standard integration will only pull information from the following fields from Sales Cloud to CPQ Cloud: (Opportunity) Name, PrimaryContactLastName, PrimaryContactFirstName, OptyNumber, PrimaryOrganizationId, OwnerResourcePartyId & CurrencyCode.
If you would like to view information from custom Sales Cloud fields in CPQ, or standard fields like Sales Stage, the title/salutation of the Primary Contact etc., you need to modify the integration XSLT files or in cases such as the Primary Contact title, define a new integration in CPQ using a relevant web service.
Hopefully this short post was helpful in understanding how data flows between Sales Cloud and CPQ Cloud. Please keep an eye out on the main series post, ‘Lead to Quote: An introduction to CPQ Cloud and Sales Cloud integration’, for further updates relating to this blog series.
Boxfusion Consulting boasts a deep knowledge of the Oracle CX Cloud technology (including CPQ Cloud and Sales Cloud) and offer expert advice and implementation services supported by constant engagement with Oracle’s product roadmap team. A specialised Oracle partner, particularly recognised by our skills and expertise in Cloud CX, we have deep expertise in the Oracle Sales Cloud and CPQ Cloud integration architecture and can help you implement all applications successfully with your existing systems.
If you’re interested in finding out more about Oracle CPQ Cloud features, or the benefits and opportunities that come with Oracle Service Cloud or Sales Cloud integration, call us on +44 203 283 4315 or contact us here
Leave new comments