Create Quotes Without a Related Opportunity

Cet article est également disponible en français

It’s been so long since we’ve been waiting for this functionality that we’ve stopped believing it would happen. Launched in pilot mode in Winter ’18, planned for GA in Spring ’21 then cancelled, it’s finally here! Starting in Summer ’23, it will be possible to create quotes without opportunities.

So you might say, great, but in any case, we’ll have to continue synchronizing with Opportunities to take advantage of a bunch of Sales-oriented features that are based on Opportunities, not on Quotes.

In short, we could say that it’s nice, but it doesn’t really serve any purpose in the end. Let’s take a look.

Use cases

#1 : the client does not work with opportunities

It may seem logical to use opportunities, but in practice, many clients do not have this concept in their business process. In everyday life, a client will ask us for a quote, we will establish it, and once it is validated, we move on to the order or directly to the invoicing.

Opportunities, however, are useful when we want to group several versions of quotes, but we must keep in mind that this concept of opportunity is far from being universally accepted by Salesforce clients.

However, there are two points to keep in mind:

  • Many Sales features are based on Opportunities, not Quotes. So it would be interesting to have a process that automatically creates a related Opportunity when the quote is accepted.
  • Creating an orphaned quote, without even indicating the related Account, should be avoided. The goal of a CRM is to establish a 360° view of accounts. It will be necessary at a minimum to link the Quote to the Account (which is also a prerequisite for implementing the automation cited in the first point).

#2: the quotes need to be reassigned to a new owner

The salesperson in charge of the quote may leave the company, and it is then necessary to reassign the quotes to the new salesperson in charge of the account or opportunity.

One of the other restrictions until today was the change of ownership (Owner).

It is important here to distinguish between the notions of visibility (master/detail) and responsibility, both of which are carried by Ownership.

#3: two quotes are confirmed for the same opportunity

Here is a classic case that illustrates the difference between theory and practice.

Let’s take the example of an insurance company that offers several products: Life, Auto, Home…

It is not uncommon for several quotes to be established under the same opportunity following discussions with the client. Whether it is a good or bad practice is debatable. But in practice, this is what happens.

The client confirms two of the proposed quotes. The first problem is that only one quote can be synchronized with an opportunity. The second problem is that the amount of the opportunity should be equal to the sum of the quotes, which is impossible due to this unique synchronization.

We are therefore forced to make a copy of the opportunity, attach a copy of the quote (potentially via automation), taking into account all child records. When the most logical thing would have been to attach the second quote to another opportunity. Which was not possible.

Activation of the feature

With this new functionality, we cover the 3 cases:

  • changing the Owner
  • changing the parent Opportunity
  • creating quotes without Opportunity

I want to point out that in the release notes, we only talk about the last point.

Note that this functionality must be activated via Setup.

Here’s a demo of the behavior before/after activation (switch subtitles to get the comments)

Improvement of the overall process

If you need to activate this feature, I advise you to consider some additional developments.

First, add the “Account for Quote” field (QuoteAccountId) and make it mandatory to maintain the link between Quote and Account.

Then, manage the different cases. If the quote is attached to an opportunity, the “Account Name” field (AccountId) will be automatically calculated, but the “Account for Quote” field (QuoteAccountId) will not be, unless done manually.

On the other hand, if the quote is not attached to the opportunity, only the “Account for Quote” field (QuoteAccountId) can be valued.

Create an automation (Flow/Trigger) to cover all cases: If AccountId is filled in, QuoteAccountId will take the same value.

Finally, create an automation (Flow/Trigger) to automatically create an opportunity when the quote is validated:

  1. Start the automation when the quote is set to Validated, it is not attached to an opportunity, and QuoteAccountId is valued.
  2. Create an opportunity, using QuoteAccountId to identify the account.
  3. Update the quote to link it to the created opportunity.
  4. Synchronize the opportunity with the linked quote.

Useful links

Release notes:

Releated Ideas:





Hey, we wanted to take a quick second to let you know that the content you’re reading on our blog is 100% our own original thoughts and opinions. We don’t just copy and paste information from other sources or regurgitate what others have said.
We take pride in crafting unique, insightful content that you won’t find anywhere else. Thanks for reading!