MeetStream — Microsoft Teams Signed-In Bots
MeetStream — Microsoft Teams Signed-In Bots
How to send a MeetStream Teams bot in as a real, signed-in Microsoft 365 identity instead of an anonymous guest.
By default, a MeetStream Teams bot joins as a guest: it lands on the prejoin screen, types its display name, and asks to be let in. That fails outright if the meeting organizer has disabled anonymous join — the bot hits a sign-in wall with no fallback. A signed-in bot carries a real Microsoft 365 account and can join those meetings directly.
MeetStream never asks you to give up your production Microsoft 365 tenant — you register a dedicated bot account once, and every bot you create against that account signs in as it automatically. You never re-send the password per join; you gave it to us once at registration, and can rotate or revoke it at any time.
Endpoint: POST /api/v1/bots/create_bot
Auth: Authorization: Token <your MeetStream user API key>
1) What you need before you start
A dedicated Microsoft 365 tenant — not your production one. Getting a bot account ready for automated sign-in requires org-wide security settings (disabling security defaults, disabling self-service password reset) that you should never apply to real employee accounts. One dedicated tenant covers all of your MeetStream bot accounts — you don’t need one per end customer.
- Buy Microsoft 365 Business Basic (or higher). Teams Essentials is untested — use Business Basic or above.
- In the Microsoft 365 admin center, create a standard, non-admin user for each bot account you want. Assign it a Teams license, and set its display name and profile picture now — that’s what meeting participants will see, since a signed-in bot’s identity always comes from the Microsoft account.
- In Entra ID:
- Disable “security defaults” (otherwise MFA registration blocks the very first automated sign-in).
- Set self-service password reset to None for these accounts.
- Record each bot account’s email and password — you’ll need them once, to register the account with MeetStream (§3).
Only Microsoft 365 (work/school) Teams is supported. Personal Teams
(teams.live.com) accounts cannot be used for signed-in bots.
2) How it works, at a glance
Set up is two API calls, done once (or once per bot account): register your
tenant domain, then add each bot account. After that, create_bot just
references the domain.
3) Register your tenant and bot accounts
Register your domain
POST /api/v1/teams-login-domains
Set login_mode to "always" — this guarantees every bot for this domain
joins signed in. (if_required, which would only sign in when a meeting
demands it, is not yet supported for Teams; use "always" for now.)
Add a bot account
POST /api/v1/teams-logins
The password is write-only — no API response ever returns it, including
GET. The account is available for a bot to use immediately; there’s no
provisioning delay to wait out.
If an account’s password changes, PATCH /api/v1/teams-logins/{login_id}
with a new password — it takes effect on the account’s next join. If a bad
password causes a join to fail, MeetStream deactivates the account
automatically (is_active flips to false) so it’s skipped until you rotate
the password.
Provisioning rule of thumb: unlike some other platforms, Teams allows exactly one bot per account at a time. If you need 10 concurrent signed-in Teams bots, register 10 accounts.
4) Create a signed-in bot
POST /api/v1/bots/create_bot
Everything else on create_bot (recording options, webhooks, etc.) works
the same as any other bot — see the
Create Bot Payload Reference.
Note: because your Microsoft account’s own name and picture are shown to
meeting participants, bot_name and bot_image_url are not applied on a
signed-in join.
5) Troubleshooting
6) Related
- Create Bot Payload Reference
- Create your First Bot for guest joins to meetings that don’t require sign-in
- Microsoft Teams platform guide
