Hack #7: How to move from Opportunities to Quotes and generate the estimated profit margin?

Applies To: Project Operations for resource/non-stocked based scenarios, Lite deployment – deal to proforma invoicing. If you don’t know what these are check here and here.

Opportunities in Dynamics 365 Project Operations offer a very simple workflow.

In a nutshell: A Lead Qualified becomes an Opportunity and an Opportunity Closed as Won becomes a Contract!

Opportunities are a step before a Quote is generated and created against an Opportunity and hopefully a Project. The ‘linking’ of a project to a quote is optional but it gives you benefits. Opportunities are ALL about: Opportunity Lines. They are great for reporting and pipelining deals, but that is all they give you really.

Note that by selecting the Customer Budget and Billing Method it won’t really lock this information downstream from changing these values, so, as I write about these, they only help you track your Opportunities for reporting on them:

Now, without a Quote, the system will not provide some key numbers such as Estimated Profit. Without estimated profit it is harder to tell what was estimated vs the real profit later on unless you build your own configuration on top of the OOTB application or do the math manually, or have Power BI do that for you.

In Dynamics Project Operations the word Actual means real financial numbers that only show after someone (usually the PM on the Project), approves them (if they are not approved the numbers on actuals won’t change!). So, an Actual is a real number that gets compared against an estimation or budget. Whatever the terminology you use they mean Estimated vs Actuals.

Obviously, you can build whatever you want, since we are talking about the Microsoft Power Platform here, but as far as this post is concerned we are trying to leverage what’s OOTB as much as possible!

You can only move to the proposed state (in the BPF aka: Business Process Flow) if you Create a Quote for said Opportunity:

Also, you cannot create a Quote if the account field is not populated! You need a client for a quote after all:

The OOTB behaviour after you Close a QUOTE as Won is to keep that Opportunity still opened! You either close it ‘manually’ or use a Power Automate Flow to change the status after its related Quote changes status.

To ease your pain, I summarise this process as:

  1. Start by building a Lead on a customer (and slap a SALES price list at the Account level to avoid issues)
  2. Qualify the Lead to become an Opportunity
  3. Create a Project by building on Tasks/WBS for estimation/sales purposes
  4. Link the Project with a Quote and get the estimated profit margin generated
  5. Close the Quote as Won and it becomes a contract

Now, your project gets to start, and you have locked-in your estimated profit and budget for the project.

The great news is that this process will be updated soon: https://learn.microsoft.com/en-us/power-platform-release-plan/2022wave2/

You can check page 228 of the Dynamics 365: 2022 release wave 2 plan for more details in the link above.

Microsoft official documentation:

Docs: https://learn.microsoft.com/en-us/dynamics365/project-operations/sales/manage-project-based-opportunities

Project interface: https://learn.microsoft.com/en-us/dynamics365/project-operations/sales/link-quotes-opportunities

For the next post I will provide details on how to work with Quotes.

Thank you and see you next time with more Dynamics 365 Project Operations tricks!