46 min readAmbient capture

Implementation Guide: Transcribe board and committee meetings and generate minutes for approval

Step-by-step implementation guide for deploying AI to transcribe board and committee meetings and generate minutes for approval for Non-Profit Organizations clients.

Hardware Procurement

Jabra Speak2 75 Conference Speakerphone

Jabra (GN Audio)2775-209 (USB-C, Microsoft Teams certified variant)Qty: 1

$180-$200 MSP cost (Ingram Micro/D&H) / $250-$299 suggested resale

Primary boardroom audio capture device for in-person and hybrid meetings. Features 4 beamforming noise-cancelling microphones with 360° pickup, super-wideband audio, USB-C and Bluetooth connectivity, and Microsoft Teams certification. Supports rooms up to 10 participants. The high-quality microphone array is critical for accurate AI transcription—poor audio input is the #1 cause of transcription errors.

Jabra Speak2 75 Link Cable (Daisy-Chain)

Jabra (GN Audio)14207-78Qty: 1

$25-$35 MSP cost / $45-$55 suggested resale

Optional accessory to link two Jabra Speak2 75 units together for larger boardroom configurations (10-16 people). Only procure if the client's primary boardroom seats more than 10 participants around the table.

Conference Room Laptop or Mini PC

Lenovo or IntelLenovo ThinkCentre M70q Gen 4 (12E30050US) or equivalent Intel NUCQty: 1

$450-$650 MSP cost / $600-$800 suggested resale

Dedicated compute device for the boardroom that runs Microsoft Teams Rooms or the Zoom Rooms client. Ensures the meeting platform and transcription service are always ready without relying on a board member's personal laptop. An i5 processor, 8GB RAM, and 256GB SSD is sufficient. If the client already has a suitable laptop or PC in the boardroom, this can be skipped.

USB-C Hub / Docking Station

Anker or CalDigitAnker 341 USB-C Hub (A8346) or CalDigit USB-C SOHO DockQty: 1

$30-$50 MSP cost / $50-$75 suggested resale

Provides reliable USB-A/C ports and HDMI output for connecting the Jabra speakerphone and external display to the room PC. Ensures clean cable management in the boardroom.

External Display (Optional)

LG or SamsungLG 55UN7300 55-inch or Samsung BU8000 55-inchQty: 1

$350-$450 MSP cost / $500-$600 suggested resale

Wall-mounted or cart-mounted display in the boardroom for viewing remote participants, shared documents, and real-time transcription captions during hybrid meetings. Only procure if the client does not already have a suitable display in their meeting room.

Software Procurement

Microsoft 365 Business Basic (Nonprofit)

MicrosoftPer-seat SaaS subscription (CSP nonprofit pricing)

$0 for first 10 donated licenses via Microsoft Nonprofit Program, then ~$3.00/user/month for additional seats

Foundation platform providing Microsoft Teams for video conferencing, SharePoint Online for document storage and minutes archival, and OneDrive for individual storage. Most nonprofits already have this; verify current licensing before procuring.

Microsoft Teams Premium

MicrosoftPer-seat SaaS add-on subscription (CSP)Qty: 3-5 licenses (board secretary, executive director, committee chairs)

$10.00/user/month = $30-$50/month

Enables Intelligent Recap features: AI-generated meeting notes with chapters, AI-identified action items and owners, speaker-attributed transcription, personalized timeline markers, and meeting recap summaries. This is the core AI engine for the solution. Only users who need to access AI recaps after meetings need this license.

Microsoft 365 Copilot (Nonprofit) — Optional Premium Add-on

MicrosoftPer-seat SaaS add-on subscription (CSP nonprofit pricing)Qty: 1-2 licenses (board secretary and ED only)

~$25.50/user/month (15% nonprofit discount from $30.00 commercial price); $25.50-$51.00/month total

Optional upgrade beyond Teams Premium that adds full Copilot capabilities: post-meeting Q&A ('What action items were assigned to the finance committee?'), AI-generated meeting summary emails, and Copilot in Word for refining draft minutes. Recommended only for organizations that want the most advanced AI assistance and have the budget.

SharePoint Online (included in M365)

Microsoft

$0 additional (included in M365 subscription)

Document management and archival platform for approved minutes, board packets, and meeting recordings. A dedicated 'Board Governance' SharePoint site will be configured with permission-restricted document libraries for minutes storage, meeting recordings, and board packets.

$0 additional (included in M365 subscription); Premium connectors if needed are $15/user/month

Workflow automation platform used to build the custom minutes generation and routing workflow. Triggers when a Teams meeting ends, extracts AI-generated notes, formats them into the minutes template, and routes to the board secretary for review.

Adobe Acrobat Online (or Microsoft Print to PDF)

Adobe or Microsoft

$0 (using built-in PDF capabilities in Word Online and Windows)

Final approved minutes are exported as PDF/A for long-term archival. PDF/A format ensures the document remains readable for permanent IRS compliance records. No additional cost needed as Word Online can export to PDF natively.

Prerequisites

  • Active Microsoft 365 tenant with nonprofit licensing verified through Microsoft Nonprofit Program (requires TechSoup validation or direct Microsoft nonprofit verification). Verify at https://nonprofit.microsoft.com
  • Microsoft Teams enabled for the organization with at least Business Basic licensing for all board members and committee participants
  • Global Administrator or Teams Administrator access to the Microsoft 365 admin center and Teams admin center for the MSP technician
  • SharePoint Online provisioned and accessible (included with M365 Business Basic+)
  • Stable internet connection in the boardroom: minimum 10 Mbps symmetrical (upload and download) for reliable video conferencing with real-time transcription; verify with a speed test at the client site
  • Wi-Fi network in the boardroom rated at 802.11ac (Wi-Fi 5) minimum; Wi-Fi 6 (802.11ax) preferred. Alternatively, wired Ethernet to the room PC is ideal
  • Client's bylaws and governance policies reviewed to confirm no prohibition on meeting recording; if bylaws are silent on recording, recommend the board pass a resolution authorizing AI-assisted meeting transcription
  • Board secretary identified as the primary operator of the minutes review workflow; this person must have basic proficiency with Microsoft Word Online and SharePoint
  • List of all regular meeting series obtained from the client: board meetings (typically quarterly or monthly), committee meetings (finance, governance, program, etc.), and any special meetings. Document the cadence, typical duration, and format (virtual/hybrid/in-person) for each
  • Meeting consent language approved by the client's legal counsel or board chair. At minimum, a verbal notice that meetings will be recorded and transcribed must be read at the start of each meeting
  • Firewall and network security configured to allow outbound HTTPS (port 443) traffic to Microsoft Teams, SharePoint, and related Microsoft 365 endpoints. Refer to https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges for the full endpoint list
  • If the client has board members located in the EU or subject to GDPR, written consent forms prepared for signature before the first recorded meeting

