Store meeting transcript on SharePoint

Microsoft Teams has great features like automatic recordings and transcripts. It is even possible to download the transcript after the meeting. In this blog I will show you how you can retrieve and store a meeting transcript on SharePoint Online via a Power Automate flow.

transcript_meeting_manual_download

Inspiration

I was inspired by the tweet below from Lee Holmes. He showed that it was possible to retrieve the transcript content via PowerShell. And I thought, why not try it via Power Automate as well?

YouTube video

Before you continue reading. I also have a YouTube video about the setup.

Meeting Policies

Transcription is a feature which will be enabled or disabled in one of your Meeting Policies. Double check this before you start with your Power Automate setup.

enable_transcription

GET callTranscript content

After reading some several Graph API docs I figured out this would be possible.

The onlineMeeting id can be retrieved via the Get onlineMeeting method and a $filter query parameter and the JoinWebUrl.

After that it is possible to retrieve all transcripts of our meeting with a List transcripts method.

And finally the transcript content can be retrieved in application/vnd.openxmlformats-officedocument.wordprocessingml.document format via the Get callTranscript method.

Lets try and turn this into a working flow!

Flow setup

Checklist before you start:
– This example uses HTTP connector actions which are part of a premium feature, make sure you have a license which covers this.
– The HTTP actions also use an app (with the correct Graph API permissions) in Azure Active Directory for authentication.

storetranscriptasfile

1. Add a When an upcoming event is starting soon (V3) action.

whenanupcomingeventisstartingsoon

a. Select your Calendar Id, in this case Calendar

2. Add a Get my profile (v2) action.
To retrieve my own email for the Author field of the SharePoint page.

getmyprofile_02

3. Add a Initialize variable action.

onlinemeetingvariable

a. Provide a Name, in this example onlineMeetingId
b. Select a Type, String
c. Leave Value empty

4. Add a second Initialize variable action.

initializevariable_transcriptid

a. Provide a Name, in this example transcriptId
b. Select a Type, String
c. Leave Value empty

5. Add a Condition action.
In this condition the body field within the body is checked for the meetup-join hyperlink. A indexOf function is used. If this is found it will output 1. If it is not found (equal to -1), it will output 0.

condition_checkifteamsmeeting

a. Use the expression below for the where statement

6. Add a HTTP action (in the If Yes section).
A Get onlineMeeting method from the Graph API is used. In this case specifically with a $filter query parameter and the JoinWebUrl. This is information we can retrieve from the body/body of the event message.

onlinemeetingid_graph

a. Select the GET method
b. Use the URI from the code snippet below

c. Select Active Directory OAuth for the Authentication, provide the details of your Azure AD App.

7. Add a Set Variable action (in the If Yes section).

setvariable_onlinemeetingid

a. In the Name field select the onlineMeetingId variable
b. In the Value field use the expression from the code snippet below

8. Add a Delay until action (in the If Yes section).

delayuntil_30minutesafterscheduledmeetingend

a. In the Timestamp field use the expression from the code snippet below

9. Add a second HTTP action (in the If Yes section).
A List transcripts method is used to retrieve the transcripts of the specific online meeting.

listtranscripts

a. Select the GET method
b. Use the URI from the code snippet below

c. Select Active Directory OAuth for the Authentication, provide the details of your Azure AD App.

10. Add a second Set Variable action (in the If Yes section).

setvariable_transcriptid

a. In the Name field select the transcriptId variable
b. In the Value field use the expression from the code snippet below

11. Add a third HTTP action (in the If Yes section).
A Get callTranscript method is used to retrieve the content of an individual transcripts in the application/vnd.openxmlformats-officedocument.wordprocessingml.document format.

getcalltranscriptcontent

a. Select the GET method
b. Use the URI from the code snippet below

c. Select Active Directory OAuth for the Authentication, provide the details of your Azure AD App.

12. Add a Create File action.

createfile_spo

a. Select the Site Address from the dropdown, or use an environment variable (parameter) like me
b. Select a Folder Path, in this example /Shared Documents/Meeting Transcripts
c. Use the expression from the code snippet below for the File Name

d. Use the Body field of the HTTP – Transcript action

That is it for the setup of this example.

Testing Transcription

You can start a transcript from within the More menu option.

starttranscript

When the transcript is started you would see it in the side panel during the meeting.

starttranscript02

After the meeting you will see it in the Recordings & Transcripts tab

transcript_meeting_manual_download

But also as a file in our specified Document Library

doclib_meetingtranscripts

When you open the file you should see something like below

transcript_meeting

You can now e-mail/share a link to the document. Or potentially process it with an AI model. More on that in a future blog…

For now, Happy testing!

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.