Skip to content

Commit 0cfb50b

Browse files
SukanyaDas-MSFTvtarasov
andauthored
[Doc Feature] [3832810] GraphAPIs for aiInsights docs (#13622)
* Beta to V1.0 * Pointers from Slava * build warning * A few more changes * Samples updated, learn authoring assistant edits * code block error * Update meeting-insights.md * V1.0 --------- Co-authored-by: vtarasov <vtarasov@microsoft.com_msteamsmdb>
1 parent cc60bb9 commit 0cfb50b

File tree

1 file changed

+97
-109
lines changed

1 file changed

+97
-109
lines changed

msteams-platform/graph-api/meeting-transcripts/meeting-insights.md

Lines changed: 97 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22
title: Graph APIs to Fetch Meeting Insights
33
description: Learn how to use the Meeting AI Insights API to fetch Teams meeting insights including conversation summaries, action items, and mentions.
44
ms.localizationpriority: high
5-
ms.topic: conceptual
6-
ms.owner: vichug
5+
ms.topic: article
6+
ms.owner: vtarasov
77
ms.author: surbhigupta
8-
ms.date: 05/16/2025
8+
ms.date: 12/08/2025
99
---
1010

1111
# Get AI-generated meeting summaries with Meeting AI Insights API
1212

1313
> [!IMPORTANT]
1414
>
15-
> * Meeting AI Insights API is available under the beta version in Microsoft Graph. For more information, see [versioning, support, and breaking change policies for Microsoft Graph](/graph/versioning-and-support#beta-version).
16-
> * Meeting AI Insights API is part of the Microsoft 365 Copilot API namespace. Insights can only be fetched on behalf of a Microsoft 365 Copilot licensed user. For more information, see [license requirements for Meeting Insights API](/graph/teams-licenses#license-requirements-for-teams-meeting-ai-insights-apis).
15+
> * Meeting AI Insights API is part of the Microsoft 365 Copilot API namespace. You can only fetch insights on behalf of a Microsoft 365 Copilot licensed user. For more information, see [license requirements for Meeting Insights API](/graph/teams-licenses#license-requirements-for-teams-meeting-ai-insights-apis).
1716
1817
The Meeting AI Insights API enables you to programmatically access structured AI-generated insights from transcribed Microsoft Teams meetings. These insights include:
1918

@@ -25,7 +24,7 @@ The API empowers you to deliver intelligent meeting experiences, such as surfaci
2524

2625
> [!NOTE]
2726
>
28-
> Meeting AI Insights API provides insights only for private scheduled meetings.
27+
> Meeting AI Insights API provides insights for private scheduled meetings, town halls, webinars, and Meet Now sessions. AI Insights API doesn't yet support channel meetings.
2928
3029
## Use cases
3130

@@ -39,134 +38,123 @@ Here are some use cases for fetching AI-generated insights using Meeting AI Insi
3938

4039
## Prerequisites
4140

42-
* You must [turn on the transcription or recording](https://support.microsoft.com/en-us/office/view-live-transcription-in-microsoft-teams-meetings-dc1a8f23-2e20-4684-885e-2152e06a4a8b) for the meeting for which the insights are to be generated. Alternatively, you can set a meeting to autotranscribe or autorecord programmatically using the [update onlineMeeting API](/graph/api/onlinemeeting-update?view=graph-rest-1.0&preserve-view=true&tabs=http) or directly through the [meeting options](/microsoftteams/manage-meeting-recording-options#record-and-transcribe-automatically).
43-
44-
* The Meeting AI Insights API only works with delegated permissions and hence requires a token from a signed-in user to be passed in the call. The signed-in user must have a [Microsoft 365 Copilot license](/copilot/microsoft-365/microsoft-365-copilot-licensing) and access to the meeting’s transcript file.
41+
* You must [turn on the transcription or recording](https://support.microsoft.com/en-us/office/view-live-transcription-in-microsoft-teams-meetings-dc1a8f23-2e20-4684-885e-2152e06a4a8b) for the meeting to generate insights. Alternatively, you can set a meeting to autotranscribe or autorecord programmatically using the [update onlineMeeting API](/graph/api/onlinemeeting-update?view=graph-rest-1.0&preserve-view=true&tabs=http) or directly through the [meeting options](/microsoftteams/manage-meeting-recording-options#record-and-transcribe-automatically).
4542

4643
## Fetch meeting insights
4744

4845
To fetch the insights of a particular meeting, follow these steps:
4946

50-
1. If you don’t have the meeting identifier (`id`), call online meeting API with the `JoinWebUrl` property to retrieve the `id`. For more information, see [retrieve an online meeting by JoinWebUrl](/graph/api/onlinemeeting-get?view=graph-rest-1.0&preserve-view=true&tabs=http#example-3-retrieve-an-online-meeting-by-joinweburl).
47+
1. If you don't have the meeting identifier (`id`), call online meeting API with the `JoinWebUrl` property to retrieve the `id`. For more information, see [retrieve an online meeting by JoinWebUrl](/graph/api/onlinemeeting-get?view=graph-rest-1.0&preserve-view=true&tabs=http#example-3-retrieve-an-online-meeting-by-joinweburl).
48+
49+
1. Each transcript event of the meeting creates an associated [AI insight object](/graph/api/resources/callaiinsight?preserve-view=true). Use the [List AI Insights API](/graph/api/onlinemeeting-list-aiinsights?preserve-view=true) to fetch all the AI insight objects related to the meeting and use the included metadata in the response to select the relevant AI insight object for your scenario. Here's an example request and response:
5150

52-
1. Each transcript event of the meeting creates an associated [AI insight object](/graph/api/resources/callaiinsight?view=graph-rest-beta&preserve-view=true). Use the [List AI Insights API](/graph/api/onlinemeeting-list-aiinsights?view=graph-rest-beta&preserve-view=true) to fetch all the AI insight objects related to the meeting and use the included metadata in the response to select the relevant AI insight object for your scenario. Here's an example request and response:
51+
### Request
5352

54-
**Request**
53+
```http
54+
GET/copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights
55+
```
5556

56-
```http
57-
GET /copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights
58-
```
57+
### Response
5958

60-
**Response**
59+
```json
60+
HTTP/1.1 200 OK
61+
Content-Type: application/json
6162

62-
```json
63-
HTTP/1.1 200 OK
64-
Content-Type: application/json
65-
63+
{
64+
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#copilot/users('224317f2-e936-449c-8955-978c1497ce17')/onlineMeetings('MSoyMjQzMTdmMi1lOTM2LTQ0OWMtODk1NS05NzhjMTQ5N2NlMTcqMCoqMTk6bWVldGluZ19OV0kxWXpkbVlqWXRaamRoTVMwME1UVTVMV0ZpTUdVdE9HWm1ZemRtTVRFd01qQTVAdGhyZWFkLnYy')/aiInsights",
65+
"@odata.count": 1,
66+
"value": [
6667
{
67-
"@odata.context": "https://graph.microsoft.com/beta/$metadata#copilot/users('000000000-0000-0000-0000-000000000000')/onlineMeetings('00000...')/aiInsights",
68-
"@odata.count": 1,
69-
"value": [
70-
{
71-
"id": "VjEj...",
72-
"callId": "af630fe0-04d3-4559-8cf9-91fe45e36296",
73-
"contentCorrelationId": "bc842d7a-2f6e-4b18-a1c7-73ef91d5c8e3",
74-
"createdDateTime": "2025-05-09T08:17:10.7261294Z",
75-
"endDateTime": "2025-05-09T08:17:10.7261294Z"
76-
}
77-
]
78-
}
79-
```
80-
81-
| Property | Description |
82-
| --- | --- |
83-
| `id` | A unique identifier for the generated AI insight object. |
84-
| `callId` | A unique identifier for the call during which this insight is generated. |
85-
| `contentCorrelationId` | A unique identifier that correlates the [transcript](/graph/api/resources/calltranscript?&view=graph-rest-beta&preserve-view=true) of the meeting from which the AI insight object is generated. |
86-
| `createdDateTime` | The date and time at which the corresponding transcript was created. The timestamp type represents the date and time information using the ISO 8601 format and is always in Coordinated Universal Time (UTC). |
87-
| `endDateTime` | The date and time at which the corresponding transcript ends. The timestamp type represents the date and time information using the ISO 8601 format and is always in UTC. |
88-
89-
1. Each AI insight object provides detailed meeting notes, action items, and participant-specific mentions, which can be accessed by calling [GET AI Insights API](/graph/api/callaiinsight-get?view=graph-rest-beta&preserve-view=true) for a specific insight object ID. Here's an example request and response:
90-
91-
**Request**
92-
93-
```http
94-
GET /copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights/{aiInsightId}
95-
```
96-
97-
**Response**
98-
99-
```json
100-
HTTP/1.1 200 OK
101-
Content-Type: application/json
102-
68+
"id": "VjEjI1NQT19aamRsWkRKaVlURXRPR1F3TnkwME1XVmtMVGt5TVRBdFlUQXpOMkprT1dWaFpEazFMR000TkRjeVl6TTNMV1U1TkRjdE5EWXhNUzFpWlRkaExUZ3paRGN4T1RZelpHSmhNaXhpTjJNME9UZGtNeTB5T1RZNUxUUTBZMll0T0RRM1lpMWtNMkppTmpoak9EWmtZak1fMDFLTUVLNUE1Q01SUlQzWUJXSEJISUVKVVMzT0ZBVVNRTQ==",
69+
"callId": "97d0b60e-4341-470f-b273-ea7ddb31f8f9",
70+
"contentCorrelationId": "fb7aa4c9-b2a0-497f-94f1-f52d1975bd3c-0",
71+
"createdDateTime": "2025-12-08T05:41:31Z",
72+
"endDateTime": "2025-12-08T05:41:31Z"
73+
},
74+
],
75+
}
76+
```
77+
78+
| Property | Description |
79+
| --- | --- |
80+
| `id` | A unique identifier for the generated AI insight object. |
81+
| `callId` | A unique identifier for the call during which this insight is generated. |
82+
| `contentCorrelationId` | A unique identifier that correlates the [transcript](/graph/api/resources/calltranscript?preserve-view=true) of the meeting from which the AI insight object is generated. |
83+
| `createdDateTime` | The date and time at which the corresponding transcript was created. The timestamp type represents the date and time information using the ISO 8601 format and is always in Coordinated Universal Time (UTC). |
84+
| `endDateTime` | The date and time at which the corresponding transcript ends. The timestamp type represents the date and time information using the ISO 8601 format and is always in UTC. |
85+
86+
1. Each AI insight object provides detailed meeting notes, action items, and participant-specific mentions, which you can access by calling [GET AI Insights API](/graph/api/callaiinsight-get?preserve-view=true) for a specific insight object ID. Here's an example request and response:
87+
88+
### Request
89+
90+
```http
91+
GET/copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights/{aiInsightId}
92+
```
93+
94+
### Response
95+
96+
```json
97+
HTTP/1.1 200 OK
98+
Content-Type: application/json
99+
100+
{
101+
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#copilot/users('224317f2-e936-449c-8955-978c1497ce17')/onlineMeetings('MSoyMjQzMTdmMi1lOTM2LTQ0OWMtODk1NS05NzhjMTQ5N2NlMTcqMCoqMTk6bWVldGluZ19OV0kxWXpkbVlqWXRaamRoTVMwME1UVTVMV0ZpTUdVdE9HWm1ZemRtTVRFd01qQTVAdGhyZWFkLnYy')/aiInsights/$entity",
102+
"id": "VjEjI1NQT0A2ZWMzMmU4MC1jN2U1LTQwMWUtYjE4NS01ODVjYjRkYTNiZTYsb21SalBlQTJPRTZDSnBMYmlncEtETk9YeExkcEtjOUVoSHZUdTJqSWJiTTNMRWZJUi1rUlJyNTZnOWNaWTl1aW9TdnQ5d2VON1VHU0VLQTN2WjZ0bFE=",
103+
"callId": "97d0b60e-4341-470f-b273-ea7ddb31f8f9",
104+
"contentCorrelationId": "fb7aa4c9-b2a0-497f-94f1-f52d1975bd3c-0",
105+
"createdDateTime": "2025-12-08T05:41:31Z",
106+
"endDateTime": "2025-12-08T05:41:31Z",
107+
"meetingNotes": [
103108
{
104-
"@odata.context": "https://graph.microsoft.com/beta/$metadata#copilot/users('00000000-0000-0000-0000-000000000000')/onlineMeetings('000000...')/aiInsights/$entity",
105-
"id": "Z2HWbT...",
106-
"callId": "af630fe0-04d3-4559-8cf9-91fe45e36296",
107-
"contentCorrelationId": "bc842d7a-2f6e-4b18-a1c7-73ef91d5c8e3",
108-
"createdDateTime": "2025-05-15T08:17:10.7261294Z",
109-
"endDateTime": "2025-05-15T08:32:10.7261294Z",
110-
"meetingNotes": [
109+
"title": "Sample Testing and Staging Code Update",
110+
"text": "MOD discussed the process of testing a sample, confirming that it will function after updating the staging code, and outlined the necessary steps for this update.",
111+
"subpoints": [
112+
{
113+
"title": "Staging Code Modification",
114+
"text": "MOD stated that the sample will work after changing the staging code, indicating that this is the primary requirement for successful testing.",
115+
},
111116
{
112-
"title": "Introducing Project Objectives and Key Stakeholders",
113-
"text": "The stakeholders present included representatives from each department involved in the project, ensuring alignment and clear communication channels from the start.",
114-
"subpoints": [
115-
{
116-
"title": "Discussion on action items",
117-
"text": "Action items were assigned to team members, and a follow-up meeting schedule was established."
118-
}
119-
]
120-
}
117+
"title": "Beta Environment Configuration",
118+
"text": "MOD clarified that updates are needed only in the beta environment, specifically mentioning the need to replace or update the access token and configure related settings.",
119+
},
120+
{
121+
"title": "Testing Process Steps",
122+
"text": "MOD described the process of generating the beta, suggested that another person might need to participate, and encouraged further attempts if initial tests do not succeed.",
123+
},
121124
],
122-
"actionItems": [
125+
},
126+
{
127+
"title": "ReadMe File Integration Issue",
128+
"text": "MOD identified an issue related to the ReadMe file, noting that it was properly created and centrally added, which is affecting the current process.",
129+
"subpoints": [
123130
{
124-
"title": "Finalize Project Timeline",
125-
"text": "Review and finalize the project timeline to ensure alignment with stakeholder expectations and resource availability.",
126-
"ownerDisplayName": "Bella Smith",
131+
"title": "ReadMe File Addition",
132+
"text": "MOD explained that the ReadMe file was properly created and centrally added, which is contributing to the observed issue in the workflow."
127133
},
128134
],
129-
"viewpoint": {
130-
"mentionEvents": [
131-
{
132-
"speaker": {
133-
"application": null,
134-
"device": null,
135-
"user": {
136-
"@odata.type": "#Microsoft.Teams.GraphSvc.teamworkUserIdentity",
137-
"id": "9a7608d3-53e4-4a92-804f-ef43f1e5f5b5",
138-
"displayName": "John Smith",
139-
"userIdentityType": "aadUser",
140-
"tenantId": "d1aeb56e-5a25-4d91-a4f6-0f5e6a50d887"
141-
}
142-
},
143-
"eventDateTime": "2024-05-21T09:00:00",
144-
"transcriptUtterance": "We need to get approval from Sarah Johnson before proceeding with the budget allocation."
145-
},
146-
]
147-
}
148-
}
149-
```
150-
151-
| Property | Description |
152-
| --- | --- |
153-
| `meetingNotes` | Contains detailed notes of the meeting discussion as generated by Microsoft Teams Copilot. The notes include a title, summary, and detailed subpoints of the discussion. |
154-
| `actionItems` | Contains the action items generated from the meeting conversation. The action items include a summary of the action item and the assigned owner. |
155-
| `viewpoint.mentionEvents` | Contains participant-specific information from the conversation, including mentions with the timestamps in the meeting when a user is mentioned, the speaker, and the utterance details. |
135+
},
136+
],
137+
}
138+
```
139+
140+
| Property | Description |
141+
| --- | --- |
142+
| `meetingNotes` | Contains detailed notes of the meeting discussion as generated by Microsoft Teams Copilot. The notes include a title, summary, and detailed subpoints of the discussion. |
143+
| `actionItems` | Contains the action items generated from the meeting conversation. The action items include a summary of the action item and the assigned owner. |
144+
| `viewpoint.mentionEvents` | Contains participant-specific information from the conversation, including mentions with the timestamps in the meeting when a user is mentioned, the speaker, and the utterance details. |
156145

157146
## Limitations
158147

159-
* AI-generated insights are only available after a meeting ends. The API doesn't support accessing live notes during a meeting.
148+
* AI-generated insights are available only after a meeting ends. The API doesn't support accessing live notes during a meeting.
160149
* AI-generated insights might take up to four hours to be available after the call ends.
161-
* Application-level permissions aren't supported.
162150

163151
## Code sample
164152

165-
| Sample name | Description | Node.js |
166-
| --- | --- | --- |
167-
| Meeting AI insights bot | This sample app retrieves meeting summaries, action items, and mentions using Meeting AI Insights API and displays them in a dialog. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-meeting-ai-insights/nodejs) |
153+
| Sample name | Description | Node.js | Python |
154+
| --- | --- | --- | --- |
155+
| Meeting AI insights bot | This sample app retrieves meeting summaries, action items, and mentions by using the Meeting AI Insights API and displays them in a dialog. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-meeting-ai-insights/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-meeting-ai-insights/python) |
168156

169157
## See also
170158

171-
* [callAiInsight resource type](/graph/api/resources/callaiinsight?view=graph-rest-beta&preserve-view=true)
159+
* [callAiInsight resource type](/graph/api/resources/callaiinsight?preserve-view=true)
172160
* [Working with the cloud communications API in Microsoft Graph](/graph/api/resources/communications-api-overview?view=graph-rest-beta&preserve-view=true)

0 commit comments

Comments
 (0)