Installation Steps

...

Step 1: Verify and Upgrade Microsoft 365 Nonprofit Licensing

Log into the Microsoft 365 Admin Center and verify the client's current licensing. Confirm the tenant is registered as a nonprofit organization and eligible for nonprofit pricing. Check which users have licenses assigned and identify the 3-5 key users who will need Teams Premium licenses (board secretary, executive director, committee chairs). Purchase and assign Teams Premium add-on licenses through the CSP portal or Microsoft 365 Admin Center.

Connect to Microsoft 365 via PowerShell (run from MSP admin workstation)
powershell
# Connect to Microsoft 365 via PowerShell (run from MSP admin workstation)
Install-Module -Name Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes 'Organization.Read.All, User.ReadWrite.All, LicenseAssignment.ReadWrite.All'
# Verify nonprofit tenant status
Get-MgOrganization | Select-Object DisplayName, VerifiedDomains, AssignedPlans
# List current user licenses
Get-MgUser -All | Select-Object DisplayName, UserPrincipalName, AssignedLicenses | Format-Table
# After purchasing Teams Premium licenses in Admin Center, assign to key users
$userId = (Get-MgUser -Filter "displayName eq 'Jane Smith'").Id
$teamsPremiumSkuId = (Get-MgSubscribedSku | Where-Object {$_.SkuPartNumber -eq 'MICROSOFT_TEAMS_PREMIUM'}).SkuId
Set-MgUserLicense -UserId $userId -AddLicenses @(@{SkuId=$teamsPremiumSkuId}) -RemoveLicenses @()
Note

Teams Premium licenses can take up to 24 hours to fully provision. Assign licenses at least 2 days before the first test meeting. If the client does not yet have nonprofit verification, start the TechSoup/Microsoft nonprofit registration process immediately—it can take 2-10 business days.

Step 2: Enable Transcription and Recording Policies in Teams Admin Center

