CRM module in a business suite

Microsoft Dynamics 365 Sales

CRM

Every verdict, with its evidence

Core objects

In full

The application runs on Microsoft Dataverse and ships separate Opportunity, Account, Contact and activity tables, with activities (task, phone call, appointment, email and others) linked to a parent record through the Regarding field so they roll up under the opportunity, account or contact. The opportunity carries a Customer lookup that targets either an account or a contact and is business required, so an opportunity must name a customer but that customer can be a person rather than an organization; a separate Primary Contact lookup holds the individual on an account-based deal.

Source: https://learn.microsoft.com/en-us/dynamics365/sales/developer/opportunity-entities, https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunity, https://learn.microsoft.com/en-us/dynamics365/sales/manage-activities

Verification: Verified

Pipeline stages

In full

Opportunities are driven by a business process flow that presents ordered stages as chevrons across the top of the record; the shipped sales process runs Qualify, Develop, Propose and Close. The stage set is administrator-defined, with up to 30 stages in a process and up to 30 steps in a stage, and a process can be sent back to a previous stage.

Source: https://learn.microsoft.com/en-us/dynamics365/sales/create-edit-opportunity-sales, https://learn.microsoft.com/en-us/power-automate/create-business-process-flow

Verification: Verified

Status

In full

The opportunity table ships a statecode column, labeled Status, whose options are Open, Won and Lost. It sits on the opportunity itself and is independent of the business process flow stage and of the separate salesstagecode picklist, so whether the opportunity is still live is an attribute of the record.

Source: https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunity

Verification: Verified

Resolution

In part

The same statecode column carries Won and Lost as distinct values, and a statuscode column, labeled Status Reason, adds In Progress, On Hold, Won, Lost and Out of scope. The outcome is therefore held on the opportunity, not inferred from the stage it stopped in.

Source: https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunity

Verification: Verified

Scope of work

In full

Expected close date

In full

Actual close date

In full

The opportunity table ships actualclosedate, described as showing when the opportunity was closed or canceled, alongside the separate estimatedclosedate used for forecasting. Closing the opportunity automatically creates an Opportunity Close activity record holding the close date and actual revenue. The close dialog presents the close date for the user to verify and adjust, so the stamped value can be overridden.

Source: https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunity

Verification: Verified

Opportunity owner

In full

Linked buyer

In full

Customerid targets an account or a contact, and parentcontactid ships as a contact lookup.

Source: https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunity, https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunityproduct

Verification: Verified

Record preservation

In full

Microsoft states that closing an opportunity deactivates it but does not delete it, so it can be reopened later. Closed records are reachable through the Closed Opportunities view, the associated Opportunity Close activity can be reviewed afterwards, and the forecast category on the opportunity is set to Won or Lost so closed work continues to feed forecasting.

Source: https://learn.microsoft.com/en-us/dynamics365/sales/close-opportunity-won-lost-sales

Verification: Verified

Structured lost reasons

In full

The Opportunity Close table carries a Status Reason choice column (`opportunitystatuscode`) whose shipped options include Canceled and Out-Sold for a loss alongside Won, plus a Competitor lookup and a free-text description of why the deal was won or lost. Administrators can add their own status reason values against the won and lost statuses and add custom columns to the close form, so the reason is a structured, reportable field rather than a note.

Source: https://learn.microsoft.com/en-us/dynamics365/developer/reference/entities/opportunityclose, https://learn.microsoft.com/en-us/dynamics365/sales/customize-opportunity-close-experience

Verification: Verified

Email sync

In full

Server-side synchronisation connects user mailboxes to the application and, with Exchange or Exchange Online, synchronizes email in both directions without any Outlook add-in, so a seller can send from an opportunity or contact record and mail sent or received in Outlook is tracked back onto the record timeline. Incoming mail is polled on a five-minute cycle and outgoing mail queued as Pending Send is picked up on the same cycle. Gmail and Yahoo mailboxes are supported for email over POP3/SMTP or IMAP/SMTP.

Source: https://learn.microsoft.com/en-us/power-platform/admin/server-side-synchronization, https://learn.microsoft.com/en-us/dynamics365/sales/configure-email, https://learn.microsoft.com/en-us/power-platform/admin/supported-email-service-configurations-server-side-synchronization

Verification: Verified

Calendar sync

In full

Server-side synchronisation keeps appointments, contacts and tasks in sync in both directions with Exchange and Exchange Online, so the appointment activity object itself - not a date field - is mirrored to and from the user's Outlook calendar. The constraint is provider coverage: the supported configurations table records appointment, contact and task synchronisation as unsupported for Gmail and Yahoo mailboxes, which are limited to email, so an organization on Google Workspace has no documented native calendar sync.

Source: https://learn.microsoft.com/en-us/power-platform/admin/server-side-synchronization, https://learn.microsoft.com/en-us/power-platform/admin/supported-email-service-configurations-server-side-synchronization

Verification: Verified

Schedulable activity types

In full

Activities are created from inside a record - Related, then Activities, then New Activity - and shipped types cover appointment, recurring appointment, phone call, task, email, letter and fax, each with subject, start and stop times, due date and duration. Types are user-definable: a maker can create a new table with the Activity type and tick Display in Activity menus, which puts the custom type in the activity menus alongside the shipped ones, so internal operational work such as preparing a quote can be modelled as its own type.

Source: https://learn.microsoft.com/en-us/dynamics365/sales/manage-activities, https://learn.microsoft.com/en-us/power-apps/maker/data-platform/types-of-entities

Verification: Verified

Opportunity reporting

In part

Two of the three are available, and the one that is missing is missing because the data is not kept. Forecasting is shipped and purpose-built, rolling opportunity revenue into periods by a chosen date column - Est. Close Date on the opportunity in the shipped configuration - against a user or territory hierarchy and a quota, updating in near real time. An overall win rate is reachable but assembled: the shipped Deals Won vs. Deals Lost chart and the forecast grid's Won and Lost columns give counts rather than a proportion, so the buyer builds the rate, either as a 100% stacked column chart of opportunity count by status over a closed-opportunity view, where the won segment is read as a percentage of the category total, or as an average rollup column over a simple formula column that scores each opportunity 100 when won and 0 when lost, filtered to closed. Conversion between pipeline stages is not available at all. A business process flow instance stores the current active stage plus a comma-delimited text string of visited stage IDs, which no native aggregate can decompose, and there is no shipped stage-history table; the shipped funnel plots estimated revenue by pipeline phase, which is a distribution. The Power BI template apps that carried process analytics were withdrawn in May 2025 and would not count in any case.

Source: https://learn.microsoft.com/en-us/dynamics365/sales/project-accurate-revenue-sales-forecasting, https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/create-edit-system-chart, https://learn.microsoft.com/en-us/power-apps/maker/data-platform/define-rollup-fields, https://learn.microsoft.com/en-us/power-apps/maker/data-platform/formula-columns, https://learn.microsoft.com/en-us/power-automate/developer/business-process-flows-code, https://learn.microsoft.com/en-us/dynamics365/sales/sales-pipeline-chart

Verification: Verified