-
Notifications
You must be signed in to change notification settings - Fork 9
Copilot
This page describes what Microsoft 365 Copilot data the analytics engine tracks, how it is collected, and when.
Copilot events are collected from the Office 365 Management Activity API using the Audit.General content type. The workload identifier is Copilot.
Reference: https://learn.microsoft.com/en-us/office/office-365-management-api/copilot-schema
For Copilot events to be imported, Audit.General must be included in the ContentTypesListAsString configuration key (it is by default). Additionally, the ActivityLog import task must be enabled in ImportJobSettings.
Copilot events are imported as part of the Office365ActivityImporter web-job. This runs continuously:
- Each import cycle scans the Activity API for events from the last several days (configured by
DaysBeforeNowToDownload, default 6 days). - After each cycle completes, the web-job waits 10 minutes before starting the next cycle.
- Events already processed are skipped (tracked via the
ignored_audit_eventstable).
There is typically a 2–3 day delay between a Copilot interaction occurring and the event appearing in the Activity API.
Every Copilot interaction generates one audit event. The engine categorises each event into one of three types based on the interaction context:
When a user interacts with Copilot without any file or meeting context (e.g. a general question in Teams chat or Bing).
| Field | Description |
|---|---|
| Date/time | When the interaction occurred (UTC). |
| User | The user who initiated the interaction. |
| App host | Which Copilot surface was used (e.g. Teams, Word, Excel, Outlook, Bing, M365App, etc). |
| Agent | The Copilot agent involved, if any. Includes whether it is a custom agent (extracted from AppIdentity). |
| Accessed resources | Documents and data sources Copilot referenced to generate the response (see below). |
| Response messages | Message IDs of Copilot responses (user prompts are not tracked). |
| AI models used | Names of AI models involved (e.g. DEEP_LEO for deep reasoning). |
| Credit estimate | Estimated Copilot Credits consumed, with a breakdown by category. |
When Copilot is used in the context of a specific file (e.g. summarising a Word document, generating a slide in PowerPoint).
All fields from chat-only, plus:
| Field | Description |
|---|---|
| File name | Name of the file. |
| File extension | File type (docx, pptx, xlsx, etc). |
| URL | Full URL of the file. |
| Site | SharePoint site collection URL where the file resides. |
File metadata is resolved via the Microsoft Graph API using the context ID from the audit event.
When Copilot is used during a Teams meeting (e.g. generating meeting notes or a summary).
All fields from chat-only, plus:
| Field | Description |
|---|---|
| Meeting name | Subject of the online meeting. |
| Meeting ID | Graph identifier for the meeting. |
| Meeting created date | When the meeting was originally created (UTC). |
Meeting metadata is resolved via the Microsoft Graph API (/users/{id}/onlineMeetings).
For any interaction type, Copilot may reference documents and data sources to generate a response. Each accessed resource is tracked with:
| Field | Description |
|---|---|
| Resource ID | Identifier of the accessed resource. |
| Resource name | Display name of the resource. |
| Site URL | SharePoint site URL of the resource (if applicable). |
| Resource type | Type of resource (e.g. file, email, chat message). |
| Sensitivity label | Microsoft Purview sensitivity label ID, if one is applied to the resource. |
For interactions involving a Copilot agent (standard or custom), the engine estimates the number of Copilot Credits consumed based on the Microsoft Copilot Studio billing model.
| Billing Category | Credits | How Detected |
|---|---|---|
| Generative answer | 2 per response | Response messages that are not prompts. |
| Tenant Graph grounding | 10 per grounded answer | Accessed resources from SharePoint, OneDrive, Email, or Teams. |
| Agent action (e.g. deep reasoning) | 5 per action |
DEEP_LEO model detected in ModelTransparencyDetails. |
The credit estimate is stored both as a total and as a JSON breakdown per event.
Reference: https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-management
The AppHost value indicates which Copilot surface the user was interacting with. Known values include:
Assist365, Bing, BashTool, DevUI, Excel, Loop, M365AdminCenter, M365App, Office, OneNote, Outlook, Planner, PowerPoint, SharePoint, Stream, Teams, VivaCopilot, VivaEngage, VivaGoals, Whiteboard, Word.
If the AgentName and AgentId fields are not set in the audit event but AppIdentity contains an organisation ID, the engine extracts the agent name from the AppIdentity string (format: Copilot.Studio.Default-{OrgId}-{AgentName}). These are flagged as custom agents via the is_custom_agent column.
All Copilot data is stored in the tables documented in the Database Schema page. The key tables are:
| Table | Purpose |
|---|---|
copilot_chats |
Core interaction record: app host, agent, credit estimate. Links to audit_events. |
copilot_event_files |
File context: name, extension, URL, site. |
copilot_event_meetings |
Meeting context: links to online_meetings. |
copilot_agents |
Agent definitions: name, agent ID, custom flag. |
copilot_event_accessed_resources |
Resources Copilot referenced, with type and sensitivity label. |
copilot_event_messages |
Response message IDs. |
copilot_ai_models / copilot_event_ai_models
|
AI models used per interaction. |
sensitivity_labels |
Shared sensitivity label lookup. |
Copilot audit events are delivered through the Office 365 Management Activity API. The runtime application registration requires:
-
Office 365 Management APIs –
ActivityFeed.Read(application permission). -
Microsoft Graph –
OnlineMeetings.Read.AllandSites.Read.All(application permissions) for resolving meeting and file metadata.