Navigate to the Microsoft Teams Admin Center (https://admin.teams.microsoft.com) and enable the meeting policies that allow transcription, recording, and AI-generated notes. Create a custom meeting policy specifically for board meetings if the client wants different settings for general staff meetings vs. board meetings.

powershell
# PowerShell alternative for enabling transcription policies
Install-Module -Name MicrosoftTeams -Scope CurrentUser
Connect-MicrosoftTeams
# Create a custom meeting policy for board meetings
New-CsTeamsMeetingPolicy -Identity 'BoardMeetingPolicy' -AllowTranscription $true -AllowRecording $true -AllowMeetingRecap $true -AllowMeetingRecapAI $true -AllowCartCaptionsAndRealTimeTranscription $true -LiveCaptionsEnabledType 'DisabledUserOverride' -AllowMeetingSummary $true
# Assign the policy to the board secretary and ED
Grant-CsTeamsMeetingPolicy -Identity 'boardsecretary@clientdomain.org' -PolicyName 'BoardMeetingPolicy'
Grant-CsTeamsMeetingPolicy -Identity 'executivedirector@clientdomain.org' -PolicyName 'BoardMeetingPolicy'
# Verify policy assignment
Get-CsOnlineUser -Identity 'boardsecretary@clientdomain.org' | Select-Object TeamsMeetingPolicy
Note

If the organization prefers to enable transcription org-wide, modify the Global policy instead of creating a custom one. The AllowMeetingRecapAI parameter specifically controls the Teams Premium Intelligent Recap feature. Policy changes can take 4-24 hours to propagate. Critical: Ensure AllowRecording is set to $true even if the client does not intend to keep recordings permanently—the recording/transcription engine must be enabled for AI notes to function.

Step 3: Configure SharePoint Board Governance Site

Create a dedicated SharePoint site for board governance documents. This site will serve as the permanent archive for approved minutes, draft minutes, meeting recordings (if retained), and board packets. Configure document libraries with appropriate metadata columns, permission groups, and retention policies.

powershell
# Connect to SharePoint Online via PowerShell
Install-Module -Name PnP.PowerShell -Scope CurrentUser
Connect-PnPOnline -Url 'https://clientdomain-admin.sharepoint.com' -Interactive
# Create the Board Governance site
New-PnPSite -Type TeamSite -Title 'Board Governance' -Alias 'boardgovernance' -Description 'Board and committee meeting minutes, recordings, and governance documents' -IsPublic $false
# Connect to the new site
Connect-PnPOnline -Url 'https://clientdomain.sharepoint.com/sites/boardgovernance' -Interactive
# Create document libraries
New-PnPList -Title 'Approved Minutes' -Template DocumentLibrary
New-PnPList -Title 'Draft Minutes' -Template DocumentLibrary
New-PnPList -Title 'Meeting Recordings' -Template DocumentLibrary
New-PnPList -Title 'Board Packets' -Template DocumentLibrary
# Add metadata columns to Approved Minutes library
Add-PnPField -List 'Approved Minutes' -DisplayName 'Meeting Date' -InternalName 'MeetingDate' -Type DateTime -Required
Add-PnPField -List 'Approved Minutes' -DisplayName 'Meeting Type' -InternalName 'MeetingType' -Type Choice -Choices 'Board Meeting','Finance Committee','Governance Committee','Program Committee','Executive Committee','Special Meeting' -Required
Add-PnPField -List 'Approved Minutes' -DisplayName 'Approval Status' -InternalName 'ApprovalStatus' -Type Choice -Choices 'Draft','Pending Approval','Approved','Amended' -Required
# Set permissions - restrict to Board Members group
New-PnPGroup -Title 'Board Members' -Owner 'boardsecretary@clientdomain.org'
Set-PnPList -Identity 'Approved Minutes' -BreakRoleInheritance -CopyRoleAssignments
# Add board members to the group (repeat for each member)
Add-PnPGroupMember -Group 'Board Members' -EmailAddress 'boardmember1@email.com'
Note

Adjust the Meeting Type choices to match the client's actual committee structure. The Board Governance site should be set to Private (not Public) to restrict access to authorized board members and staff only. Consider enabling versioning on the Draft Minutes library so edits are tracked. For IRS compliance, set a retention policy on Approved Minutes to 'Retain Forever' using Microsoft Purview if available, or document a manual retention policy.

Step 4: Install and Configure Boardroom Hardware

Physically install the Jabra Speak2 75 speakerphone and room PC in the client's primary boardroom. Position the speakerphone at the center of the conference table for optimal 360° voice pickup. Connect the room PC to the display, speakerphone, and network. Test audio levels and microphone pickup from all seating positions.

1
Unbox Jabra Speak2 75 and connect USB-C cable to room PC
2
Place speakerphone at center of boardroom table
3
Connect room PC to external display via HDMI (through USB-C hub if needed)
4
Connect room PC to wired Ethernet (preferred) or configure Wi-Fi
5
Boot room PC and sign into Windows with a dedicated service account
6
Install Microsoft Teams desktop client from https://www.microsoft.com/en-us/microsoft-teams/download-app
7
Sign into Teams with the board meeting room account or the board secretary's account
8
In Teams Settings > Devices, verify Jabra Speak2 75 appears as both Speaker and Microphone
9
Run a Teams test call: click the three-dot menu in Teams > Settings > Devices > 'Make a test call'
10
Walk around the boardroom table and speak at normal volume from each seat to verify pickup
Note

The Jabra Speak2 75 is plug-and-play with no driver installation needed on Windows 10/11. Position the device on a flat surface at table center—avoid placing it near papers, water bottles, or other objects that could obstruct the microphone array. If the boardroom is larger than 10 seats, deploy two Jabra Speak2 75 units connected via the daisy-chain link cable, positioned at the 1/3 and 2/3 points of the table. Update the Jabra firmware using Jabra Direct software (free download from jabra.com) before the first meeting.

Step 5: Create Board Meeting Template in Microsoft Teams

Set up a recurring Teams meeting series for each regular board and committee meeting. Configure the meeting options to automatically enable transcription and recording. Create a standardized meeting invitation template that includes the recording consent notice and agenda structure.

Microsoft Graph API: Create recurring board meeting with transcription enabled
http
POST https://graph.microsoft.com/v1.0/users/{board-secretary-id}/onlineMeetings

{
  "subject": "Board of Directors Meeting",
  "startDateTime": "2025-07-15T18:00:00Z",
  "endDateTime": "2025-07-15T20:00:00Z",
  "isEntryExitAnnounced": true,
  "allowedPresenters": "organizer",
  "recordAutomatically": true,
  "allowTranscription": true,
  "allowRecording": true
}
1
Open Teams Calendar > New Meeting
2
Title: 'Board of Directors Meeting - [Month Year]'
3
Add all board members as Required attendees
4
Set recurrence (e.g., Third Tuesday of every month, 6:00 PM - 8:00 PM)
5
Click Meeting Options (toolbar) and set: Record automatically: Yes | Allow transcription: Yes | Who can present: Only organizers and co-organizers
6
In the meeting body, paste the standard agenda template with consent notice
Note

The recording consent notice should be the first item in every meeting invitation body. Suggested text: 'NOTICE: This meeting will be recorded and transcribed using AI technology to assist in generating meeting minutes. By attending, you consent to the recording and transcription of your participation. If you have objections, please notify the Board Secretary before the meeting begins.' This text should be reviewed and approved by the client's board chair or legal counsel before first use.

Step 6: Build the Power Automate Minutes Generation Workflow

Create a Power Automate cloud flow that triggers when a Teams meeting recording and transcription are available, extracts the AI-generated meeting notes, formats them into a structured minutes draft using a Word template, and saves the draft to the SharePoint Draft Minutes library. The flow also sends a notification to the board secretary that the draft is ready for review.

1
Go to https://make.powerautomate.com
2
Click + Create > Automated cloud flow
3
Name: 'Board Meeting Minutes Generator'
4
Trigger: 'When a meeting recording is ready' (Microsoft Teams connector)
5
Add actions per the workflow specification in custom_ai_components
6
Save and test with a sample meeting
Note

Power Automate's Teams connector can take 15-60 minutes after a meeting ends to trigger, as Microsoft processes the recording and transcription. The flow uses standard connectors included with Microsoft 365, so no Power Automate Premium license is needed unless you add premium connectors. Test the flow end-to-end with a 5-minute sample meeting before the first real board meeting.

Step 7: Create the Minutes Word Template

Design a Microsoft Word template (.dotx) that follows Robert's Rules of Order format for meeting minutes. This template will be populated by the Power Automate workflow with data extracted from the AI meeting summary. Upload the template to the Board Governance SharePoint site.

  • Create the template in Word with content controls
  • Template structure:
  • 1. Organization letterhead/logo at top
  • 2. Title: 'MINUTES OF THE [MEETING TYPE]'
  • 3. Organization Name: [Org Name]
  • 4. Date and Time: [Meeting Date] at [Start Time]
  • 5. Location: [Location / 'Via Microsoft Teams Video Conference']
  • 6. CALL TO ORDER section
  • 7. ATTENDANCE section (Present / Absent / Guests)
  • 8. APPROVAL OF PREVIOUS MINUTES section
  • 9. REPORTS section
  • 10. OLD BUSINESS section
  • 11. NEW BUSINESS section
  • 12. MOTIONS AND VOTES section (table format)
  • 13. ACTION ITEMS section (table: Item, Responsible, Due Date)
  • 14. NEXT MEETING section
  • 15. ADJOURNMENT section
  • 16. Signature lines for Secretary and Chair
Upload template to SharePoint
powershell
Connect-PnPOnline -Url 'https://clientdomain.sharepoint.com/sites/boardgovernance' -Interactive
Add-PnPFile -Path './BoardMinutesTemplate.dotx' -Folder 'Shared Documents'
Note

Customize the template sections to match the client's existing minutes format if they have one. Many nonprofits have a specific format prescribed in their bylaws or established by tradition. Review 2-3 recent sets of approved minutes from the client to match their style. The template should include placeholder text that makes it clear which sections need human review and editing.

Step 8: Configure Meeting Recording Retention and Security Policies

Set up data retention policies for meeting recordings and transcripts. Per IRS requirements, approved minutes must be retained permanently, but raw recordings and transcripts can be retained for a shorter period. Configure access controls to ensure only authorized personnel can access recordings.

Configure SharePoint retention and Teams recording policy via PowerShell
powershell
# Configure retention using Microsoft Purview (if available with E3/E5 license)
# Or use SharePoint document library retention settings

# SharePoint retention via PowerShell:
Connect-PnPOnline -Url 'https://clientdomain.sharepoint.com/sites/boardgovernance' -Interactive

# Set retention on Approved Minutes library - no deletion allowed
# (Manual approach: Site Settings > Site Libraries and Lists > Approved Minutes > 
#  Library Settings > Information management policy settings > Enable Retention > 
#  Set to 'Do not delete')

# For Meeting Recordings library - retain for 3 years then auto-delete
# Configure in Purview Compliance Center if available:
# 1. Go to https://compliance.microsoft.com
# 2. Navigate to Data lifecycle management > Retention policies
# 3. Create new policy: 'Board Meeting Recordings Retention'
# 4. Scope: SharePoint site 'Board Governance' > 'Meeting Recordings' library
# 5. Retain items for 3 years, then delete automatically

# Restrict OneDrive/Teams recording sharing
# In Teams Admin Center > Meeting policies > BoardMeetingPolicy:
Set-CsTeamsMeetingPolicy -Identity 'BoardMeetingPolicy' -ChannelRecordingDownload 'Block' -AllowRecordingStorageOutsideRegion $false
Note

Discuss the retention policy with the client's executive director and board chair. Common nonprofit retention: Approved minutes = permanent; raw recordings = 1-3 years; draft transcripts = delete after minutes are approved and signed. Some states have specific retention requirements for nonprofit records—check the client's state. If using Microsoft 365 Business Basic (no Purview), implement retention manually with a documented policy and quarterly MSP audit.

Step 9: Conduct Pilot Meeting Test

Schedule a 30-minute test meeting with the board secretary and 2-3 staff members to validate the entire workflow end-to-end: Teams meeting with transcription, AI-generated notes, Power Automate flow trigger, minutes draft generation, and SharePoint filing. Test both the in-room hardware and remote participant scenarios.

Note

This pilot is critical—do not skip it. Common issues discovered during pilot: speakerphone too far from participants (muffled audio = poor transcription), Teams policy not yet propagated (transcription button missing), Power Automate flow permissions issue, or minutes template formatting problems. Schedule the pilot at least 2 weeks before the first actual board meeting to allow time for adjustments. Record specific transcription accuracy observations: did the AI correctly attribute speakers? Did it capture the motion language accurately?

Step 10: Train Board Secretary and Key Staff

Conduct a 60-90 minute hands-on training session with the board secretary (primary) and executive director (secondary). Cover the complete workflow from starting a meeting with transcription through reviewing and approving final minutes. Provide written quick-reference guides.

1
Overview of the AI meeting minutes workflow (10 min)
2
Starting a Teams meeting with recording and transcription (10 min): Demonstrate the Record and Transcribe buttons; Show how to read the consent notice; Show how to verify transcription is running (live captions)
3
During the meeting: best practices for clear transcription (10 min): Speak clearly and one at a time; State your name before speaking (helps speaker attribution); Read motions slowly and clearly; Announce vote results explicitly
4
After the meeting: reviewing AI-generated recap (15 min): Navigate to the meeting recap in Teams; Review AI notes, action items, and chapters; Demonstrate how to access the full transcript
5
Editing draft minutes in SharePoint (20 min): Open the draft from the Draft Minutes library; Edit for Robert's Rules compliance; Move approved final version to Approved Minutes library; Export as PDF
6
Q&A and practice (15 min)
Note

Create a one-page laminated quick-reference card for the boardroom that shows: (1) How to start recording/transcription, (2) The consent notice script, (3) Best practices for clear speech, (4) Where to find the AI recap after the meeting, (5) MSP support contact information. Leave this card on the boardroom table permanently. Schedule a follow-up 30-minute session after the first real board meeting to address any issues.

Custom AI Components

Board Meeting Minutes Generator Workflow

Type: workflow A Power Automate cloud flow that triggers when a Microsoft Teams meeting recording and transcription become available, extracts the AI-generated meeting recap and notes, transforms them into a structured Robert's Rules–compliant minutes draft, and saves it to the SharePoint Board Governance site for the board secretary to review.

Implementation:

Power Automate Flow: Board Meeting Minutes Generator

Flow Trigger

  • Connector: Microsoft Teams
  • Trigger: When a meeting recording is ready (or use a Recurrence trigger that checks for new recordings)
  • Filter: Only meetings with subject containing 'Board' OR 'Committee'

Flow Steps

Step 1: Get Meeting Details

  • Action: Microsoft Teams > Get meeting details
  • Input: Meeting ID from trigger
  • Extract: Subject, Start Time, End Time, Organizer, Attendees list

Step 2: Get Meeting Transcript

  • Action: HTTP with Azure AD > GET
  • Parse JSON response to extract transcript content with speaker attributions
Step 2: Graph API URL to retrieve meeting transcript
http
https://graph.microsoft.com/v1.0/me/onlineMeetings/{meetingId}/transcripts

Step 3: Get AI Meeting Notes

  • Action: HTTP with Azure AD > GET
  • This retrieves the Intelligent Recap AI-generated notes including: Meeting summary, Action items with owners, Key discussion topics/chapters
Step 3: Graph API URL to retrieve AI-generated meeting notes
http
https://graph.microsoft.com/beta/me/onlineMeetings/{meetingId}/meetingNotes

Step 4: Parse and Categorize Content

  • Action: Compose (Data Operations)
  • Use the following expressions to categorize transcript content:
Step 4: Compose expression payload to parse and categorize meeting content
json
{
  "meetingTitle": "@{triggerOutputs()?['body/subject']}",
  "meetingDate": "@{formatDateTime(triggerOutputs()?['body/startDateTime'], 'MMMM d, yyyy')}",
  "startTime": "@{formatDateTime(triggerOutputs()?['body/startDateTime'], 'h:mm tt')}",
  "endTime": "@{formatDateTime(triggerOutputs()?['body/endDateTime'], 'h:mm tt')}",
  "attendees": "@{join(body('Get_meeting_details')?['attendees'], ', ')}",
  "aiSummary": "@{body('Get_AI_Meeting_Notes')?['summary']}",
  "actionItems": "@{body('Get_AI_Meeting_Notes')?['actionItems']}",
  "topics": "@{body('Get_AI_Meeting_Notes')?['topics']}"
}

Step 5: Generate Minutes Draft with AI (OpenAI via HTTP)

  • Action: HTTP > POST
  • Headers: Authorization: Bearer {OpenAI-API-Key}, Content-Type: application/json
Step 5: OpenAI API endpoint URL
http
https://api.openai.com/v1/chat/completions

Step 5: System Prompt — Board Secretary AI

You are an expert board secretary for a nonprofit organization. Generate formal meeting minutes from the provided AI meeting summary and transcript excerpts. Follow Robert's Rules of Order format. Minutes should record ACTIONS TAKEN (motions, votes, decisions) not verbatim discussion. Structure: 1) Call to Order 2) Attendance 3) Approval of Previous Minutes 4) Reports 5) Old Business 6) New Business 7) Motions and Votes (in a clear format: Motion, Moved By, Seconded By, Vote Result) 8) Action Items (Item, Responsible Person, Due Date) 9) Next Meeting Date 10) Adjournment. Be concise and formal. Use past tense. If information for a section is not available in the transcript, include the section header with '[TO BE COMPLETED BY SECRETARY]' placeholder.
Sonnet 4.6

Step 5: User Prompt — Meeting Minutes Generation

Generate meeting minutes from the following information: Meeting: @{outputs('Parse_and_Categorize')?['meetingTitle']} Date: @{outputs('Parse_and_Categorize')?['meetingDate']} Start Time: @{outputs('Parse_and_Categorize')?['startTime']} End Time: @{outputs('Parse_and_Categorize')?['endTime']} Attendees: @{outputs('Parse_and_Categorize')?['attendees']} AI Meeting Summary: @{outputs('Parse_and_Categorize')?['aiSummary']} AI-Identified Action Items: @{outputs('Parse_and_Categorize')?['actionItems']} Discussion Topics: @{outputs('Parse_and_Categorize')?['topics']} Full Transcript (for reference): @{body('Get_Meeting_Transcript')?['content']}
Sonnet 4.6
Step 5: Full OpenAI API request body (POST to /v1/chat/completions)
json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "system",
      "content": "<see system prompt above>"
    },
    {
      "role": "user",
      "content": "<see user prompt above>"
    }
  ],
  "temperature": 0.3,
  "max_tokens": 4000
}

