Microsoft Teams Rooms and Messaging Bridges: Routing Meeting Room Chat to Slack
Microsoft Teams Rooms (MTR) is the hardware platform for Microsoft's conference room devices. When a Teams Rooms device hosts a meeting, participants can use the meeting chat — and that chat is, by default, visible only to Teams users.
For organizations with hybrid Slack-Teams environments, this creates a specific problem: important discussions that happen in meeting chat on a Teams Rooms device are invisible to Slack users who attended the same meeting via Zoom or Slack Huddle.
This post covers the architecture for routing Teams Rooms meeting chat to Slack and other platforms.
How Teams Rooms Chat Works (API Perspective)
When a Teams meeting occurs on a Teams Rooms device, the meeting creates a chat thread accessible via Microsoft Graph API at the /chats/{chatId}/messages endpoint. The meeting chat is a standard Teams chat object — the same API as any other Teams group chat.
For a bridge to access meeting chat, the bridge's service account must be added to the meeting as a participant. This is the first complexity: for ad-hoc meetings (not scheduled in advance), adding the bridge service account as a participant requires either:
- Calendar integration (the bridge monitors the room device's calendar and joins all upcoming meetings)
- Or a manual process where meeting organizers remember to add the bridge account
For scheduled meetings with consistent participants, the calendar-based approach is tractable. For ad-hoc meetings, it is operationally complex.
Architecture: Calendar-Based Meeting Chat Bridge
For scheduled meetings using Teams Rooms devices:
-
Calendar subscription: The bridge subscribes to the room device's calendar via Microsoft Graph API change notifications. When a new meeting is created, the bridge is notified.
-
Service account invite: The bridge service account is automatically invited to the meeting as a participant via the
/events/{eventId}/attendeesAPI. -
Meeting chat subscription: When the meeting starts (detected via the
/communications/callRecordsendpoint or presence monitoring), the bridge subscribes to the meeting chat thread. -
Message routing: Messages in the meeting chat are routed to a designated Slack channel in real time. The bridge maps the Teams user identity to the corresponding Slack user identity for @mention routing.
-
Post-meeting: After the meeting ends, the bridge posts a summary link to the Teams meeting recording (if enabled) in the Slack channel.
Limitations
Recording transcript integration: Teams meeting transcripts are accessible via Graph API but with a 30–60 minute delay after meeting end. A bridge that routes transcripts to Slack can provide meeting notes to Slack users who could not attend, but only after the fact.
Ad-hoc meetings: Without calendar pre-configuration, ad-hoc meeting chat cannot be reliably bridged. Organizations that rely heavily on ad-hoc meetings will see gaps in chat routing.
Channel meeting chat vs. direct meeting chat: Teams has two types of meeting chat: channel meetings (created in a Teams channel) and direct meetings (created from calendar or chat). Channel meeting chat is associated with the Teams channel and is accessible like any channel message. Direct meeting chat requires the service account participation approach above.
Use Case: Post-Meeting Summary to Slack
The most practical Teams Rooms → Slack bridge use case is not real-time meeting chat routing but post-meeting summary routing.
After a scheduled meeting ends:
- The bridge retrieves the meeting transcript from Graph API
- Summarizes key discussion points and action items (using the organization's preferred AI summarization tool or a structured transcript parser)
- Posts the summary to a designated Slack channel (#meeting-notes or a project-specific channel)
- Tags the Slack users who correspond to the Teams meeting attendees
This approach bypasses the real-time complexity while providing Slack users with meeting context. It is particularly valuable for follow-the-sun teams where APAC Slack users need context from EMEA Teams meetings that occurred during their off-hours.
Bridge Teams to Slack → | Read the Teams architecture guide →