Home/Resources/Architecture
Architecture11 min read

Quote-to-Cash on Salesforce: the complete architecture.

Nine stages, four systems, one set of numbers that must agree. Where configure, price, quote, contract, order, fulfil, invoice, collect and renew each live on the platform — and where the boundaries with order management, Billing and the ERP belong.

AJ Aleš Jeník — Salesforce Enterprise Architect · 12+ years building revenue systems on Salesforce · Clouderia
Key takeaways
  • Quote-to-cash is a loop, not a pipeline: renewal re-enters at configure, so every stage must run on data the previous stage actually produced.
  • The Order object is the backbone — the contract between the commercial front half (CPQ or Revenue Cloud) and the operational back half (fulfilment, billing, ERP).
  • Master each dataset in exactly one system: catalog and prices in Salesforce, financial ledger in the ERP, and exactly one invoice master.
  • Move status with events and money with idempotent, ID-carrying interfaces; a quote line ID should be traceable to a payment application.
  • Reconciliation is an architectural deliverable — daily automated checks of booked vs ordered vs invoiced vs collected, not a month-end spreadsheet.

What quote-to-cash actually covers

Quote-to-cash (Q2C) is the full commercial loop of a company: configure a product, price it, quote it, contract it, order it, fulfil it, invoice it, collect the cash, and renew. Nine stages, and the defining property is that they form a cycle — the renewal at the end is a new configure-price-quote at the beginning, computed from what the customer actually owns after every mid-term change.

It is worth being precise about scope, because adjacent terms get used interchangeably. Order-to-cash is the operational back half of the loop, from confirmed order to applied payment — we cover that slice in detail in our order-to-cash reference architecture. Revenue Lifecycle Management is Salesforce's product suite for running most of the loop natively — explained here. Quote-to-cash is the business process; the products are how you implement it.

No single system owns all nine stages in a real enterprise. The recurring architecture question is not "which product does Q2C" but where the seams go — and the seams, not the stages, are where implementations fail.

One process, four systems

The reference shape we start from: Salesforce owns the commercial stages, an order management and orchestration layer owns fulfilment, a billing engine owns invoicing and collection mechanics, and the ERP owns the financial ledger underneath all of it.

Configure Price Quote Contract Order Fulfil Invoice Collect Renew amend · renew — back to configure CPQ / Revenue Cloud catalog · pricing · quotes · contracts · assets Order management orchestration · fulfilment Billing invoices · payments · dunning invoice + payment feed accounts · tax · master data ERP — financial ledger general ledger · revenue recognition · statutory reporting one order backbone · IDs survive end to end · reconcile daily

Whether "CPQ / Revenue Cloud" means the Salesforce CPQ and Billing managed packages or the newer platform-native RLM suite changes the internal seams — fewer of them with RLM — but not the external ones. Our Revenue Cloud services page covers that product decision; this article is about the process architecture either way.

The nine stages and where each lives

1. Configure

Product selection and configuration runs against the catalog: bundles, options and constraint rules in Salesforce CPQ, or Product Catalog Management plus the Product Configurator in Revenue Cloud, where attributes and cardinality rules carry the structure. The design rule that outlasts any tool: model what the customer buys, not how engineering fulfils it. Technical decomposition belongs downstream in orchestration, and mixing the two is how catalogs rot.

2. Price

Pricing lives with the catalog — CPQ's calculator and price rules, or Salesforce Pricing procedures and the price waterfall in Revenue Cloud. Keep one pricing engine authoritative for every channel; the moment a storefront or the ERP starts computing its own discounts, drift begins. The messy reality of tiered discounts, approvals and deal-desk exceptions is its own topic — see CPQ pricing in real-world deals.

3. Quote

The quote is a versioned proposal: quote lines, generated documents, approval history. It lives on the Quote object with approvals in Advanced Approvals or Flow. Treat quotes as disposable negotiation artifacts, never as the record of what a customer owns — that job belongs to contracts and assets. Systems that report entitlement from won quotes drift from reality on the first amendment.

4. Contract

Signature converts the proposal into obligations: the Contract object, e-signature integration, and — in subscription businesses — the contract and asset base that says what the customer holds, at what price, until when. In Revenue Cloud this is asset-centric: orders decompose into assets, and amend, renew and cancel operate on them. That inversion is the biggest structural difference from the CPQ era, covered in our RLM deep dive.