Step 6: Create Word Document in SharePoint

  • Action: SharePoint > Create file
  • Site: Board Governance
  • Library: Draft Minutes
  • File Name: Minutes_@{outputs('Parse_and_Categorize')?['meetingTitle']}_@{formatDateTime(triggerOutputs()?['body/startDateTime'], 'yyyy-MM-dd')}.docx
  • File Content: Use the Office Scripts connector or a Word template with content controls populated from Step 5 output

Step 7: Update SharePoint Metadata

  • Action: SharePoint > Update file properties
  • Set Meeting Date, Meeting Type, Approval Status = 'Draft'

Step 8: Send Notification to Board Secretary

  • Action: Outlook > Send an email (V2)
  • To: Board Secretary email
  • Subject: Draft Minutes Ready for Review: @{outputs('Parse_and_Categorize')?['meetingTitle']} - @{outputs('Parse_and_Categorize')?['meetingDate']}
  • Body: Include link to the draft document in SharePoint, summary of action items detected, and reminder to review and edit before the next board meeting

Step 9: Post to Teams Channel (Optional)

  • Action: Microsoft Teams > Post message in a chat or channel
  • Channel: Board Governance > General
  • Message: 'Draft minutes for [Meeting Title] on [Date] are ready for review. [Link to document]'

