Home/Integrations/Microsoft Teams
// Teams integration

Microsoft Teams integration

The MeetStream Microsoft Teams integration takes a Teams meeting link and puts a bot in the call. It records, streams and transcribes, with no Azure app registration.

No tenant setupNative captionsOutlook auto-joinSpeaker timeline
Overview

What you get with Microsoft Teams

A Teams join link is the whole setup, and one request reaches every artefact the call produces.

One request returns an MP4 recording, per-participant audio and video, and a transcript
Send a meeting link, and when the call ends you get all three.
A bot from any join link

One API call, and nothing to register.

Audio tagged by speaker

Mixed audio too, plus video segments for each person and MP4 recordings.

Real-time audio

Over WebSocket, with live or post-call transcripts.

Calendar auto-join

Bots join by themselves from Microsoft 365 calendars, through Outlook.

The bot sends chat messages, images and GIFs into the meeting, and returns the chat log, per-person data and a speaker timeline afterwards.

Platform rules

Why is my Teams bot stuck in the lobby?

Most tenants hold external participants in the lobby, so an organiser admits the bot.

  • The widest waiting window
    Teams accepts up to 1800 seconds, with 600 as the default.
  • Admission as an event
    A webhook tells you the moment the bot is admitted, or that the window ran out.
  • Recording within a second
    Teams admits and records in one step, so capture starts on arrival.
create_botone requestbot.joiningdispatchedbot.in_waiting_roomhost admitsbot.inmeetingbot.recordingcapture beginsbot.stoppedthen post-call
The lifecycle every webhook subscriber sees: exactly one terminal event fires per bot, one of bot.stopped, bot.kicked, bot.denied, bot.notallowed or bot.failed.

The timeouts you can set

TimeoutDefaultWhat it does
Waiting room600 s, up to 1800 on TeamsHow long the bot waits to be admitted before it leaves
Nobody joined600 sLeaves when it is the only one in the meeting
Everyone left300 sLeaves after the last person leaves
Nobody speaking100 sLeaves after this much silence, whoever is still in the room
Session length14400 s, or 4 hCaps one recording session. Can be raised to 18000

Bot detection works on Teams as well. Turn it on and the bot leaves once only other vendors' notetakers remain.

It knows itself by its stable bot ID, so a renamed bot still counts correctly.

Send a bot into the meetingbash
curl -X POST https://api.meetstream.ai/api/v1/bots/create_bot \
  -H "Authorization: Token $MEETSTREAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "meeting_link": "https://teams.microsoft.com/l/meetup-join/…",
    "bot_name": "Notetaker",
    "audio_separate_streams": true,
    "recording_config": { "transcript": { "provider": { "meetstream": {} } } },
    "callback_url": "https://your-app.example.com/meetstream"
  }'
What you get

What you can capture on Teams

One bot returns the media, the transcript and the timeline from a Teams meeting.

  • Audio by speaker
    Mixed audio as well, on the same model as Google Meet.
  • Video in segments
    A new segment starts when a webcam changes size or a screen share changes resolution.
  • Native captions
    Choose the meeting captions engine and the bot reads the captions Teams makes.
ArtefactOn Microsoft Teams
Per-participant audioPartial isolation. Capture is tagged by speaker, on the same model as Google Meet, and falls back to the dominant speaker
Per-participant videoWebcam up to 854 by 480 at 800 kbps. Screen share up to 1280 by 720 at 2 Mbps, one at a time
Composed recordingComposed MP4 and a mixed WAV always produced
Real-time audio48 kHz PCM16 frames with the dominant speaker's name over your WebSocket
TranscriptsLive and post-call with six engines, or Teams' own native captions
Chat and imagesMessages, images and GIFs into the meeting. Chat log afterwards
Participants and timelineJoin and leave events, data on each person, and a speaker timeline down to the byte

Video segments and the speaker timeline

Each segment is numbered in time order, so a resolution switch is easy to spot in the list.

The speaker timeline maps byte ranges of the mixed audio to participant IDs.

Divide a byte offset by two, then by the sample rate, and you have the moment in seconds. That gives you talk time and clips per speaker.

