Building and customizing solutions using Microsoft 365 Copilot APIs and tools
There is no documented self-service fix or confirmed Microsoft known issue specifically for blank AI-response rows in legacy Microsoft 365 Copilot exports; ask your Microsoft 365 administrator to retrieve the conversations through the Copilot Activity Export API and escalate the defective CSV export if the API still returns blank or missing responses.
Retrieve the responses through Microsoft Graph
The API returns separate userPrompt and aiResponse interactions, including their body content, and supports Microsoft 365 Copilot Chat through the IPM.SkypeTeams.Message.Copilot.BizChat app class.^1^
This requires:
- A valid Microsoft 365 Copilot license with the Microsoft Copilot with Graph-grounded chat service plan.
- An Entra app registration using application permission
AiEnterpriseInteraction.Read.All. - Administrator consent. Delegated permissions are not supported.^2^
Have an Entra administrator who is familiar with app-only Microsoft Graph authentication create the app, grant consent, and obtain an application access token. Then call:
GET https://graph.microsoft.com/v1.0/copilot/users/{user-id}/interactionHistory/getAllEnterpriseInteractions
Authorization: Bearer {application-access-token}
To preserve all pages and isolate former Microsoft 365 Copilot Chat records, the administrator can run the following with the application token already obtained:
$uri = "https://graph.microsoft.com/v1.0/copilot/users/$UserId/interactionHistory/getAllEnterpriseInteractions"
$headers = @{ Authorization = "Bearer $AccessToken" }
$all = @()
while ($uri) {
$page = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$all += $page.value
$uri = $page.'@odata.nextLink'
}
$all | ConvertTo-Json -Depth 20 | Set-Content ".\copilot-interactions.json" -Encoding utf8
$all | Where-Object appClass -eq "IPM.SkypeTeams.Message.Copilot.BizChat" |
ConvertTo-Json -Depth 20 | Set-Content ".\copilot-bizchat.json" -Encoding utf8
Following @odata.nextLink prevents older records on later pages from being missed. Filtering locally also avoids assuming that the endpoint supports the date or compound filter needed for the affected legacy period.
Interpret the result
Match each prompt and response using fields such as sessionId and requestId, then inspect:
-
interactionType:userPromptoraiResponse -
appClass: expected to beIPM.SkypeTeams.Message.Copilot.BizChat -
createdDateTime -
body.content
The outcome determines the next action:
- The API contains populated
aiResponserecords: Preserve the JSON as an alternate export or transform it into CSV. Open a Microsoft support case because the standard CSV exporter is omitting data that exists in interaction history. - The API contains
aiResponserecords with emptybody.content: Include those records in the support case; this is not a CSV parsing problem. - Only prompts are returned: The API only returns interactions written to the Microsoft 365 interaction-history service. Experiences that did not save data there are never returned, so there is no documented client-side method to reconstruct those responses.^3^
- The request returns a licensing or authorization error: Verify the affected user’s qualifying service plan and the app’s
AiEnterpriseInteraction.Read.Allapplication permission and admin consent.^2^
Escalate with useful evidence
An administrator should submit a support case through Microsoft 365 admin center → Help & Support.^4^
Attach:
- The original CSV showing populated prompts and blank response rows.
- A redacted JSON sample containing the corresponding
sessionId,requestId,interactionType,appClass,createdDateTime, andbody. - The approximate conversation dates and whether they predate the Copilot experience change.
- Whether the conversations remain readable under Copilot Chat → Chats.
- The API outcome: response present, response blank, or response absent.
Do not post access tokens, tenant identifiers, user identifiers, or conversation content publicly.
If this was exported from a personal Microsoft account, the enterprise API does not apply. Personal-account activity is exported through Privacy → Empower your productivity → Copilot → Your Copilot app activity history, and the personal privacy-dashboard procedure is separate from work or school accounts.^5^
References