Error Handling

  • Add a parallel branch with a Scope action wrapping Steps 2–8
  • On failure: Send error notification email to MSP support address and board secretary
  • Include the error details and meeting ID for troubleshooting

Notes

Note

If Step 5 (OpenAI) is not desired due to data privacy concerns, replace with a simpler Compose action that uses string templates to arrange the Teams AI notes into the minutes format without sending data to OpenAI.

Warning

The OpenAI API key should be stored in Azure Key Vault or as an encrypted Power Automate connection, not hardcoded.

Note

Temperature 0.3 produces consistent, formal output suitable for governance documents.

Type: prompt A standardized verbal notice read by the meeting chair or board secretary at the beginning of every recorded board or committee meeting, ensuring legal compliance with recording consent requirements across all US states. Implementation:

Meeting Recording Consent Notice

## Meeting Recording Consent Notice ### Script (to be read aloud at the start of every recorded meeting): --- **[Chair/Secretary reads the following before any substantive business]:** 'Good [evening/afternoon]. Before we begin, I want to note for the record that this meeting will be audio and video recorded and transcribed using artificial intelligence technology. The transcription will be used to assist in preparing draft meeting minutes. The AI-generated draft will be reviewed and edited by the Board Secretary before being presented for approval at our next meeting. The recording and transcript will be stored securely in our organization's Microsoft 365 environment with access restricted to authorized board officers and staff. The recording will be retained for [1 year / 3 years / per our retention policy] and then securely deleted. The approved minutes will be retained permanently as part of our governance records. If any board member objects to being recorded, please speak up now and we will discuss accommodations. [Pause for 5 seconds] Hearing no objections, I will now begin the recording and transcription.' --- ### Usage Notes: - This script must be read BEFORE the recording is started in Teams - After reading the script and confirming no objections, the secretary starts the recording - The first words captured on the recording should be: 'The recording has now begun. Let the record show that all participants were notified of and consented to the recording and AI transcription of this meeting.' - For virtual meetings, also post the consent notice in the Teams meeting chat at the start - Customize the retention period to match the client's approved retention policy - If a board member objects, stop and discuss privately; consider having them attend by phone with recording paused during their contributions, or hold a vote on recording policy - Keep a record of the consent notice being read in the minutes themselves under 'Call to Order'
Sonnet 4.6

Minutes Post-Processing AI Prompt