5. Order

The order is the handoff from commercial to operational — the point where "what we sold" becomes "what we must do". On the platform that is Order and OrderItem, created from the contracted quote. This is the backbone object of the whole architecture: every downstream system should transact against orders, and only orders. Fulfilment driven from opportunities, or invoices generated from quotes, means two versions of the truth by the second week of operation.

6. Fulfil

Fulfilment is orchestration: decompose order lines into provisioning, shipping or activation tasks, run them across internal and external systems, and write status back to the order. Simple cases fit Flow or Apex orchestration on the Order object; high-volume commerce fits Salesforce Order Management; complex decomposition across many systems justifies a dedicated orchestration layer. The hardest version of this problem — partial fulfilment, in-flight change, rollback — is dissected in our telco order orchestration article.

7. Invoice

Invoicing turns fulfilled and scheduled obligations into billing documents: Salesforce Billing in the CPQ stack, native invoicing in Revenue Cloud, or the ERP's billing module. The architectural decision is not which engine is best but which one is the invoice master. The pattern that survives audits: operational invoicing in Salesforce, generated from orders and billing schedules where sales and service can see it, with the ERP consuming an invoice feed into the ledger it owns.

8. Collect

Collection spans payment capture, cash application and dunning. Payment gateways and AR mechanics often live in the ERP or a payments provider, but collection state must be visible in Salesforce — a service agent renewing a customer needs to know there are three unpaid invoices. This is where we deploy our own products: CollectiPro runs structured, escalating dunning inside Salesforce, and TransactionHub pulls bank transactions through banking APIs and matches them to the right records automatically — see our products.

9. Renew

Renewal closes the loop. A renewal quote must be generated from current asset or contract state — reflecting every mid-term amendment — and priced by the same engine as the original deal, with uplift policy as explicit pricing logic rather than a rep's habit. If renewals start from a report and a manually cloned quote, the loop is broken and revenue leaks through the gap between what was amended and what gets renewed.

Data flow between CPQ/Revenue Cloud, OMS, Billing and the ERP

Four flows keep the loop coherent, and each has a failure mode worth designing against.

  • Master data down. Products and prices are mastered once, in the catalog, and distributed to every selling channel. Accounts need explicit survivorship rules between CRM and ERP — customer created where, enriched where, merged how. Tax logic belongs in one engine invoked by whichever system rates the document.
  • Transactions forward. Quote line to order item to fulfilment line to invoice line to payment application — every hop carries the upstream identifier. Interfaces must be idempotent, because retries happen; an order interface that creates duplicates on retry will eventually double-bill someone.
  • Status back. Fulfilment and payment status flow back onto the order and account, preferably as events — Platform Events or Change Data Capture — rather than polling or nightly sync. Status is high-frequency and low-risk; it suits eventual consistency.
  • Money to the ledger. Financial postings to the ERP are the opposite: lower frequency, zero tolerance for loss or duplication. Batch interfaces with control totals and explicit acknowledgement beat fire-and-forget events here. Choose line-level invoice feeds when the ERP needs drill-down, summarized journals when it only needs balances — and record the choice, because it determines what reconciliation can prove.

The general rule: match the integration style to the data's tolerance for delay and duplication, not to whatever middleware is fashionable. Events for status, idempotent request-reply for transactions, controlled batch for money.

Common architecture mistakes

  • Re-implemented pricing. The same discount logic hand-copied into CPQ, the e-commerce storefront and the ERP. The three versions agree on day one and never again. Expose one pricing service to every channel instead.
  • No order backbone. Billing fed from quotes, fulfilment fed from opportunities, renewals fed from reports. Without a single order spine, every downstream system holds a different version of the sale.
  • Forked catalogs. A separate product catalog per channel, reconciled by spreadsheet. Every quote-to-cash defect eventually traces back to two catalogs that disagree about the same product.
  • Point-to-point field sync. Mutable records mirrored between systems with bidirectional sync instead of events carrying stable IDs. It works until two updates cross mid-flight, then nobody can say which system is right.
  • The ERP boundary decided during UAT. Who masters the invoice, where tax is computed and what posts to the ledger are day-one design decisions. Discovered late, they force rework in the most change-averse system in the company.
  • Renewal as an afterthought. The front of the funnel gets the budget; renewal gets a report and manual quoting. In a subscription business that is most of the revenue running on the weakest process.
  • Reconciliation deferred to finance. If the architecture does not carry IDs end to end and emit control totals, finance cannot reconcile it — they can only approximate it, monthly, in a spreadsheet.

