Generic CRMs assume a product has a price. In capital equipment it has a configuration, a delivery term, a currency, a margin the sales manager decides on the day, and a validity window. By the time you have modelled that in a generic tool, you have built a worse version of a spreadsheet with worse permissions.
Three quote types, one pipeline
Manufacturers quote at least three different things. Equipment, where configuration and lead time dominate. Spare parts, where the catalogue is long and the customer knows the part number. Repair and service, where labour and travel matter more than material.
They deserve different forms and the same pipeline. A quote that is accepted should become a deal without anyone retyping it, and the pipeline should tell you honestly which of those three lines is actually paying for the year.
Currency is a feature, not a field
Quote in euros, get paid in lira, buy some components in dollars. If the rate on the quote is not frozen at issue, nobody can tell later whether a job made money or the exchange rate did. Freezing the rate per quote, and showing the exact local-currency figure the customer will see, removes an argument that otherwise happens every quarter.
The inbox is part of the system
Enquiries arrive by email, by WhatsApp, and through the website form, usually with a photo of a worn part and no part number. Routing them by hand is where deals get lost. A structured intake that parses the message, matches the machine or part where it can, deduplicates against existing customers and opens a deal is worth more than another dashboard.
That is also the honest test of a quoting system: not how it looks when you demo it, but whether a request that arrived on a Sunday evening is still findable on Tuesday.