Type: prompt A carefully engineered system prompt used within the Power Automate workflow to instruct GPT-5.4 to transform raw AI meeting notes and transcripts into properly formatted Robert's Rules–compliant nonprofit board meeting minutes.

Implementation:

System Prompt for Minutes Generation

You are an experienced nonprofit board secretary generating formal meeting minutes. You must follow Robert's Rules of Order (12th Edition) format precisely. ## CRITICAL RULES: 1. Minutes record what was DONE, not what was SAID. Do not summarize discussions. 2. Use past tense throughout. 3. Record all motions VERBATIM using this exact format: - 'A motion was made by [Name] and seconded by [Name] to [exact motion text]. The motion [carried/failed] by [unanimous voice vote / roll call vote: X in favor, Y opposed, Z abstaining].' 4. Record all votes and their results. 5. Record all action items with the responsible person and due date. 6. If a report was given, note only: '[Name] presented the [report name]. Key points included [1-2 sentence summary]. The report was received and filed.' 7. Do NOT include personal opinions, emotional language, or detailed back-and-forth discussion. 8. If quorum information is available, state it: 'A quorum was established with [X] of [Y] board members present.' 9. If information for any section is not available in the source material, include the section header with '[TO BE COMPLETED BY SECRETARY]'. 10. End with signature lines for the Secretary and Board Chair. ## OUTPUT FORMAT: [ORGANIZATION NAME] MINUTES OF THE [MEETING TYPE] [Date] | [Start Time] - [End Time] [Location or 'Held via Microsoft Teams Video Conference'] I. CALL TO ORDER The meeting was called to order at [time] by [Chair name]. [Recording consent notice was read and acknowledged by all participants.] II. ATTENDANCE Present: [List of names with titles] Absent: [List of names with titles] Guests: [List if any] A quorum [was/was not] established. III. APPROVAL OF PREVIOUS MINUTES [Motion to approve minutes of previous meeting, with result] IV. REPORTS A. [Report name] - [Presenter] [1-2 sentence summary. Report received and filed.] V. OLD BUSINESS [Items continued from previous meetings. Motions and votes.] VI. NEW BUSINESS [New items. Motions and votes.] VII. ACTION ITEMS | # | Action Item | Responsible | Due Date | |---|------------|-------------|----------| | 1 | [Item] | [Name] | [Date] | VIII. NEXT MEETING The next meeting is scheduled for [date] at [time] at [location]. IX. ADJOURNMENT There being no further business, the meeting was adjourned at [time]. Respectfully submitted, _______________________________ [Secretary Name], Secretary Approved: _______________ Date: _______________ [Chair Name], Board Chair
Sonnet 4.6

Temperature and Parameter Settings

  • Temperature: 0.2-0.3 (low, for consistent formal output)
  • Max tokens: 4,000 (sufficient for 2-hour meeting minutes)
  • Top_p: 0.9
  • Frequency penalty: 0.3 (reduces repetitive phrasing)

Minutes Review and Approval Tracker

Type: integration A SharePoint list-based tracking system that manages the lifecycle of meeting minutes from AI-generated draft through secretary review, board approval, and permanent archival. Integrated with Power Automate for status change notifications.

Implementation

SharePoint List: Minutes Approval Tracker

List Configuration

  • Site: Board Governance
  • List Name: Minutes Approval Tracker

Columns

  • Meeting Title — Single line of text | Required
  • Meeting Date — Date | Required
  • Meeting Type — Choice | Board Meeting, Finance Committee, Governance Committee, Program Committee, Executive Committee, Special Meeting
  • Draft Generated Date — Date | Auto-populated by Power Automate
  • Draft Link — Hyperlink | Link to draft in Draft Minutes library
  • Secretary Review Status — Choice | Pending Review, In Review, Review Complete
  • Secretary Notes — Multi-line text | Secretary's editing notes
  • Presented for Approval — Date | Date minutes were presented to the board
  • Approval Status — Choice | Draft, Presented, Approved, Approved with Amendments
  • Approval Date — Date | Date board voted to approve
  • Approved Minutes Link — Hyperlink | Link to final PDF in Approved Minutes library
  • Recording Retained — Yes/No | Whether meeting recording is still stored
  • Recording Deletion Date — Date | Calculated: Meeting Date + retention period

Power Automate Flows for the Tracker

  • Flow 1: Status Change Notification — Trigger: When an item is modified in 'Minutes Approval Tracker' | Condition: If 'Approval Status' changed to 'Approved' | Actions: (1) Get the draft document from Draft Minutes library, (2) Copy to Approved Minutes library, (3) Update Approved Minutes Link in tracker, (4) Send email to board secretary confirming archival, (5) Send email to ED with link to approved minutes
  • Flow 2: Recording Cleanup Reminder — Trigger: Recurrence (monthly) | Condition: Find items where Recording Deletion Date <= today AND Recording Retained = Yes | Action: Send reminder email to MSP and board secretary to delete expired recordings
  • Flow 3: Overdue Review Alert — Trigger: Recurrence (weekly) | Condition: Find items where Secretary Review Status = 'Pending Review' AND Draft Generated Date < 14 days ago | Action: Send reminder to board secretary that draft minutes need review

Setup Commands (PnP PowerShell)

PnP PowerShell commands to provision the Minutes Approval Tracker list and views in SharePoint
powershell
Connect-PnPOnline -Url 'https://clientdomain.sharepoint.com/sites/boardgovernance' -Interactive

# Create the tracking list
New-PnPList -Title 'Minutes Approval Tracker' -Template GenericList

Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Meeting Title' -InternalName 'MeetingTitle' -Type Text -Required
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Meeting Date' -InternalName 'MeetingDate' -Type DateTime -Required
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Meeting Type' -InternalName 'MeetingType' -Type Choice -Choices 'Board Meeting','Finance Committee','Governance Committee','Program Committee','Executive Committee','Special Meeting'
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Draft Generated Date' -InternalName 'DraftGeneratedDate' -Type DateTime
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Draft Link' -InternalName 'DraftLink' -Type URL
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Secretary Review Status' -InternalName 'SecretaryReviewStatus' -Type Choice -Choices 'Pending Review','In Review','Review Complete'
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Secretary Notes' -InternalName 'SecretaryNotes' -Type Note
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Presented for Approval' -InternalName 'PresentedForApproval' -Type DateTime
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Approval Status' -InternalName 'ApprovalStatus' -Type Choice -Choices 'Draft','Presented','Approved','Approved with Amendments'
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Approval Date' -InternalName 'ApprovalDate' -Type DateTime
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Approved Minutes Link' -InternalName 'ApprovedMinutesLink' -Type URL
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Recording Retained' -InternalName 'RecordingRetained' -Type Boolean
Add-PnPField -List 'Minutes Approval Tracker' -DisplayName 'Recording Deletion Date' -InternalName 'RecordingDeletionDate' -Type DateTime

