π Automatically Summarize Microsoft Teams Meetings with Azure OpenAI + Power Automate
Absolutely! Below is your final solution rewritten as a professional blog post, with Azure OpenAI URL and API key omitted or hidden for security.
π Automatically Summarize Microsoft Teams Meetings with Azure OpenAI + Power Automate
Author: Kirolos – Power Platform & AI Automation Engineer
Published: [Insert Date]
π Overview
Tired of manually documenting meeting notes from Microsoft Teams? In this post, I’ll walk you through a real-world solution to automatically summarize Teams meetings using the transcript (.vtt) file, Azure OpenAI (GPT-4.1), and Power Automate.
This solution will:
-
Monitor for uploaded
.vtttranscript files from Teams -
Clean and prepare the content using Power Automate
-
Send it to Azure OpenAI for summarization
-
Deliver a clean, actionable meeting summary via email
π§ Use Case
-
Environment: Microsoft 365, SharePoint, Azure OpenAI, Power Automate
-
Goal: Summarize Teams meeting transcript files automatically and send summaries to stakeholders
π§© Full Flow Breakdown (Step by Step)
πΉ Step 1: Trigger – When a File is Created
Trigger: When a file is created (properties only)
-
Site Address: Your SharePoint site
-
Library: Where
.vtttranscripts are uploaded
Optional Filter: Only run when the uploaded file ends with .vtt
@endswith(triggerOutputs()?['body/{FilenameWithExtension}'], '.vtt')
πΉ Step 2: Get File Content
Action: Get file content
-
Use the
Identifierfrom the trigger to fetch the actual content of the.vttfile.
πΉ Step 3: Clean the Transcript
Action: Compose
-
Name:
Clean_VTT_Content -
Expression:
base64ToString(body('Get_file_content')?['$content'])
This expression decodes the file content from base64 into readable text.
πΉ Step 4: Create the System Prompt
Action: Compose
-
Name:
System_Message -
Text:
You are a professional AI meeting assistant. Summarize the transcript clearly with:
1. Main Discussion Points
2. Key Takeaways
3. Action Plan (mention names if available)
πΉ Step 5: Send Request to Azure OpenAI
Action: HTTP
-
Method:
POST -
URI:
(Use your Azure OpenAI endpoint here)
Example:https://<your-resource>.openai.azure.com/... -
Headers:
{
"Content-Type": "application/json",
"api-key": "<your-Azure-OpenAI-key>"
}
-
Body:
{
"messages": [
{
"role": "system",
"content": [
{
"type": "text",
"text": "@{outputs('System_Message')}"
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "@{outputs('Clean_VTT_Content')}"
}
]
}
],
"temperature": 1,
"top_p": 1,
"max_tokens": 800
}
⚠️ Use the Expression tab to insert the dynamic outputs() values – do not wrap them in quotes.
πΉ Step 6: Parse the Response
Action: Parse JSON
-
Use the
Bodyoutput from the HTTP request -
Schema:
{
"type": "object",
"properties": {
"choices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"message": {
"type": "object",
"properties": {
"content": {
"type": "string"
}
}
}
}
}
}
}
}
πΉ Step 7: Compose Final Summary Text
Action: Compose
-
Expression:
body('Parse_JSON')?['choices'][0]['message']['content']
πΉ Step 8: Send Plain-Text Summary Email
Action: Send an email (V2)
| Field | Value |
|---|---|
| To: | Target user or group |
| Subject: | Meeting Summary – @{triggerOutputs()?['body/{FilenameWithExtension}']} |
| Body: |
π Meeting Summary
Transcript File: @{triggerOutputs()?['body/{FilenameWithExtension}']}
Summary:
-----------------------------------------
@{outputs('Compose')}
-----------------------------------------
Generated using Azure OpenAI (GPT-4.1)
π’ Make sure “Is HTML” = No
π Bonus: How to Enable Transcripts in Microsoft Teams
To use this automation, Teams transcripts must be turned on and downloaded.
Here’s the official Microsoft guide:
π View live transcription in Microsoft Teams meetings
✅ Summary
With this flow, every .vtt transcript uploaded from a Teams meeting is automatically:
-
Cleaned and decoded
-
Sent to GPT-4.1 via Azure OpenAI
-
Summarized professionally with:
-
Main Discussion Points
-
Key Takeaways
-
Action Plan
-
-
Emailed to the team in plain text format
Comments
Post a Comment