Skip to main content

Teams transcripts

Glean can index Microsoft Teams meeting transcripts so that meeting content powers AI answers and meeting summaries. Once enabled, attendees can generate a summary from the Today calendar card on the Glean home page, and transcript content grounds Glean's answers about meetings they attended.

This page covers the additional setup required for transcripts. It builds on the base Microsoft Teams connector, which must be configured first.

note

Teams does not expose a document URL for meeting transcripts, so transcripts do not appear as standalone documents in search results. Transcript content is used to generate meeting summaries and to ground chat and AI answers, not to return a transcript as its own search result.

How it works

Glean reads your calendar through the Microsoft Graph API to find meetings that have transcripts, then fetches the transcript content for those meetings.

  1. Glean enumerates calendar events (Outlook calendar) to identify meetings with associated transcripts.
  2. For each meeting, Glean reads the online meeting and its transcript through the meeting transcript endpoints.
  3. Transcript content is made available for meeting summaries and AI answers.

For related calendar features, see Calendar search and tools setup.

Transcript fetching modes

Transcripts can be fetched in two ways, controlled during connector setup:

  • On demand (default): Glean fetches a meeting's transcript only when it is needed — for example, when an attendee clicks Summarize on the Today card or asks Glean to summarize the meeting. This keeps transcript API volume low.
  • Eager crawling: When you enable crawling transcript content eagerly, Glean fetches transcript content for all accessible meetings in the background, so summaries and answers are ready without an on-demand fetch.
note

Eager crawling fetches transcripts across many meetings and users at once. Make sure the application access policy covers all the users whose meetings you want to crawl — see Crawling behavior and cost.

Prerequisites

Before you enable transcripts, verify the following:

  • The Microsoft Teams connector is configured and operational.
  • Meetings are accessible through Outlook. Meetings organized ad hoc directly from a Teams channel are not indexed.
  • Transcripts are visible only to meeting attendees. Non-attendees cannot access transcript content in Glean.

Permission requirements

Transcripts use a separate Entra ID app registration from the messaging connector, with its own Application (client) ID. The transcript app uses the same certificate and private key as the messaging app — upload the certificate to this app registration too — and you enter its client ID separately in Glean.

Grant admin consent for the following Microsoft Graph application permissions on the transcript app:

  • Calendars.Read
  • OnlineMeetings.Read.All
  • OnlineMeetingTranscript.Read.All
note

Transcripts and meetings only (no messages). To index transcripts without crawling Teams messages, configure the transcript app with the three scopes above plus the identity scopes Glean needs to resolve attendees:

  • User.Read.All
  • GroupMember.Read.All

Without the messaging permissions (ChannelMessage.Read.All, Chat.Read.All, and so on), Glean does not crawl Teams messages.

Set up transcript indexing (Azure)

Register the transcript app and grant it API access the same way as the main connector app (see Microsoft Teams setup for the app registration, certificate, and admin-consent steps), then complete the transcript-specific steps below.

Configure the application access policy

Microsoft requires an application access policy for an application to access online meetings and transcripts. Without this policy, transcript crawling fails with a TEAMS-2 error even when the API permissions are granted.

  1. Install PowerShell if it is not already installed. PowerShell is available for both macOS and Windows.

  2. Install and connect to the Microsoft Teams module:

    Install-Module MicrosoftTeams
    Import-Module MicrosoftTeams
    Connect-MicrosoftTeams

    This prompts you to sign in to Microsoft.

  3. Create an application access policy using the transcript app's Application (client) ID:

    New-CsApplicationAccessPolicy -Identity Glean-Meetings-App-Policy -AppIds "<transcript_client_id>" -Description "Glean Meetings App Policy"
  4. Grant the policy globally:

    Grant-CsApplicationAccessPolicy -PolicyName Glean-Meetings-App-Policy -Global

    This grants the application tenant-wide access to online meetings. You can revoke it at any time through PowerShell.

warning

Use the transcript app's client ID, not the main messaging connector's client ID. Referencing the wrong client ID, or creating the policy without granting it globally, is the most common cause of TEAMS-2 errors and silently returns zero transcripts.

note

Application access policy changes can take up to 30 minutes to propagate, and in some cases up to 24–48 hours.

Provide transcript credentials in Glean

In the Microsoft Teams connector setup, complete the transcript section:

  • Directory (tenant) ID — the same tenant ID as the messaging connector.
  • Transcript Application (client) ID — the client ID of the transcript app registration.
  • Client certificate and private key — the same certificate and PKCS#8 private key pair used for the messaging app. (Legacy client-secret deployments enter a separate transcript client secret instead.)
  • Enable crawl transcript content eagerly if you want background crawling rather than on-demand fetching.

Glean automatically enables meeting crawling when transcripts are turned on.

Crawling behavior and cost

  • Microsoft meters transcript content access through its APIs. If a tenant exhausts its available transcript API capacity, enable billing on the Azure application so transcript fetches can continue.
  • On-demand fetching (the default) keeps API volume low because Glean fetches a transcript only when an attendee needs it.
  • Eager crawling fetches transcripts for many users at once. If the application access policy is scoped to only a subset of users but Glean attempts to crawl all users, the repeated failed attempts can cause throttling. Grant the policy globally, or scope eager crawling to the users the policy covers.

Limitations

  • Meetings organized ad hoc directly from a Teams channel (not accessible through Outlook) are not indexed.
  • Transcripts are visible only to meeting attendees.
  • Teams does not provide a document URL for transcripts, so a transcript is not returned as a standalone search result. Transcript content powers summaries and AI answers instead.
  • Transcript content access is subject to Microsoft Graph API limits and may incur cost (see Crawling behavior and cost).

Troubleshooting

FAQs