# Create a default view
Add-PnPView -List 'Minutes Approval Tracker' -Title 'All Minutes' -Fields 'MeetingTitle','MeetingDate','MeetingType','ApprovalStatus','DraftLink','ApprovedMinutesLink' -SetAsDefault
Add-PnPView -List 'Minutes Approval Tracker' -Title 'Pending Review' -Fields 'MeetingTitle','MeetingDate','SecretaryReviewStatus','DraftLink' -Query "<Where><Eq><FieldRef Name='SecretaryReviewStatus'/><Value Type='Choice'>Pending Review</Value></Eq></Where>"

Transcription Quality Enhancement Prompt Card

Type: prompt A physical and digital reference card distributed to all board and committee meeting participants with best practices for maximizing AI transcription accuracy. Addresses the most common causes of poor transcription in boardroom settings.

Implementation:

Board Meeting Best Practices for AI Transcription

### Quick Reference Card (Print double-sided, laminate, place on boardroom table) --- **SIDE 1: BEFORE THE MEETING** ✅ **Test the speakerphone** - Ensure the Jabra device is powered on and connected (solid blue LED) ✅ **Position the mic** - Keep the speakerphone at the center of the table, unobstructed ✅ **Join on time** - The AI learns speaker voices from the first few minutes ✅ **Close the door** - Background noise significantly reduces transcription accuracy ✅ **Mute cell phones** - Ringtones and notification sounds corrupt the audio stream ✅ **Remote participants** - Use headsets or earbuds, not laptop speakers (prevents echo) --- **SIDE 2: DURING THE MEETING** 🎙️ **One person at a time** - Overlapping speech is the #1 transcription killer 🎙️ **State your name first** - 'This is [Name]. I move that...' helps speaker attribution 🎙️ **Speak at normal volume** - Don't shout or whisper 🎙️ **Read motions clearly** - Slow down and enunciate when making or reading a formal motion 🎙️ **Spell unusual names** - When referencing unusual proper nouns, spell them once for the record 🎙️ **Announce votes clearly** - Chair should say: 'The motion carries with [X] in favor, [Y] opposed, [Z] abstaining' 🎙️ **Avoid rustling papers** - Paper sounds near the mic degrade audio quality 🎙️ **Remote participants: Stay muted when not speaking** 📋 **Chair's Reminder:** Read the recording consent notice at the start of every meeting. 🆘 **Technical Issues?** Contact [MSP Name] at [Phone] or [Email] --- ### Digital Version Create this as a SharePoint page at /sites/boardgovernance/SitePages/Transcription-Best-Practices.aspx Include the same content with additional detail and links to training videos. Email a PDF version to all board members before the first recorded meeting.
Sonnet 4.6

Testing & Validation

Client Handoff

Client Handoff Checklist

Training Sessions Delivered

1
Board Secretary Training (60-90 min): Complete walkthrough of the AI meeting minutes workflow—starting recording, reviewing AI recap, editing draft minutes, managing the approval tracker, and archiving approved minutes as PDF. Hands-on practice with a real meeting.
2
Executive Director Briefing (30 min): Overview of the system, how to access approved minutes, understanding the AI capabilities and limitations, and how to request MSP support.
3
Board Chair Briefing (15-20 min): How to read the consent notice, best practices for running a meeting that produces good transcription (calling on speakers by name, announcing vote results clearly), and what the AI-generated minutes look like.
4
All Board Members Communication: Email sent to all board members explaining the new AI-assisted minutes process, the consent notice procedure, and the best practices reference card.

Documentation Delivered

