Skip to content

Copilot

Sam Betts edited this page Mar 3, 2026 · 1 revision

Copilot Analytics

This page describes what Microsoft 365 Copilot data the analytics engine tracks, how it is collected, and when.

Data Source

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.

Import Schedule

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_events table).

There is typically a 2–3 day delay between a Copilot interaction occurring and the event appearing in the Activity API.

What is Tracked

Every Copilot interaction generates one audit event. The engine categorises each event into one of three types based on the interaction context:

1. Chat-Only Interactions

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.

2. File Interactions

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.

3. Meeting Interactions

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).

Accessed Resources

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.

Credit Estimation

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

App Hosts

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.

Custom Agent Detection

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.

Database Tables

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.

Required Permissions

Copilot audit events are delivered through the Office 365 Management Activity API. The runtime application registration requires:

  • Office 365 Management APIsActivityFeed.Read (application permission).
  • Microsoft GraphOnlineMeetings.Read.All and Sites.Read.All (application permissions) for resolving meeting and file metadata.

Clone this wiki locally