Engineering a Unified CPQ Layer to Bridge ConnectWise MSP and eLation ISP Catalogs
A $500M+ telecom provider found that native CRM syncing couldn't pass MSP CPQ line items. We engineered a custom API callback layer that bridges the ConnectWise and eLation ERP catalogs and injects unified product data into HubSpot Deals. Quote-to-cash sped up, and the manual double entry stopped.
Executive Summary
Context
A $500M+ telecom provider sells both ISP and MSP services. It couldn't generate unified quotes, because its product data was split across two incompatible systems, eLation and ConnectWise.
What We Built
We built a custom API callback layer that bridges ConnectWise CPQ and HubSpot. It automates line-item injection for unified quoting.
Tech Stack
- ConnectWise
- eLation ERP
- HubSpot Sales Enterprise
- Custom API Layer (Node.js/Make)
Not a fit for organizations with simple, single-catalog product lists or those not already using ConnectWise as their MSP source of truth.
The Challenge
The provider sells ISP fiber, managed in eLation, alongside MSP hardware and services, managed in ConnectWise, and no single system held the complete price of a customer. Standard HubSpot DataSync mapped the Opportunities across, but the line items stayed locked in ConnectWise. A rep quoting a bundled deal either generated two separate quotes or copied SKUs across by hand. Pricing errors were frequent, the customer saw a disjointed proposal.
We tried the native sync first and confirmed the limit the hard way. It was not built for the line-item granularity an MSP quote requires.
Our Approach
Rather than keep forcing the native sync to do something it was not designed for, we architected an event-driven callback system. A HubSpot Deal Stage, MSP Ready for Quote, is the trigger. When a deal reaches that stage, our API layer creates the corresponding Opportunity in ConnectWise. The rep builds out the hardware and services in ConnectWise CPQ, and saving the quote fires a callback to our API.
The API then requests the specific line items from ConnectWise and injects them into the HubSpot Deal, overwriting any placeholders. A single HubSpot Deal now holds the total contract value across both catalogs.
This engagement is part of our systems integration work for telecommunications & media organisations.
Impact
Accelerated Quote-to-Cash Cycle
We eliminated the manual double-entry of product line items between systems. That cut quote generation time from hours to minutes. Reps now spend their time selling instead of auditing SKU lists.
Quote Pricing Matches the ConnectWise Source
The custom API injection keeps the hardware pricing and MSP service fees in the HubSpot Quote as an exact match of the ConnectWise source. That erased the 5-10% error rate from manual data entry.
Unified Customer Signature Experience
A single HubSpot quote template now holds every line item, ISP and MSP alike, with the SOWs embedded. The customer signs just one document, which lowers friction for multi-service deals.
Automated Downstream Fulfillment
Once the unified quote is signed, the "Closed-Won" trigger in HubSpot fires. It sends order data to eLation and updates the ConnectWise Opportunity at the same time. Fulfillment teams in both departments get accurate data instantly.
We built a custom middleware listener. It monitors ConnectWise for "Quote Completed" events. When that event fires, the listener matches the ConnectWise Opportunity ID to the HubSpot Deal ID and starts the data push.
The integration uses the HubSpot CRM API. It clears existing line items on a deal automatically. Then it replaces them with the detailed product set retrieved from the ConnectWise CPQ callback, keeping SKU and pricing parity intact.
We mapped HubSpot Deal Stages to ConnectWise Opportunity Statuses. A move in HubSpot's pipeline then triggers the API calls needed to keep the MSP project and ISP order in sync, without manual intervention.
We customized HubSpot quote templates to pull in the ConnectWise-derived line items dynamically. They also embed standardized Statements of Work (SOWs). That gave legal and technical compliance within a single sales document.
The native HubSpot DataSync used to map Opportunities across but leave the line items in ConnectWise. Reps made two quotes or copied SKUs by hand. Now the deal stage "MSP Ready for Quote" creates the Opportunity in ConnectWise, and saving the quote in ConnectWise CPQ fires a callback to our API. The API pulls the line items into the HubSpot Deal, so one deal holds the total contract value across both catalogs.
FAQ
Native sync mapped the opportunities but left the line items locked in ConnectWise, because it wasn't built for the granularity an MSP catalog requires. Reps ended up generating two quotes or copy-pasting SKUs, which drove a 5-10% pricing error rate. We built an event-driven callback instead, so the detailed line items get pulled into the HubSpot deal rather than stranded.