1
Quick Reference Card (laminated, placed in boardroom): Starting recording, consent notice script, best practices for clear transcription, MSP support contact
2
Board Secretary Workflow Guide (5-10 page PDF in SharePoint): Step-by-step process with screenshots for the entire minutes lifecycle
3
SharePoint Board Governance Site Guide (2-3 page PDF): How to navigate the site, find draft and approved minutes, use the approval tracker
4
IT Admin Documentation (for client's internal IT or MSP records): Teams policies configured, Power Automate flows documented, SharePoint site structure, retention policies, license inventory
5
Recording Consent Policy (board-approved document): Formal policy for recording meetings, retention periods, access controls, and board member rights

Success Criteria Review

Transition to Ongoing Support

  • Confirm the MSP managed services agreement covers ongoing support for this system
  • Provide the MSP support phone number and email for the board secretary to use
  • Schedule the first quarterly review meeting (3 months from go-live)
  • Document any known issues or workarounds discovered during implementation

Maintenance

Ongoing Maintenance Plan

Monthly Tasks (MSP Responsibility)

  • License Audit (15 min): Verify Teams Premium licenses remain assigned to the correct users. Check for any new board members or committee chairs who need licenses. Confirm nonprofit licensing eligibility is still active.
  • Power Automate Flow Health Check (15 min): Review flow run history at make.powerautomate.com. Check for failed runs, identify error patterns, and remediate. Verify the OpenAI API key (if used) has not expired and has sufficient credits.
  • SharePoint Storage Review (10 min): Check storage consumption in the Board Governance site. Verify recordings are being cleaned up per the retention policy. Ensure the Approved Minutes library is growing as expected.
  • Firmware Update Check (10 min): Check for Jabra Speak2 75 firmware updates via Jabra Direct. Apply during a maintenance window (not before a scheduled meeting). Also check for Teams desktop client updates on the room PC.

Quarterly Tasks (MSP Responsibility)

  • Transcription Quality Review (30 min): Review the transcript from the most recent board meeting with the board secretary. Assess accuracy, speaker attribution quality, and any recurring issues. Adjust speakerphone placement or recommend acoustic improvements if needed.
  • Minutes Template Review (20 min): Consult with board secretary on any desired changes to the minutes template format. Update the Word template and Power Automate flow as needed.
  • Security and Compliance Audit (30 min): Verify SharePoint permissions are still correctly configured (no unauthorized access). Confirm recording retention policy is being followed. Check that expired recordings have been deleted.
  • Board Member Onboarding Support: When new board members join, ensure they receive the best practices card, consent notice, and access to the Board Governance SharePoint site.

Semi-Annual Tasks

  • Platform Feature Review (1 hour): Review Microsoft Teams and Teams Premium release notes for new AI features that could benefit the client. Evaluate whether to upgrade to Copilot or add new capabilities. Present findings and recommendations to the executive director.
  • Training Refresh (30 min): Offer a brief refresher training session for the board secretary, especially if there have been UI changes or new features.
  • Backup Verification: Confirm that approved minutes are backed up per the organization's disaster recovery plan (e.g., secondary backup to Azure Blob Storage or external backup service).

Annual Tasks

  • Annual Governance Review (1 hour): Meet with board secretary and executive director to review the overall effectiveness of the AI minutes system. Gather feedback from board members. Assess whether the solution is meeting the success criteria established at handoff.
  • License Renewal and Cost Optimization: Review all licensing costs. Check for new nonprofit discount programs. Optimize license assignments (remove licenses from users who no longer need them).
  • Retention Policy Execution: Execute annual cleanup of recordings that have passed their retention period. Generate a report of all approved minutes archived during the year for the board's records.

SLA Considerations

  • Response Time: 4-hour response for issues reported during business hours; next-business-day for non-urgent requests.
  • Critical Issue Definition: Transcription/recording completely non-functional before a scheduled board meeting = Critical. Must be resolved or workaround provided before meeting time.
  • Workaround for Critical Failures: If Teams transcription is down before a meeting, the fallback is to use Fathom (free) or Otter.ai (free tier) as a temporary notetaker. The board secretary should also be trained to take manual notes as an ultimate fallback.
  • Escalation Path: Level 1: MSP helpdesk (basic troubleshooting, license issues). Level 2: MSP senior engineer (Power Automate flow issues, SharePoint configuration). Level 3: Microsoft Premier Support (Teams platform issues, transcription service outages).

Model/AI Retraining Triggers

  • Microsoft updates the Teams Intelligent Recap AI models automatically—no MSP action needed.
  • If using the OpenAI GPT-5.4 prompt in Power Automate: review the prompt quarterly for improvements. Update the model version when OpenAI releases new models (e.g., GPT-5.4 to GPT-5). Test new models with a sample transcript before deploying to production.
  • If transcription accuracy drops below 85% for a specific board member (e.g., strong accent, speech pattern), explore Microsoft's custom speech recognition profiles or adjust the best practices guidance for that individual.

Alternatives

For nonprofits that use Zoom instead of Microsoft Teams as their primary meeting platform. Deploy Zoom Business with the 50% nonprofit discount and pair it with Otter.ai Business for AI transcription and meeting summaries. Otter.ai joins Zoom meetings as a bot participant, transcribes with speaker attribution, and generates AI summaries with action items. Minutes are drafted manually by the secretary using the Otter summary as a reference, or a similar Power Automate / Zapier workflow can be built to format the output.

The most budget-friendly option for small nonprofits with tight budgets. Google Workspace for Nonprofits is completely free for up to 2,000 users and includes Google Meet with Gemini AI note-taking capabilities. Pair with Fathom, which offers unlimited free meeting recordings and AI summaries across Zoom, Teams, and Meet. The board secretary uses Gemini or Fathom AI summaries to draft minutes manually in Google Docs. Minutes are stored in a shared Google Drive folder with restricted permissions.

Boardable Professional+ (All-in-One Board Portal)

For nonprofits that want a purpose-built board management platform rather than assembling components from Microsoft 365. Boardable Professional+ includes built-in video conferencing, AI meeting transcription, AI-generated minutes, board packet management, agenda builder, voting tools, and document archival—all in one platform designed exclusively for nonprofit boards. No separate Teams/Zoom license needed for board meetings (though they can integrate with Teams/Zoom if preferred).

Note

Tradeoffs: Cost is higher at ~$35.99/user/month per board member (e.g., 12 board members = ~$432/month = ~$5,184/year). This is significantly more expensive than Teams Premium but eliminates the need to build custom Power Automate workflows, manage SharePoint governance sites, or configure minutes templates—it's all built in. The AI minutes feature is native and tailored for board governance. Tradeoff: board members must learn a new platform, and Boardable is only used for board meetings (not for staff meetings or general collaboration). Recommend this for nonprofits with 15+ board members, multiple active committees, and a desire for a turnkey governance solution without MSP-built custom workflows.

OnBoard with Minutes AI (Enterprise Governance)

For large nonprofits, foundations, community health systems, or quasi-governmental organizations with complex governance requirements. OnBoard is the #1 rated board portal software broadly and offers Minutes AI that captures discussion, motions, and votes in real time, delivering a drafted-minutes document as soon as the meeting ends. Includes board packet assembly, e-signatures, board assessments, and compliance tracking.

Self-Hosted OpenAI Whisper (Maximum Privacy)

For nonprofits with extreme data sensitivity concerns (e.g., healthcare nonprofits, domestic violence organizations, legal aid societies) where sending meeting audio to cloud AI services is unacceptable. Deploy OpenAI's Whisper large-v3 model on a local GPU server or private cloud VM. Meeting audio is recorded locally, transcribed on-premises, and never leaves the organization's network. The MSP builds a custom Python pipeline: audio capture → Whisper transcription → WhisperX speaker diarization → GPT-5.4 API (or local LLM) for minutes formatting.

Warning

Tradeoffs: Highest complexity and cost. Requires a GPU server ($1,500–$3,500 for an NVIDIA RTX 4090) or GPU cloud VM ($0.50–$2.00/hour on Azure/AWS). Requires Python development expertise to build and maintain the pipeline. No real-time transcription—processing happens after the meeting ends. Transcription accuracy matches cloud services (~95%) but lacks the polished UI of Teams Premium or Otter.ai. Ongoing maintenance burden is significant: model updates, server patching, GPU driver management. Recommend this only when the client has a documented data residency or privacy requirement that prohibits cloud transcription, AND has the budget for the hardware and MSP development time ($5,000–$10,000 initial build + $500–$1,000/month ongoing management).

Want early access to the full toolkit?