Copilot for Sales architecture

Completed

Before we dive into how to deploy and configure Microsoft 365 Copilot for Sales to fit your organizational needs, it's important to have a high-level understanding of the architecture that is behind how the application works.

The following image highlights the high-level architecture.

Diagram of the admin, client, service, and data/AI layers in the architecture.

You can see that there are four layers involved in the maintenance and deployment of Copilot for Sales.

  • Admin layer: Layer for administrating and managing the apps that are used as part of Copilot for Sales.

  • Client layer: This layer represents the user clients that are used to deliver Copilot for Sales Functionality to users.

  • Service layer: This layer represents the different services that are used to deliver and communicate, and provides different services interfaces.

  • Data/AI layer: This layer includes the data that is used by Copilot for Sales to provide functionality.

Admin layer

First, let's examine the Admin layer. This layer is really referring to the administrative experiences that are used to administrate and deploy the applications and clients that are used by the end users. There are two primary administrative options.

  • Microsoft Teams admin center: This is where you can deploy the Copilot for Sales Microsoft Teams app.

  • Microsoft Admin Center: This is where you can deploy the Copilot for Sales Teams app.

Client layer

Next, let's examine the client layer, which represents the different client experiences used by users. Copilot for Sales consists of two distinct client experiences.

  • Copilot for Sales Microsoft Outlook Add-In: Considered a non-Microsoft Outlook add-in.

  • Copilot for Sales Microsoft Teams App: Developed as a non-Microsoft Teams app.

Both consist of a manifest, which describes how the add-in and app integrate into Outlook and Teams, and JavaScript/HTML, which makes up the UI of the experience. The UI for both experiences is cloud-hosted and fully managed by Microsoft. None of the UI or business logic for Copilot for Sales is shipped as client-side code in Teams or Outlook. Therefore, customers don't need to manage any of the application lifecycles for the Copilot for Sales client or server-side components.

Service layer

The Copilot for Sales service layer consists of the Cloud Hosted Copilot for Sales Experiences, which are served to the Copilot for Sales client experiences, and Core Business Logic Layer, which processes and combines CRM data, MS Graph Data (for example, E-Mails, Meetings), OpenAI generated data. All Copilot for Sales services are hosted on the Microsoft Azure cloud to provide a resilient foundation to help meet organizational compliance, reliability, availability, and disaster recovery needs.

Data layer

The Copilot for Sales data layer consists of three distinct sets of data:

  • MS Graph data: The end user's existing M365/Office Data (E-Mails, Meetings, etc.) are stored in Microsoft Graph.

  • CRM data: The customer's CRM data is only stored in the existing CRM system (Dynamics 365 or Salesforce), which serves as the system of record for all CRM entities.

  • Copilot for Sales data: The customer's Copilot for Sales data is generated through Copilot for Sales feature flows and doesn't fall into the above definition for Office data or CRM data, for example, Copilot for Sales settings or Copilot for Sales generated insights data.

Storage and security

Copilot for Sales always respects the data privacy, data security, data retention, and compliance boundaries of the underlying data store for data at rest and uses Transport Layer Security (TLS) to protect data in transit and doesn't store data outside any of the data stores described above.

M365/Office data

The end-user's M365/Office data is always accessed in the end user's authorization context and referenced in three distinct ways:

  • Read in real-time to enable insights scenarios, for example Generative AI e-mail replies, AI generated e-mail summaries, or Teams' meeting summaries. The M365/Office data is only read in these scenarios and discarded after it processes.

  • Read in real-time to enable value in the customer's CRM system, for example when e-mail and meeting data is copied from the Microsoft Graph to the customer's CRM as activities or meeting transcripts are copied to Dataverse to enable extensibility scenarios.

  • Updated or generated in real-time to enable Copilot for Sales capabilities, for example when the Copilot for Sales Teams app is added to a meeting to enable Teams' Meeting summary.

CRM data

All CRM data access (read and write access) in Copilot for Sales is managed using real-time integrations with the underlying CRM system. Copilot for Sales does not copy any CRM data to other systems except unique identifiers are used for mapping CRM org and entities to Copilot for Sales specific data, for example Copilot for Sales settings data or Copilot for Sales generated insights data. When you map CRM data to Copilot for Sales data, only the unique identifiers from the CRM system are being referenced. Copilot for Sales fully respects the existing retention policies and compliance boundaries of the existing CRM system.

Copilot for Sales is designed and intended to work with a single CRM connection at a time. Copilot for Sales doesn't connect to multiple CRM orgs or CRM instances at the same time, nor synchronize data between them. The data accessed and stored using Copilot for Sales is always scoped to the CRM that the end user is currently connected to.

Currently, Copilot for Sales only supports Dynamics 365 and Salesforce® as external CRM systems.

Copilot for Sales data

There are a few different types of Copilot for Sales data.

Dynamics 365 connected

For Dynamics 365 customers, Copilot for Sales uses the existing Dynamics 365 Dataverse instance (org) to store any Copilot for Sales specific data. Users can switch connections between different Dynamics 365 orgs, at which point Copilot for Sales also uses the underlying Dataverse instance to store and retrieve any Copilot for Sales data.

Salesforce® connected

For Salesforce CRM customers, a new Microsoft Dataverse instance is provisioned when the first user from a given Microsoft Entra ID tenant launches the Copilot for Sales for Microsoft Outlook Add-In and connects to their Salesforce org. Copilot for Sales will provision a new Dataverse instance per tenant to be used across all connected Salesforce environments and orgs after the first user is logged in to Copilot for Sales using the Copilot for Sales for Microsoft Outlook add-in.

You can find more information about the Copilot for Sales Architecture, and download the architecture document here: Copilot for Sales architecture