Almanac
Microsoft/d365salesDynamics 365

Consultant-focused KB for Microsoft Dynamics 365 Sales: implementation notes, gotchas, and configuration decisions beyond the official docs — across pipeline management, opportunities, forecasting, sequences, sales accelerator, Copilot, integrations, administration, and licensing.

feature-opportunity-close.mdv1 · history
CurrentApplies to AllUpdated 6 days agoSource Microsoft Learn

What it does

Closing an opportunity as won or lost sets its status, writes an Opportunity Close activity holding the closure detail, and updates the forecast category to Won or Lost. Closed opportunities can be reopened from the Closed Opportunities view.

Key facts

  • Close as Won and Close as Lost are separate commands on the opportunity. Both open the close dialog, which captures Actual Revenue, Close Date, Competitor and Description, plus any custom fields an administrator has added.
  • Any quotes on the opportunity need to be in a Closed state before the opportunity closes cleanly.
  • The closure detail lives on an Opportunity Close activity, not on the opportunity itself. To read it back later: Related > Activities, switch to the Closed Activity Associated View, open the Opportunity Close record.
  • Forecast Category is set automatically to Won or Lost by the close, matching the command used.
  • Reopen Opportunity is available from the Closed Opportunities view and returns the record to Open.
  • Customising the close form is gated behind a setting: App Settings > General Settings > Lead + Opportunity management > Opportunity Closing > Custom fields on closing form, set to Yes. System administrator role required, and it's Unified Interface only.
  • Once enabled, you add custom columns to the Opportunity Close table and place them on both its quick create form (the dialog sellers see) and its main form (how the record is read back later). Out-of-the-box fields and relationships on that table can't be deleted or customised.
  • Creating an Opportunity Close record automatically closes the related opportunity. That's the mechanism, and it matters for anything you automate.
  • The three statuses — Open, Won, Lost — are fixed. Status reasons under Won and Lost can be extended.
  • Custom status reasons must be added in two places: to Status Reason on the Opportunity table, and manually to the opportunitystatuscode column on the Opportunity Close table. There are two status-reason columns on Opportunity Close (statuscode and opportunitystatuscode); custom win/loss reasons go on opportunitystatuscode.
  • Pre-populating close fields from the opportunity is done through the mappings on the Opportunity_OpportunityClose one-to-many relationship. Anything sourced from another table needs a plug-in or client script.

When to use / skip

Every implementation closes opportunities, so the real question is whether to turn on close-form customisation. Turn it on when the client wants structured loss reasons, competitor detail, or margin captured at closure — which is nearly every client with a sales manager who reports upward.

Skip it when the client only needs won/lost and a value. The out-of-the-box dialog already captures revenue, date, competitor and a description, and adding fields to the close dialog is a tax on sellers at the exact moment they've stopped caring about the deal.

Be sceptical of long loss-reason picklists. Twelve options produce eleven percent "Other" and no insight. Four or five that map to actions the business can take are worth more than a taxonomy.

Configuration decisions

  • Whether to enable Custom fields on closing form at all, and which fields genuinely earn their place in a dialog a seller sees at the end of a deal.
  • The list of win and loss status reasons, and whether they're mandatory. Remember they have to be maintained on both the Opportunity and Opportunity Close tables.
  • Which close fields pre-populate from the opportunity via relationship mappings, and which the seller must type.
  • Whether Actual Revenue defaults from Estimated Revenue or from the product line total, and whether sellers can overwrite it.
  • Whether reopening is allowed, and for whom. It's a command that can be removed by role if the finance team needs closed to mean closed.
  • What happens to the linked quotes, orders and any downstream records on close — whether that's manual discipline or automated.

Gotchas

  • The two status-reason columns on Opportunity Close catch nearly everyone. Add a custom reason only to statuscode and the seller's dialog won't show it; the preselected value comes from opportunitystatuscode.
  • Because creating an Opportunity Close record closes the opportunity, a Power Automate flow or plug-in that creates one "just to log something" will close deals. This surfaces in UAT as opportunities mysteriously going Won.
  • Custom fields on the quick create form and the main form are separate placements. Put them only on quick create and the data is captured but invisible when anyone tries to review it later.
  • Close-form customisation is Unified Interface only, and if the client uses a custom app the Opportunity Close table has to be added to that app module or the dialog behaves unexpectedly.
  • Reopening does not clear Actual Revenue, Close Date or the Opportunity Close activity. You get a reopened deal carrying stale closure data, and forecast reports that count it twice unless they filter properly.
  • Making close fields mandatory on the quick create form gives sellers a hard stop at the worst moment. Expect workaround behaviour — deals left open indefinitely rather than closed as lost.
  • Deleting an out-of-the-box field from Opportunity Close isn't supported, so if the client hates the Competitor field the answer is to remove it from the form, not the table.

Consultant notes

  • Demo the close dialog with the client's own loss reasons in it. It's a thirty-second demo that decides whether their loss analysis is real or a spreadsheet.
  • Tell the client plainly that close data quality depends on making the dialog short. Trade one mandatory field for three optional ones every time.
  • Check reopen behaviour against their forecast and reporting before go-live — reopened deals with retained actual revenue are the classic source of "our numbers don't add up".
  • If they're automating anything that touches Opportunity Close, walk the team through the auto-close behaviour explicitly. It's not obvious from the table name.
  • Agree who is allowed to close as won. On commission-driven teams that's a governance question, not a configuration one, but it lands in your backlog either way.

Worth another look if loss reasons get reworked, or if anyone starts automating opportunity closure.

Was this accurate?