Automating Meeting Notes with Microsoft Graph API and Azure OpenAI in Power Platform – Part 1

Microsoft 365 Copilot offers Teams meeting note generation, but its licensing costs can be a significant investment for organizations. For those looking for a more cost effective alternative, using Power Automate or Power Apps with Microsoft Graph API and Azure OpenAI provides a scalable and budget friendly solution.

In this series, we will explore how to automate the process of generating meeting notes by leveraging the Microsoft Graph API to retrieve meeting transcriptions and summarizing them using Azure OpenAI’s language models. We will cover both delegated permissions (retrieving transcriptions as the signed-in user) and application permissions (retrieving transcriptions on behalf of a user).

In Part 1, we will explore the Microsoft Graph API endpoints required to access Teams meeting transcriptions and the setup of Entra ID app registrations. In Part 2, we will look at how to integrate these APIs into Power Automate using a Custom Connector (for signed-in users) and the HTTP Connector (for application-level access) to fetch meeting transcriptions

Retrieving Meeting Transcriptions with Microsoft Graph API

To start, we need to extract meeting transcriptions from Microsoft Teams using Microsoft Graph API. Microsoft provides endpoints for accessing recorded meeting transcriptions, but there are specific permissions and configurations required.

Prerequisites

Before proceeding, ensure that you have:

  • Access to Register app registration in Entra ID Portal
  • Power Automate / Power Apps premium license. To test the custom connector you can also get a community plan if you do not have a premium plan.
  • An Azure OpenAI service instance for text processing.

Step 1: Set Up Permissions in Azure AD

To access Microsoft Graph API endpoints with a custom connector and HTTP connector in Power Automate, there has to be Entra ID App registrations created for Delegated and Application access.

Entra ID App registration for Signed In user (Delegated Access) – Custom Connector:

  1. Navigate to Microsoft Entra ID.
  2. Create a new App Registration and note the Application (Client) ID, Tenant ID & Client Secret.
  3. Under API Permissions, add the following Delegated permissions:
    • OnlineMeetings.Read
    • OnlineMeetingTranscript.Read.All
    • Calendars.Read
    • User.Read
  1. Grant admin consent to apply the permissions.

Entra ID App registration for on behalf of Signed In user (Application Access) – HTTP Connector:

  1. Navigate to Microsoft Entra ID.
  2. Create a new App Registration and note the Application (Client) ID, Tenant ID & Client Secret.
  3. Under API Permissions, add the following Application permissions:
    • OnlineMeetings.Read.All
    • OnlineMeetingTranscript.Read.All
    • Calendars.Read
    • User.Read.All

Allow applications to access online meetings on behalf of a user:

To access Graph API endpoints for retrieving meeting transcriptions on behalf of the signed-in user, an Application Access Policy must be configured for the Entra ID app registration created earlier using the Client ID. Execute the Power Shell script as below

New-CsApplicationAccessPolicy -Identity AAP-policy -AppIds "ReplaceClientIdfromEntraIDAppRegforApplicationAccess" -Description "To grant the Application access to MS Graph API Endpoints for Transcription"
Grant-CsApplicationAccessPolicy -PolicyName AAP-policy -Global

There is also a Power Shell command which can be used to provide access to the application for a specific user.

Reference: Configure application access policy

Note: If the app registration is not granted access through the application access policy, attempting to access the Graph API endpoint for transcription content will result in the following error.

Application is not allowed to perform operations on the user ‘xxxx-xxxxx-xxx-xxx-xxxx’, neither is allowed access through RSC permission evaluation.

Step 2: Retrieve Transcriptions with Microsoft Graph API

Microsoft Graph API provides endpoints for accessing and managing Teams calendar events and transcripts. We’ll explore how to retrieve user events, extract meeting IDs, and obtain transcript content URLs.

1. Retrieving User Events

To fetch a list of calendar events for a user:

GET https://graph.microsoft.com/v1.0/me/calendar/events

This request returns details about the user’s scheduled events, including subject, start and end times, location, and attendees.

Reference: Microsoft Graph API – Get User Events

2. Retrieving a Meeting ID

Super Early Bird
To retrieve a meeting ID using the join URL:

GET https://graph.microsoft.com/v1.0/me/onlineMeetings?$filter=JoinWebUrl eq ‘joinURL’

This request filters online meetings based on the provided join URL obtained from the previous API endpoint call and returns the meeting ID.

Reference: Microsoft Graph API – Get Online Meeting

https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/meeting-transcripts/fetch-id

Snapshot from Graph Explorer

Retrieving Transcript Content URL

To access the transcript content URL for a specific meeting that has been recorded or is configured to generate transcriptions:

GET https://graph.microsoft.com/v1.0/me/onlineMeetings/{online-meeting-id}/transcripts

This request fetches the transcripts associated with a Teams meeting

References:

Note: There are change notification which could be configured to get notified whenever a transcript is available after a meeting.

https://learn.microsoft.com/en-us/graph/teams-changenotifications-callrecording-and-calltranscript

Next Steps

In Part 2, we will create custom connector / HTTP connector and use them in Power Automate with Azure OpenAI’s GPT model to summarize the transcription and generate structured meeting notes. Stay tuned!

About the Author

Mohamed Ashiq Faleel

Microsoft ΙοΤ & Business Apps MVP | Software Engineer | PhD candidate in Integration of Computational Thinking in Education

Reference:

Faleel, M (2025). Automating Meeting Notes with Microsoft Graph API and Azure OpenAI in Power Platform – Part 1. Available at: Automating Meeting Notes with Microsoft Graph API and Azure OpenAI in Power Platform – Part 1 – Mohamed Ashiq Faleel [Accessed: 11th March 2025].

Share this on...

Rate this Post:

Share:

Tags: