Automate Meeting Minutes in Teams with Power Automate
You’ve probably sat through a Teams call, taken notes on a sticky note, and then spent the rest of the day hunting for that scribble. It’s a waste of time that could be spent on real work. The good news? Power Automate can turn that chaotic process into a smooth, hands‑free flow. In this post I’ll walk you through a step‑by‑step recipe that takes the minutes from a Teams meeting and drops them into a OneNote page (or a SharePoint file) without you lifting a finger.
Why you need this now
Remote work is here to stay, and Teams meetings are the new conference rooms. Every week we see more meetings, more participants, and more information to capture. If you keep doing the old manual method, you’ll end up with missed action items, duplicated work, and a growing pile of “I forgot what we decided” moments. Automating minutes not only saves time, it also creates a reliable record that anyone can pull up later. Think of it as a safety net for your team’s memory.
What you’ll need
- A Microsoft 365 account with access to Teams, Power Automate, and either OneNote or SharePoint.
- Basic familiarity with the Power Automate web portal (flow.microsoft.com).
- A Teams meeting that you host or have organizer rights for – the flow needs permission to read the meeting details.
If any of these sound unfamiliar, don’t worry. I started with zero Power Automate experience and now run several flows a day. The key is to take it one step at a time.
Overview of the flow
At a high level the flow does three things:
- Trigger – When a Teams meeting ends, the flow starts.
- Gather data – It pulls the meeting title, date, participants, and the chat transcript.
- Create a note – It writes all that info into a OneNote page (or a SharePoint document) and sends a link back to the meeting chat.
Now let’s dive into each step.
Step 1 – Set up the trigger
- Open Power Automate and click Create → Automated cloud flow.
- Name the flow “Teams Meeting Minutes” and search for the trigger When a meeting ends (Microsoft Teams).
- Choose the calendar you want to monitor – usually your default Outlook calendar works fine.
- Save the trigger.
The trigger fires automatically as soon as a meeting finishes, so you don’t have to remember to start anything manually.
Step 2 – Get meeting details
After the trigger, add a Get meeting details action. This pulls the meeting ID from the trigger and returns fields like Subject, Start time, End time, and Organizer.
Tip: If you only need a subset of the data, you can skip the fields you don’t plan to use. Keeping the flow lean makes it run faster.
Step 3 – Pull the chat transcript
Teams stores the meeting chat as a conversation thread. To fetch it:
- Add the action List channel messages (under Microsoft Teams).
- In the Team field, select the team where the meeting was held.
- In the Channel field, choose Meeting chat – this option appears only after the meeting ends.
The output is an array of messages. You’ll later turn this array into a simple text block.
Step 4 – Build the minutes text
Now we need to stitch everything together into a readable format. Add a Compose action and use the following template (replace the brackets with dynamic content from previous steps):
Meeting Minutes – {Subject}
Date: {Start time} to {End time}
Organizer: {Organizer name}
Participants: {Attendees list}
--- Chat Transcript ---
{Chat messages}
To turn the array of chat messages into plain text, use the Join expression: join(body('List_channel_messages')?['value'], '\n'). This adds a line break between each message.
Step 5 – Create the note
You have two common destinations: OneNote or SharePoint. I’ll show both; you can pick the one you prefer.
Option A – OneNote
- Add Create page in a section (OneNote).
- Choose the notebook and section where you want minutes stored.
- For the Page title, use the meeting subject.
- For the Page content, insert the output of the Compose action.
OneNote automatically formats the text, and the page gets a permanent link you can share.
Option B – SharePoint
- Add Create file (SharePoint).
- Select the site and document library.
- Set the File name to something like
{Subject}_{Start time}.md(Markdown works well). - For File content, use the Compose output.
SharePoint gives you version control and easy permission management.
Step 6 – Send the link back to the meeting
The final touch is to let participants know the minutes are ready. Add a Post a message in a chat or channel action:
- Choose Chat and select the meeting chat ID (available from the trigger).
- Write a short note, e.g., “Your meeting minutes are ready: [link]”.
- Insert the dynamic link from the OneNote or SharePoint step.
Now everyone gets a notification the moment the minutes are saved.
Step 7 – Test and fine‑tune
Run a quick test by scheduling a short Teams call, adding a few chat messages, and ending the meeting. Check the OneNote page or SharePoint file – you should see a clean, formatted record. If anything looks off, go back into the flow and adjust the compose template or the join expression.
A couple of common tweaks:
- Filter out system messages – add a condition to ignore messages that start with “Microsoft Teams”.
- Add a table of action items – you can parse messages that contain “TODO:” and list them separately.
Real‑world example from my desk
Last month I set up this flow for my product team. Before automation, we spent about 30 minutes after each sprint demo copying chat notes into a Word doc. After the flow went live, the minutes appeared automatically, and the team started using the “TODO:” tag to highlight next steps. In the first two weeks we saved roughly 10 hours of manual work. Plus, the habit of tagging action items made our follow‑up meetings sharper.
Keep it simple, keep it useful
Automation is tempting – you can add fancy AI summarizers, fancy formatting, or even push the minutes to a Teams channel. But the best flows are the ones that solve a real pain point without adding new complexity. Start with the basic version described here, and only add extras if they truly help your workflow.
If you run into a snag, the Power Automate community forum is a gold mine. Most errors are just missing permissions or a typo in a dynamic field. And remember, every flow you build makes you a little more comfortable with the platform. Before you know it, you’ll be automating approvals, onboarding tasks, and more.
Happy automating!
- → Affordable Automation Tools Every Small Business Should Deploy Today @smallbizautomation
- → Step-by-step workflow optimization to boost small business productivity @smallbizautomation
- → Step-by-Step: Automate Your Daily Tasks on Android with Free Built-In Tools @productiveandroid
- → Automate Repetitive Tasks in 5 Simple Steps Using Free Tools @peakproductivity
- → 5 Automation Hacks to Streamline Remote Collaboration Today @remoteaitoolbox