Transforming Quote-to-Cash for a Complex Manufacturing Business
A configurable product line where nobody could say what was being sold until engineering had answered an email, and where the distributor channel was priced one deal at a time.
ManufacturingProduct and price are settled before anything is quoted, so configuration reads a catalogue that already encodes which combinations can be built and what each one costs. A quote carries its own approval, routed on the delegation of authority finance already maintains. When the order is accepted it becomes a contract and a set of assets, and that is the boundary: the bill of materials, the works order, plant scheduling and standard cost stay in the ERP, which sends cost back rather than receiving a second copy of itself. Amendments and renewals then quote against the assets the customer already owns rather than against a blank quote, which is what makes a mid-term change answerable.
Product and price setup
- Product
- Product attribute
- Option constraint
- Price book entry
- Channel price schedule
Decides what is a saleable product and what is a characteristic of one. Everything after this joins on that choice.
Configuration
- Opportunity
- Quote line
- Attribute selection
- Product rule
- Validation
The catalogue answers whether a combination can be built, so nobody has to email engineering to find out.
Quote and approval
- Quote
- Discount schedule
- Margin from ERP standard cost
- Approval process
Routed on the delegation of authority that already governs commitment, not on job titles.
Order and contract
- Order
- Order product
- Contract
- Asset
- End customer account
The commercial record of what was sold, to whom, on what terms. The end customer is held even when a distributor is the buyer.
ERP boundary
- Bill of materials
- Works order
- Plant schedule
- Standard cost
- Invoice
Crosses outward once, as the accepted order. Crosses back as cost, build status and invoice. Nothing here is rebuilt in Salesforce.
Amendment and renewal
- Amendment quote
- Asset
- Co-term date
- Service plan renewal
- Spares call-off
Quotes against what the customer owns today. This stage is what tests whether the catalogue model was right.
A worked scenario showing how we approach this problem. The architecture and decisions are our real practice; it is not an account of one named customer.
The problem, as it actually presented
The brief arrives as a speed complaint. Quoting takes too long, the competition responds faster, and the request is for a quoting tool.
Follow the delay back and it is almost never the tool. In a configurable manufacturing business the quote is slow because nobody can say what is being sold until somebody in engineering has confirmed that the combination can be built. A rep composes a specification from a base machine, a frame size, a voltage, a drive option, a control package, guarding, commissioning, a spares kit and a service plan. Then they email to ask whether that specification is valid, and whether it can be delivered in the window the customer wants.
That email is the whole problem. It exists because the catalogue does not encode compatibility, so the answer lives in the heads of three people, one of whom is usually on leave.
Around it sit the familiar symptoms. Engineering keeps the specification in one spreadsheet, sales prices it in another, and finance recalculates margin at the end from a standard cost nobody in the sales conversation had access to. Approvals route by job title, which means a regional manager who has never rejected anything is a mandatory step. Distributor deals are priced by an email to whoever owns the region, so the same machine leaves the factory at prices that cannot be explained side by side. And a customer who wants to change a specification mid-build is handled by raising a fresh order and quietly reconciling it later.
What we designed, and why
What a configurable product actually requires of the catalogue
A configurable machine is not a list of finished goods codes. It is a base product, a set of dimensions along which the buyer chooses, and a set of rules about which choices can coexist. The catalogue has to carry all three or the rules go back into people.
There are two honest ways to model the dimensions. Options can be products inside a bundle, or they can be attributes of a single product with constraints between them. Both are legitimate, both are supported, and they cost very different things over the life of the system.
The cost of modelling options as products is the one that gets underestimated. Every option that becomes a product becomes something to price in every currency and every channel, to maintain when engineering changes it, to report on, to invoice, to amend, and to reconcile against an ERP item. Do that to voltage, frame size and control package at once and the catalogue grows combinatorially, because those dimensions multiply rather than add. Nobody decides to build a catalogue of thousands of near-identical codes. It is what happens when each option is added as a product by a different person on a different Tuesday.
The test we apply to every option is deliberately narrow. It is a product if finance would ever want it as its own line on an invoice, or if delivery would ever ship, install or commission it on its own. Commissioning is a product on that test. A spares kit is a product. A service plan is a product. Voltage is not, frame size is not, and a paint finish is not, however much a rep would like to itemise them on the printed quote.
Getting it wrong in the other direction has a cost too, and it is quieter. Bury a revenue-bearing deliverable inside an attribute and finance cannot recognise it separately, cannot report on its margin, and cannot show it on an invoice. That is not a reporting inconvenience. It is a revenue treatment decided by a modelling shortcut.
Compatibility rules then go into the catalogue as constraints, each with a stated reason and an owner. A rule that says two options cannot be combined is either an engineering fact or a commercial policy, and writing down which one it is prevents the situation four years later where a catalogue is full of rules nobody dares delete because nobody remembers why they exist.
Pricing ownership, which is the question underneath the slow quote
Sort every pricing behaviour into calculated and negotiated before anybody configures anything. Price that is calculated can be automated. Price that is negotiated can be bounded, recorded, approved and made visible again at renewal, but it cannot be derived, because there is no rule behind it. There was a conversation.
In this business most of it is calculable and had simply never been written down. List price by base model and frame size, uplifts by option, term-based pricing on the service plan, volume breaks for a multi-unit order, and a published distributor schedule are all rules. Freight and commissioning are frequently estimated by a person against a site survey, which makes them bounded and recorded rather than derived. That is a small negotiated surface, and a small negotiated surface is the goal.
The harder half is ownership. When a rep asks what price to put on a configuration nobody has sold before, somebody has to be entitled to answer, and that answer has to hold. Where no one owns pricing policy, the quoting system becomes the policy by default, assembled from whichever opinion arrived first. That produces a slow quote far more often than the tooling does, which is why we treat naming the pricing owner as a design deliverable rather than as a governance formality.
The useful question is not who approves discounts. It is who can change a pricing rule and have it stay changed without convening a committee.
Discount approval that reflects real delegated authority
Approval matrices grow by accretion. Someone senior asked to be included once and the level stayed, and by the time anybody looks, half the matrix has never changed a deal.
Before designing anything, pull the approval history and count how often each level rejected or materially altered a quote. Levels with nothing to show are not controls. They are delay with a notification attached, and an implementation is the one moment when you can propose collapsing them with evidence in hand.
Then design what remains around commercial risk. Margin below a stated floor at the configuration level, non-standard commercial terms, unusual payment schedules, and any commitment that consumes plant capacity which is not available are all worth a human decision. Seniority on its own is not a risk category.
The decision that made this stick was to route on the delegation of authority the finance function already maintains. Most manufacturers have one, written for capital spend and contractual commitment, approved at board level and reviewed annually. Reusing it means the approval design is an expression of an existing control rather than a new one invented by a project, it does not have to be defended from scratch, and it stays current because somebody else already owns keeping it current.
Design the escape hatch deliberately while you are there, because there is always one. If it is not designed it gets invented, and the invented version is a phone call that leaves no record.
Amendments and renewals, which is where the model gets tested
This is where quote-to-cash in manufacturing gets genuinely hard, and it is almost always scoped last, after the catalogue that has to carry it is fixed.
The awkward cases are specific, and each one is a commercial answer rather than a configuration option. A customer changes a specification after long-lead components have been ordered. A customer adds two more units to an order already in the plant schedule and expects the price agreed on the first three. A service plan comes up for renewal while the machine warranty runs to a different date. A spares agreement is drawn against a committed annual volume the customer is not going to reach.
Each of those needs an answer before build: what price an added unit takes, whether an addition co-terminates with the existing agreement or runs its own term, how a change after materials commitment is charged, what a renewal inherits, and what happens to a committed minimum when the customer under-consumes.
We model these using real historical contracts rather than a clean new sale, because new business is the easy case and it proves nothing. Take the three most awkward amendments of the last year and quote them end to end in the design. What that surfaces are findings. The same differences found after go-live are incidents, and they arrive with a customer attached.
The distributor channel needs different pricing and different visibility
A distributor is not a customer with a discount. The commercial relationship is different, and the record has to reflect that or the service business breaks later.
Two things change. Price is derived from a published channel schedule rather than negotiated per deal, because a channel programme that is negotiated deal by deal is not a programme, it is a set of exceptions with a name. And the end customer has to be recorded even though the distributor is the buyer, because warranty, commissioning, service and spares attach to a machine at a site, not to the party that paid the invoice. A manufacturer that cannot say where its installed base physically sits has given away its aftermarket.
Visibility is the other half. A distributor sees their own opportunities and their own installed base and nothing belonging to another, which is a sharing design rather than a page layout. Where two distributors pursue the same end customer, deal registration decides who is engaged, and it decides it in a record with a date on it rather than in a regional manager's memory.
What belongs in the ERP rather than in Salesforce
The boundary is worth stating explicitly, in writing, before integration is scoped, because in its absence the project drifts into rebuilding manufacturing inside a CRM.
Salesforce holds the commercial record: what was offered, at what price, on what terms, approved by whom, and what the customer now owns. The ERP holds the manufacturing record: the bill of materials, works orders, plant scheduling, standard cost, purchasing, inventory and statutory financials. The accepted order is the crossing point outward. Cost, build status and invoice are what cross back.
We deliberately did not build a bill of materials in Salesforce. The plant already has one, it is authoritative because purchasing and costing run on it, and a second copy does not become better by sitting closer to sales. What sales needs is the commercial expression of the configuration and the standard cost that comes back against it, which is enough to show margin on a quote at the moment it is being negotiated. That is the number a rep actually needs, and it was previously produced by finance after the quote had already gone out.
Product codes stay owned by the ERP for the same reason. Reconciliation between bookings, invoices and recognised revenue happens on that identifier, and retrofitting ownership once contracts exist is a data programme rather than a configuration change.
Implementation
The sequence matters more than the components, because each decision constrains the next.
Settle the product definition first, with sales, finance and engineering in the same room. Every option is sorted into product or attribute against the stated test, and the list is signed. This is the cheapest hour of the project and the most expensive one to revisit, because everything downstream joins on it.
Then pricing policy, and the pricing owner by name. Calculated and negotiated are separated, the negotiated surface is deliberately made small, and one person is identified who can change a rule and have it hold.
Then the catalogue and the constraints, built against the signed definition rather than imported from the current price list. An import reproduces the model you already have, and the model you already have is what makes quoting slow.
Then direct quoting, one product family at a time. The family with the most volume and the fewest exceptions goes first, so a defect is attributable to one change rather than to four running together.
Then approvals against the delegation of authority, which by this point is a mapping exercise rather than a design argument, because the control already exists and has already been agreed.
Then the channel, with the schedule, the end customer relationship and the sharing model, once direct quoting is stable enough that channel behaviour can be compared against it.
Then amendments and renewals in the build, although they were modelled as a design input at the very start. Building them last is fine. Deciding them last is not.
ERP integration sits on the order boundary throughout, and is the one workstream that runs alongside rather than in sequence, because the standard cost feed is needed for margin on the quote long before the first order exists.
The decisions that were contested
Refusing to make every option a product. Sales wanted every choice itemised on the quote with its own price, because customers ask what each thing costs. The compromise was to separate presentation from the model: the quote document carries a specification section showing what has been selected, while only the options that pass the invoicing and delivery test exist as priced lines. That satisfied the customer conversation without committing the business to maintaining a catalogue that multiplies every time engineering adds a voltage.
Not rebuilding the bill of materials in Salesforce. The argument for doing it was that reps would then see everything in one place. The argument against, which won, is that two authoritative bills of materials is a worse position than one in a slightly less convenient system, and that the divergence between them would be discovered by a customer rather than by a report.
Publishing a distributor price schedule. Several regional managers preferred discretion, and discretion is genuinely useful in a negotiation. What they gave up was the ability to price the same machine differently for two distributors without being able to explain why. That conversation was not comfortable, and it is the one that turned the channel into a programme.
Removing approval levels. Every level had a person attached and none of them had asked to be removed. Evidence carried it: levels that had never changed a deal were presented with their own history, and the ones that survived were the ones that could point at something they had stopped.
What changes
The outcomes worth claiming here are operational, and they follow from the decisions rather than from effort.
| Before | After | What made the difference |
|---|---|---|
| Every option a saleable code | Options that are separately invoiced or delivered are products; the rest are attributes with constraints | A written test applied to every option, rather than a preference expressed per option |
| Compatibility known by three people | Compatibility encoded as catalogue constraints, each with a reason and an owner | The rules moved out of heads and into the object quoting already reads |
| Price set per deal by whoever answered first | Calculated price wherever a policy exists, negotiated price bounded, recorded and visible at renewal | Pricing has a named owner, and the negotiated surface was deliberately made small |
| Approvals routed by job title | Approvals routed on the delegation of authority finance already maintains | Reusing an existing, already agreed control instead of inventing a parallel one |
| Distributor deals priced by email | Channel price derived from a published schedule, end customer held on the order and the asset | The channel was modelled as a programme, and the installed base stayed the manufacturer's |
| Mid-term change raised as a new order | Amendment quoted against the assets the customer already owns, under a stated policy | Amendment behaviour was decided before the catalogue was locked, not after |
| Margin calculated by finance after the quote went out | Margin visible on the quote from ERP standard cost | The boundary was named, so one number crosses it instead of a second cost model being built |
The second-order effect is the one the sales director notices first. The conversation in a deal review changes from whether a configuration is possible to whether it is worth doing at that price, because the first question now has an answer before anybody is asked.
What we would tell you before starting
Do not start with the quoting tool. Start with the option list, printed out, in a room with sales, finance and delivery, and sort every line into product or attribute against a written test. That session decides more about the cost of the next five years than the platform choice does, and it is the part of the work that cannot be delegated to an implementation partner, ours included, because the answers are commercial rather than technical.
Then find out who owns price. If the answer is a committee, the implementation becomes the forum where pricing policy gets settled, conducted under a delivery deadline, and that is the most expensive way to hold that conversation.
And be honest about whether you need this at all. A manufacturer selling a small number of standard machines with a handful of options does not need a configuration model, and building one is cost with no offsetting benefit. The design above earns its keep when the combinations genuinely multiply, when a channel prices differently from direct, or when mid-term change is a routine part of how the business sells rather than an exception.