Reconciliation: proving the numbers agree

A quote-to-cash architecture is finished when it can prove, daily and automatically, that four numbers agree: what was booked (contracted orders), what was fulfilled, what was invoiced, and what was collected. Each comparison is a scheduled job over ID-linked records, and every mismatch lands in an exception queue with an owner and an ageing clock — not in an email thread.

The last mile is cash application: matching bank statement lines to open invoices, with partial payments, missing references and bundled transfers. We productized that problem — TransactionHub reads transactions from banking APIs and matches them to Salesforce records so reconciliation closes itself — and wrote up the underlying patterns in bank feed reconciliation on Salesforce. Between Salesforce and the ERP, reconcile with control totals per interface run: documents sent, documents acknowledged, sums equal. When an auditor asks why the CRM and the ledger differ, "here is last night's exception report, and here are the three open items" is the only good answer.

Clouderia has been building revenue systems on Salesforce since 2010 — CPQ and Revenue Cloud implementations, order orchestration, billing and ERP integrations — with 46 certified experts across Provo and Prague, in industries where the loop is genuinely hard: telco, financial services, insurance, SaaS and automotive. The consistent lesson is that quote-to-cash fails at the seams, and the seams are an engineering problem, not a licensing one.

Frequently asked questions

What is the difference between quote-to-cash and order-to-cash?

Quote-to-cash is the wider loop: it starts when a rep or a customer configures a product and ends when the renewal is signed. Order-to-cash is the operational back half — everything from a confirmed order through fulfilment, invoicing and payment. If your problem is deal shaping and pricing, you are in quote-to-cash territory; if it is fulfilment reliability and cash collection, start with order-to-cash.

Do we need a separate order management system, or is the Salesforce Order object enough?

It depends on fulfilment complexity. If an order maps to a handful of provisioning steps in one or two systems, the Order object plus Flow or Apex orchestration is usually enough. When orders decompose into many fulfilment lines across warehouses, carriers or network systems — retail and telco are the classic cases — a dedicated order management and orchestration layer earns its place.

Should invoicing run in Salesforce or in the ERP?

Decide it explicitly, then enforce it. The common pattern is operational invoicing in Salesforce — generated from orders and billing schedules, visible to sales and service — with the ERP as the financial ledger that owns the general ledger, tax filings and revenue recognition. Exactly one system must be the invoice master; the other consumes a feed. Splitting invoice ownership by product line or region is where reconciliation problems start.

How does Revenue Cloud change the quote-to-cash architecture compared to CPQ plus Billing?

It removes seams. CPQ and Billing are separate managed packages joined through order products, so quote-to-cash crosses package boundaries inside your own org. Revenue Cloud's RLM suite runs catalog, pricing, quoting, orders, assets and invoicing on standard platform objects with one pricing engine, so amendments and renewals reuse the same logic that priced the original deal. The external boundaries — order orchestration, ERP, payments — remain and still need deliberate design.

What does good quote-to-cash reconciliation look like?

Automated, daily and boring. Carry stable identifiers from quote line to order item to invoice line to payment application, then run scheduled checks that compare booked, ordered, invoiced and collected totals and push every mismatch into an exception queue with an owner. If reconciliation is a spreadsheet someone builds at month-end, the architecture is incomplete.

Related reading

Salesforce Revenue Cloud servicesHow Clouderia designs and delivers Revenue Cloud implementations. Order-to-cash on SalesforceThe reference architecture from order capture to reconciliation. Revenue Lifecycle Management, explainedWhat RLM spans from catalog to renewal and how the price waterfall works. Order orchestration for telcoDecomposition, partial fulfilment and in-flight change at scale. CPQ pricing in real-world dealsDiscount stacking, approvals and the failure modes of quote-time pricing.
Designing your quote-to-cash architecture?

Bring the hard part to a senior Salesforce engineering team.

Talk to the builders about Q2C