AI assisted answer. I asked the question to a Codex agent and it built this demo flow with MCP connection to Power Automate (3rd party).
The official document is very thin:
https://learn.microsoft.com/en-us/connectors/teams/?utm_source=chatgpt.com&tabs=text1%2Cdotnet#when-a-transcript-is-available
I tested the trigger
"When a transcript is available". In my tenant, the trigger “When a transcript is available” allowed me to save the flow, but failed when I tried to test it. The error pointed to missing parameters that I could not enter from the Power Automate maker UI. So I suspect there is currently a connector definition or maker UI issue with this trigger.
Based on the agent suggestion and my finding, we built a scheduled polling flow. With this pattern, we need a helper list or a mechanism to skip transcriptions that are captured previously - not covered in the below demo flow.
The basic working pattern:
- Run on a schedule.
- Find recent Teams meetings or calls.
- Get the meeting ID or call ID.
- List transcripts.
- Get transcript content.
- Store processed transcript IDs in a SharePoint list to avoid processing the same transcript twice.
To use
"Get meeting transcript content", we need Meeting IDs. Agent suggested to use Graph call GET /v1.0/communications/callRecords which requires an application permission on
CallRecords.Read.All. Initially I was hesitant for this approach, but I couldn't find a simplier way to retrieve meeting IDs for both scheduled meetings (easy) and ad-hoc meetings (hard) - for some reason, the Team's built-in Get all ad-hoc call transcripts didn't return any my recent meetings. It could be some setting at my end that I didn't notice.
Conversations and flow screenshots as below:
For testing, agent built a helper flow to read my calendar, retrieved the meeting ID and looked for the transcription. They confirmed the scheduled meeting's transcription is retreivable but not the ad-hoc (of course since it's not in the calendar). This is the easy path if we don't want to use graph, but it doesn't include ad-hoc meetings:
After some attemps we decided to use graph HTTP callRecords then it worked: