This is what a typical sale looks like at our company: a customer contacts a sales person, requesting a quote for a number of products. These products are comparable, differing in e.g. brand or performance. Typically the quote consists of about 4 different offerings. The quote is sent to the customer and (s)he decides which product is the best fit and orders that one.

In Salesforce this translates to: an opportunity with a number of products, and a quote with line items for those products. Currently, when the customer has picked a product, the sales person deletes all other products from the opportunity and quote and declares the opportunity to be Closed/Won.

There are a number of problems with this approach:

  1. All opportunities that are not Closed/Won appear inflated in the pipeline, with amounts 4 times as big as they should be.
  2. We lose information on which products are not chosen in a comparison by customers.

An alternative would be to mark products as being chosen (via a custom field), keeping the opportunity and quote as they are, but this would result in inflated Closed/Won opportunities and still not solve the problem of inflated opportunities in other stages.

Anyone out there who has dealt with a similar situation and found a satisfactory solution, without too many custom objects and fields?

  • 1
    You could probably alleviate the second issue by having sales create new quote records instead of deleting products of the previous quote. For the first issue though it would be hard to picture how to use standard forecasting functionality; I'm thinking you could try building some reports that look at the average value of products for each product category though.
    – martin
    Dec 15, 2016 at 9:59

3 Answers 3


I would deal with this as follows:

  • One Opportunity, initially without any line items
  • Multiple Quotes; 1 per option. Add line items to the quote
  • Sync the 'most likely quote' to the Opportunity so the forecast is "closest to reality". Sync'ing smashes any previous line items on the Opportunity.

When the customer purchases, the Opportunity stage goes to closed won. The non-chosen quotes can be used to analyze product line items not selected

Breaking the Opportunity stage closed won model is not where you want to go. An Opportunity is unitary - open - won -lost. There's too much SFDC ecosystem built around this (Collaborative Forecasting, 3rd party apps, sales lifecycles, kanban, etc.) ; don't subvert it.


It sticks in my mind that I've seen this handled by creating the Opportunities/Quotes as something along the lines of:

Option 1

Option 2

Option 3


It then gets evaluated with the value being for only one of the options. How you choose to calculate the potential opportunity (average value between the options, highest priced, lowest, etc) is up to you. But at least you then only evaluate it as a single opportunity knowing that only one option will be selected. I don't recall where I saw it or exactly how it was implemented. They may have used "bundles" to do it. I can't say for certain because it's been more than a few years ago when I was quite new and learning the basics of Salesforce.

  • Are these "Options" a custom object, and if so, would they be children of Opportunities or Opportunity Line Items?
    – martin
    Jan 24, 2017 at 0:58
  • They're OLI from a custom pricebook as near as I can recall.
    – crmprogdev
    Jan 24, 2017 at 4:20

This is the way we are (finally) going to solve this. The first problem, an inflated pipeline, is the biggest. We could have solved this before if Salesforce allowed us to edit the Opportunity Amount after products have been added to an Opportunity. But, alas, it won't let us.

So we will introduce a new currency field: Realistic Amount. This will be filled automatically by a process (on new/modified Opportunity, copy Amount to Realistic Amount if Amount has been modified). For many Opportunities, the automatically determined value will be good enough, but for the Opportunities addressed in the question, users can manually correct it.

Of course, pipeline reports and dashboards will have to use the new currency field.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .