Skip to content
Integrations

Microsoft Teams Connector

3 min read

Quick Start

Connect Teams from your Armbrain dashboard or from Claude:

From the dashboard (recommended):

  1. Go to hq.armbrain.io and open the Connectors tab
  2. Find Teams Meeting Transcripts or Teams Channel Messages and click + Connect
  3. Sign in with your Microsoft account and approve the requested permissions
  4. Done - Armbrain starts discovering content within 15 minutes

From Claude:

For meeting transcripts:

connectors action=connect source_type=o365_teams_transcript

For channel messages (requires an active client mind):

connectors action=connect source_type=o365_teams_channel

Open the returned authorization URL in your browser, approve Armbrain's access, and return to Claude.

Requirements

  • A Microsoft 365 plan with Teams. The connector uses Microsoft Graph APIs that require an active M365 license.
  • Admin consent may be required. The transcript and channel message permissions (OnlineMeetingTranscript.Read.All, ChannelMessage.Read.All) often require your IT administrator to approve them for your organization. If you see a "needs admin approval" screen during authorization, contact your IT team.
  • Meeting transcription must be enabled. Your Teams admin must have turned on meeting transcription in the Teams admin center (Meeting policies > Recording & transcription).

Two Connector Types

Meeting Transcripts (o365_teams_transcript)

  • Routing: Global - attendees are matched against your client minds, just like Outlook email
  • What's ingested: The full meeting transcript text, with speaker labels preserved
  • Dedup: Same meeting/transcript pair is never ingested twice
  • Finalization delay: Teams transcripts can take minutes to hours to finalize after a meeting ends. Armbrain automatically retries and catches them on the next poll.

Channel Messages (o365_teams_channel)

  • Routing: Per-mind - you map specific Teams channels to client minds
  • What's ingested: Message text from mapped channels, with sender names
  • Only mapped channels: Unmapped channels are completely ignored. No data is read from channels you haven't explicitly connected.

Channel Mapping

Teams channel mapping works like Slack channel mapping:

  1. Connect the Teams channel connector
  2. Map individual channels to client minds using Claude:
connectors action=connect source_type=o365_teams_channel

The connector stores the team_id and channel_id for each mapping. Only mapped channels produce ingested content.

What Gets Ingested

Transcripts:

  • Full meeting transcript text (VTT format, cleaned to plain text)
  • Speaker labels preserved (e.g., "Jane Smith: I think we should...")
  • Timestamps stripped: you get the conversation, not the timing
  • Meeting subject included as the title

Channel messages:

  • Message text (HTML stripped to plain text)
  • Sender display name
  • Message subject (if present)
  • Only messages since the last poll (no historical backfill on first connect)

How Routing Works

Transcripts use attendee attribution (same as Outlook email):

  • Armbrain looks at the meeting participants' email addresses
  • Each attendee email is matched against the contact lists in your client minds
  • If a match is found, the transcript routes to that client's mind
  • If multiple clients' contacts attended, the transcript is copied to each
  • If no match is found, it goes to your unattributed inbox for manual routing

Channels use explicit mapping:

  • You tell Armbrain which Teams channel feeds which client mind
  • Messages from that channel go directly to the specified mind
  • No attribution logic needed: the mapping is the routing

Privacy and Security

  • Uses existing Microsoft (Office 365) OAuth app: no new credentials
  • Per-customer encrypted token storage (AEAD v2)
  • Only reads authorized content: transcripts or specific channel messages
  • No audio, video, or file attachments are accessed
  • Data stays within Armbrain's standard security boundary

Troubleshooting

"Needs admin approval" during authorization:

Your IT administrator must approve the Graph API permissions. Share the permission names with them: OnlineMeetingTranscript.Read.All (for transcripts) or ChannelMessage.Read.All (for channels).

Transcripts not appearing:

  • Check that meeting transcription is enabled in Teams admin center
  • Transcripts can take up to an hour to finalize. Check again later.
  • Verify the connector is active: connectors action=status

Wrong client attribution:

Meeting attendee emails must match the email contacts stored in your client minds. Update your client's contact information with configure_mind.