While writing my previous blog post Upgrading the Configurator in your Current CPQ Solution, I contemplated what a CPQ system really is. Most businesses already have many of the functions offered by a CPQ system within their CRM system.
CPQ systems typically have features to manage customers, opportunities, quotations, and workflows to manage different selling scenarios. However, these items are already mastered and well-managed in your CRM! By simply adding the missing capability of a great configurator to your CRM, you reduce the risk of data and feature duplicates that need synchronizations and potentially large integration projects.
There are many CRM systems available on the market, such as Salesforce, Dynamics 365, Pipedrive, and HubSpot. In this post I will mostly focus on HubSpot since I had a developer account readily available, but the reasoning and possibilities will be similar across most CRM vendors.
When looking in the HubSpot App Marketplace I found 22 apps when searching for CPQ. A common denominator between these apps is that they try to streamline the quote to billing process in different ways by adding contract management, price list management, etc. to HubSpot. All of these were lightweights on the Configurator side of things - and that's what I wanted to explore. – How can we add a much more potent Configurator to create CPQ functionality in CRM, to enable the most complex products to be configured in an integrated approach utilizing existing solutions for customer and opportunity management?
Adding a headless configurator to your CRM platform |
I decided to build a proof of concept. If I could do it with a headless configurator, it would allow for creating a configurator with the same look and feel as the CRM in question – the sales rep can stay on home turf.
In this PoC I am using PALMA Configurator – it is headless, built with open REST APIs, and can execute the most complex configuration problems. Here’s how I did it.
How to Integrate a Configurator in CRM to create a CPQ solution
Step 1: Creating an interface for the headless configurator
The first thing I needed to do was to create an interface for the headless configurator. I used the standard MVC pattern, creating a webapp with a backend connecting to the configurator to create a configuration state and a frontend rendering the user interface as a web page.
This setup allows the frontend to be set up to mimic the look and feel of the desired CRM application as closely as possible. It will also allow for the addition of other front-end components later on, e.g. a 3D visualization.
|
![]()
|
Step 2: Designing the configuration model
The first decision was to use a PALMA Composer module system that describes a robotic lawn mower. PALMA Composer allows the user to build, test and evaluate configuration logic and govern the product architecture. In this proof of concept CPQ, the flow of information is that the configurator creates a bill of material, and that each item in the BoM is added as a line item on a deal in CRM.
To be able to price the offering based on the result of the configuration, all the items that may end up in the BoM need to be added to the product catalog of the CRM. In this case I added them manually to HubSpot by export and import. This could of course be automated and synchronized over time for new releases of the configuration model.
![]()
The configuration model is transferred from the design tool to the headless configurator, and the library of possible BoM items to the CRM |
Step 3: Storing the configuration result in CRM
Most CRM platforms offer APIs for adding products to a specific deal (a.k.a. opportunity). Since I wanted to add products to an existing opportunity I needed to know the id of the deal. By creating a hyperlink in HubSpot, including the Record ID of the deal, I could transfer this simple but critical piece of information to the web app. Having the ID also opens possibilities to include other CRM data that may be relevant for sales configuration, e.g. customer type, segment, market, etc.
![]() A button added to the deal card in Hubspot to launch the Configurator Web App |
I added functionality to the web app to store the configuration result (list of items) in the CRM when the user was happy with the configuration.
![]() The frontend is shown inside Hubspot CRM to let the user configure in the usual sales environment, the backend adds the BoM to a deal, referring to items in the product catalogue. |
The user can now create a deal in CRM, open the web app inside CRM to add a configured product to the deal. Once the configuration has been transferred to CRM, the user can follow the normal flow to add discounts, terms & conditions, and generate a quote. In short, a complete Configure-Price-Quote (CPQ) system, inside the existing CRM environment.
![]() Once the user has added the configuration from the frontend, pricing is managed in the CRM system to generate a quotation. |
Conclusions
I managed to add a configurator to a CRM system to add CPQ capabilities without altering the current CRM workflow. Still maintaining current discount rules, price calculations and approvals, as well as quotation generation and management. By using systems that are designed to be composable, I could increase the functionality of the CRM in a major way. This could be an attractive path for businesses that already have well-functioning processes and systems for CRM but wants to add CPQ capabilities. The composable approach demonstrated in this blog ensures that we don’t add redundant features to the enterprise landscape, which is often the case when implementing off-the-shelf CPQ solutions.
Possible improvements
In this solution I opted to use the product catalogue in the CRM system as the basis for pricing. Another solution could be to calculate the price in the configurator based on cost for the different items, prices for the different items, or by using value-based pricing from the configuration result, still modeling the discount rules within CRM. There are multiple possibilities here based on your specific needs.
Other possible improvements are to add visualization of different types, or to add more automation to CRM to manage the workflow when a configuration has been added to a deal.
If you want to talk more about how to add the most powerful configurator functionality to your CRM or other applications, feel free to reach out to me!
AUTHOR
Henrik Flordal