Microsoft Teams Bots

Guest and signed-in meeting bots for Microsoft Teams

View as Markdown

Microsoft Teams guest bots need no setup — pass a Teams meeting link to create_bot and the bot joins:

curl -X POST "https://api.meetstream.ai/api/v1/bots/create_bot" \
-H "Authorization: Token <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"meeting_link": "https://teams.microsoft.com/l/meetup-join/...",
"bot_name": "Notetaker"
}'

Teams behavior at a glance

BehaviorOn Microsoft Teams
SetupNone
Recording startbot.recording typically fires within a second of bot.inmeeting (on the first audio frame) — no permission gate
Timeout defaultswaiting_room_timeout 600, no_one_joined_timeout 600, everyone_left_timeout 300
Per-participant audioPartial isolation — speaker-attributed capture via the browser bot, following the same stream-capture model as Google Meet
Per-participant videoWebcam up to 854×480 @ 800 kbps; screen share up to 1280×720 @ 2 Mbps; 1 concurrent screen share
Video segmentsA webcam dimension change on Teams starts a new segment (as does a screen-share resolution change) — see per-participant video
Native captionsSupported via the meeting_captions transcription provider
Bot detectionautomatic_leave.bot_detection works on Teams; the bot identifies itself by its stable bot ID as soon as its websocket connects

Join as a signed-in Microsoft 365 user

Guest bots wait in the lobby and cannot join when the organizer disables anonymous access. For those meetings, configure a dedicated Microsoft 365 tenant and bot accounts, then create the bot with teams.login_required: true. The Microsoft account supplies the participant name and avatar, and each account can run one bot at a time.

See Microsoft Teams Signed-In Bots for tenant safety requirements, account registration, the complete create_bot payload, and troubleshooting.

Outlook Calendar auto-join

Teams meetings usually live on Outlook calendars, and MeetStream has a first-class Outlook integration: connect via POST /api/v1/calendar/create_outlook_calendar with an Azure app registration (Microsoft Graph permissions), and MeetStream syncs events, detects Teams links (meeting_platform: "Teams"), and schedules bots. Change notifications from Microsoft Graph are auto-renewed, and you can hold up to 200 calendar connections per user (Google + Outlook combined).

Full walkthrough: Outlook Calendar Setup. Scheduling patterns (recurring events, per-event config, rescheduling): Scheduling guide.

Capture everything Teams gives you

Everything in the core API works on Teams the same as elsewhere: mixed audio recording, per-participant streams, post-call and live transcription, real-time audio over WebSocket, participants, chats, and the speaker timeline.

Next steps

Microsoft Teams FAQ

No — a guest create_bot join with a Teams link needs zero setup. A signed-in Teams bot requires dedicated Microsoft 365 bot accounts, while Azure app registration is only needed for the Outlook Calendar integration (auto-join from calendars).

Teams lobbies and starts can run slower. The Create Bot defaults are waiting_room_timeout: 600, no_one_joined_timeout: 600, and everyone_left_timeout: 300; tune them in automatic leave when a meeting needs more time.

On the first audio frame — typically within a second of bot.inmeeting. There’s no host-permission gate like Zoom’s.

On Teams, a webcam dimension change (and any screen-share resolution change) starts a new segment. Segments are chronologically ordered with segment_index — see per-participant video.