The B2B quote-to-cash integration guide

By HubGrubPublished 7 min read

On this page
  1. What quote-to-cash covers
  2. Where each system fits
  3. Decide who owns each piece of data
  4. Common architecture patterns
  5. Where integrations fail
  6. Custom integration or middleware?
  7. How to measure improvement
  8. Go deeper
  9. Questions

The short answer

Quote-to-cash is every step from configuring a deal to collecting payment: the CRM holds the deal, a CPQ prices and approves the quote, and the ERP turns it into an order and an invoice. Integrating it well means deciding which system owns each piece of data, connecting the systems so nobody retypes a deal, and making every failure visible.

What quote-to-cash covers

Quote-to-cash is every step between a sales rep deciding what to offer and the money arriving in your bank account:

  1. Opportunity. A deal in the CRM with the customer, the contacts and an expected value.

  2. Configure. Choosing products, quantities, options and terms that are valid together.

  3. Price. Applying list prices, discounts, currencies and any customer-specific pricing.

  4. Quote and approve. Producing the quote document, and routing discounts or unusual terms for approval.

  5. Sign. The customer accepts the quote or signs the contract.

  6. Order. The accepted quote becomes a sales order in the system that runs fulfilment and finance.

  7. Invoice. The order is billed, once or on a schedule.

  8. Collect. Payment is received and applied, and revenue is recognised.

Each step usually happens in a different system, owned by a different team. Quote-to-cash integration is the work of making those systems hand data to each other correctly, so nobody types the same deal twice.

Where each system fits

System

Typical examples

What it should own

CRM

HubSpot, Salesforce

Accounts, contacts, deals and the pipeline up to signature

CPQ

DealHub, HubSpot quotes, Salesforce CPQ

Product rules, pricing logic, discount approvals and the quote document

ERP

NetSuite and similar

Customers as billing entities, items, sales orders, fulfilment, tax

Billing and payments

The ERP's billing, or a billing tool

Invoices, payment terms, subscriptions and collections

Reporting

Power BI, HubSpot dashboards

A joined-up view across all of the above

The CRM is where a deal is born, and where sales and leadership look for status. The CPQ sits between the deal and the order: it decides what can be sold together, at what price, and who has to approve exceptions. The ERP is the system of record for anything finance needs: the legal customer, the items, the order and the invoice. Invoices and payments usually live in the ERP, with their status sent back to the CRM so sales can see whether a customer has paid.

Smaller companies often run quoting inside the CRM and invoicing in an accounting tool. That works until product rules, approvals or recurring billing outgrow it, which is usually when a dedicated CPQ and an ERP come in.

Decide who owns each piece of data

Most quote-to-cash problems are ownership problems. Before connecting anything, write down which system is the source of truth for each object, and in which direction data flows.

Data

Source of truth

Flows to

Company and contacts

CRM

CPQ (for quotes), ERP (as the customer, at order time)

Products and list prices

ERP or CPQ, never both

The other, and the CRM for reporting

Discounts and approvals

CPQ

CRM (approved quote details on the deal)

Accepted quote

CPQ

ERP (as the sales order)

Sales order, invoice, payment status

ERP

CRM (read-only, for visibility)

Two rules prevent most of the damage:

  • One owner per field. If the CRM and the ERP can both edit a customer's billing address, they will disagree within a month.

  • Store each system's ID in the others. Keep the ERP customer ID on the CRM company, and the CRM deal ID on the ERP order. Matching on names breaks the first time someone adds "Inc." to one of them.

Common architecture patterns

CRM-native quoting. Quotes are built in the CRM, for example with HubSpot quotes and products, and an accounting tool invoices from them. Simple and cheap, and right for a short product list with few approval rules.

CRM + CPQ + ERP, connected directly. A CPQ such as DealHub plugs into the CRM through its native integration, and a connector or custom integration turns accepted quotes into ERP orders. The most common setup for B2B companies with real pricing rules.