Media per personAudio and video, plusa composed MP4Real-time audioOver a secure socket,roughly 200msTranscriptsLive or post-call,speaker-labelled
Every Teams meeting returns the same three things.
MEETSTREAM DASHBOARDBots across platforms in the MeetStream dashboard
The dashboard lists every bot with its platform, status and length.
Calendar

Auto-join from Outlook

Teams meetings live on Microsoft 365 calendars, so Outlook is the hands-off path.

  • Read-only calendar scopes
    Set up an Azure app, and events sync through Graph delta tokens.
  • Tagged as Teams meetings
    Each synced event carries its platform, and bots are scheduled one minute before the start.
  • Changes arrive as notices
    Reschedules and cancellations come through Graph change notices.
CalendarOutlook calendarSyncevents and linksSchedule1 min before startBot joinsWebhooksbot.scheduled to bot.done
Connect once, and the schedule follows the calendar.

Teams media bot and participant bot

Microsoft's own route to meeting media is an application-hosted media bot.

Per Microsoft's requirements it is written in C# and runs on Windows Server in Azure, at one or two media sessions per CPU core.

A participant bot joins from a link instead. It works on any tenant, and it behaves exactly as it does on Zoom and Meet.

The Teams API page sets the two side by side, with Microsoft's documentation as the source.

One MeetStream user can hold up to 200 calendar connections.

Security

Enterprise-level security, keep your data private.

The certificate, the audit status and the Trust Center are all on the security page.

Robust and reliable

MeetStream is ISO 27001 certified. SOC 2 Type 2 is under audit rather than complete.

GDPR compliant

MeetStream is GDPR compliant, and bots run in the United States by default.

Nothing to register in Azure

The bot joins as a participant, with no Graph permission of its own.

SOC 2Type 2 (Under Audit)
ISO 27001Certified
GDPRCompliant

Teams bot limits and defaults

4 hoursdefault session, five when you raise it
No capconcurrent bots, and no limit to raise
30 daysstorage, or your own S3 bucket
$0.35per bot-hour, and $0.45 with transcription
United StatesThe default regionEU, Australia, JapanAnd the Middle EastOther regionsAvailable on request
Bots run in the United States by default.
MEETSTREAM DASHBOARDMeetStream dashboard listing bots with status and duration
Every bot with its platform, live status and duration.
FAQ

Got a question? We got the answer.

Common questions about Teams bots. Lobby behaviour, what is captured, and how calendar joining works.

Do I need Microsoft tenant admin access to add a bot?

A meeting link is all it takes. The bot joins as a participant, with nothing registered in Azure and no Graph permission of its own. A tenant admin comes in for the Outlook calendar integration, which does use an app registration.

Does Teams support per-participant streams?

Partly. MeetStream tags audio by speaker, on the same model as Google Meet, and adds video segments for each person. For full per-microphone isolation, the Zoom SDK is the one that provides it.

Is there a recording permission gate on Teams?

Teams admits and records in one step. Recording starts within about a second of arrival, on the first audio frame. Tenants can still hold external participants in the lobby, which is what the waiting-room window covers.

Can I read and post in the Teams meeting chat?

Yes. One call posts text into the chat, another puts an image or GIF on the bot's tile, and the chat log is ready to fetch after the meeting.

Can I use Teams native captions?

Yes. Choose the meeting captions engine and the bot reads the captions Teams makes.

Why are there several video segments for one participant?

A new segment starts when a webcam changes size or a screen share changes resolution. Each one is numbered in time order, so you can stitch them back together.

Can bots auto-join Teams meetings from a calendar?

Yes. Connect a Microsoft 365 calendar through the Outlook integration. Synced events are tagged as Teams meetings, and bots are scheduled onto them.

A bot in any Teams meeting, from the link.

No tenant setup, one request, and every artefact your product needs when the call ends.

Speaker-tagged audio
Video segments
Live transcripts
Chat and images
Outlook auto-join

Send a bot to a Teams meeting now

No tenant setup, one request, and every artefact your product needs when the call ends.