Middleware in the middle. An integration platform (iPaaS) sits between the systems, with one connection per system and the mapping logic in one place. Useful when there are many systems, or many teams changing them.

A custom integration layer. Small, purpose-built services, for example Azure Functions or a Node.js service, that listen for events (a quote accepted, an invoice paid), transform the data and call each system's API, with logging, retries and alerts. Best when the rules are specific to your business or no connector handles them well.

Most companies end up with a mix: native integrations where they exist and do the job, and custom code for the steps that are specific to how you sell.

Where integrations fail

Integrations rarely fail in an obvious way. They fail by quietly creating bad data:

  • Duplicate customers. A new ERP customer is created for every order because the integration can't find the existing one.

  • Product catalog drift. An item is renamed or repriced in one system and not the other, so orders fail or go through at the wrong price.

  • Partial syncs. The order is created but its lines aren't, or the invoice syncs but the payment doesn't.

  • Silent failures. An error is logged where nobody looks, and the problem surfaces weeks later in a month-end reconciliation.

  • Edge cases nobody mapped. Multiple currencies, subsidiaries, tax rules, amendments, renewals and cancellations.

  • Changes that break the mapping. Someone adds a required field in the ERP, and every sync after that fails.

Build every integration to fail loudly: log each run, retry what can safely be retried, and alert a named person when something can't sync, with enough detail to fix it. An integration that stops and tells you is far cheaper than one that keeps going and corrupts your data.

Custom integration or middleware?

Choose

When

A native or pre-built connector

It handles your objects and rules as they are, and you're comfortable with its limits

Middleware (iPaaS)

You connect many systems, want mappings in one place, and have someone to maintain it

Power Automate

You're in Microsoft 365 and the flows are moderate in volume and logic

Azure Functions or custom code

The logic is specific to your business, volume is high, or you need full control over errors and testing

Whatever you choose, it should live in your own accounts, be documented, and be understandable by someone other than the person who built it.

How to measure improvement

Pick measures before the project starts, record where they are today, and check them again afterwards:

  • Time from a deal being won to the order existing in the ERP.

  • Time from order to invoice.

  • How many fields people retype between systems, per deal.

  • Invoices that need correcting, and credit notes issued because of order errors.

  • Sync errors per week, and how long each one takes to notice and fix.

  • Hours spent on month-end reconciliation between the CRM and the ERP.

If the numbers don't move, the integration isn't done, however well it's built.

Go deeper

This is the work our quote-to-cash service covers, from the data model to the integrations and the reporting on top.

Questions

What is quote-to-cash?

Quote-to-cash is the process from a sales rep putting together an offer to the payment arriving: configure, price, quote, approve, sign, order, invoice and collect. In most B2B companies those steps run across a CRM, a CPQ and an ERP, so the work is in connecting them so the same deal isn't typed into each one.

What's the difference between CPQ and CRM?

A CRM tracks customers, contacts and deals through the pipeline. A CPQ decides what can be sold together, at what price and with whose approval, and produces the quote. Many CRMs include basic quoting; a separate CPQ such as DealHub earns its place when product rules, pricing or approvals get complicated.

Should we use middleware or a custom integration?

Use a pre-built connector or middleware when it handles your objects and rules as they are and someone will maintain it. Choose a custom integration, for example with Azure Functions, when the logic is specific to your business, volumes are high, or you need full control over errors and testing.

Which system should own product prices?

One system, never two. Usually the ERP owns items and list prices and syncs them to the CPQ and CRM, or the CPQ owns the pricing logic while the ERP owns the items. Prices edited in two places drift apart, and orders fail or go through at the wrong price.

More guides

  • Quote-to-cash5 min read

    How HubSpot and DealHub fit together

    When to add DealHub CPQ to HubSpot, how quotes, products and approvals flow between them, and how the accepted quote reaches your ERP.

  • Quote-to-cash4 min read

    How to connect HubSpot and NetSuite

    How to connect HubSpot and NetSuite: what each system should own, connector vs middleware vs custom integration, and turning won deals into sales orders.