v2.6.17Latest
Signed-in Teams joins and accurate speaker names
Breaking
- 2breaking
- 1new
- 5improved
- 1fixed
This release contains breaking changes
Review the breaking changes before upgrading. See the versioning policy for how they are announced and supported.
Microsoft Teams bots that sign in with a Microsoft account now join reliably, and transcripts name the right person from the first second of the meeting. Two changes affect values you may already be storing, so check the breaking changes if you branch on end reasons or keep speaker names.
Breaking Changes
TEAMS_LOGIN_FAILED_TIMEOUTreplacesTIMEOUT_WAITING_TO_STARTfor Teams bots configured withteams_config.fallback: "fail". When Microsoft sign-in succeeds but Teams opens the meeting as a guest, the bot previously waited on the join screen until the waiting-room timeout. It now ends as soon as the sign-in retries are exhausted, with the message "Microsoft sign-in completed, but Teams did not open the meeting with the signed-in account." Who is affected: integrations that branch on a Teams bot's end reason. What to do: handle the new value, and expect the failure webhook to arrive earlier than it used to. See Error codes.- Speaker names in Microsoft Teams transcripts change value for affected meetings. A name that previously came back with "External", "Unfamiliar" or "Unverified" appended is now returned without it. Who is affected: anyone storing Teams speaker names or matching them against a roster of their own. What to do: update stored values that carry that badge text.
Before:
"Jane Doe External unfamiliar"→ After:"Jane Doe"
New Features
GET /public/bots/analyticsreturns aggregated, non-sensitive bot statistics — platform, timestamps, duration and status — and needs no authentication. It powers the Meeting BaaS status page. It takesoffset,limit(max 5000),start_date,end_date,meeting_url_contains,status_type,status_category,status_priorityanduser_reported_error_json; results come back newest first, and an unparseable date is rejected with400.
Improvements
- Signed-in Teams bots recover when Teams opens the meeting as a guest. A bot could complete sign-in and still be handed the guest join screen, where it waited on a greyed-out "Join now" until the join timeout — even with
teams_config.fallbackset toanonymous. The bot now recognises that screen, retries the sign-in up to twice, and then applies the fallback you configured:anonymousjoins as a guest under the bot's name and records the meeting,failends the bot immediately. - Personal Microsoft Teams (free) meetings can be joined as the signed-in account. A
teams.live.comlink only ever offers a work account the guest screen, so the bot now opens these meetings from the Teams calendar by meeting ID. If that route is unavailable for your bot account, the bot opens the link as before and the retry above recovers the signed-in join. - The opening seconds of a Teams meeting are attributed to the right person. Teams speaker observation now runs from the moment the bot enters the meeting, as it already did for Google Meet, so speech at the very start is named instead of being labelled "Unknown".
- Speakers that could not be identified are named more often, on both Meet and Teams. When a speaker cannot be resolved from the meeting's own data, the bot names them from what is on screen while the meeting is running. Identities already resolved stay authoritative, and a name arriving late no longer renumbers the speaker.
- Long meetings keep naming speakers through to the end. A meeting running on on-screen speaker detection could stop naming speakers after about an hour; that now covers meetings of around four and a half hours.
Bug Fixes
- Two people are no longer merged into one speaker. In a small number of meetings the platform's own speaker data pinned a two-person conversation on a single name while the on-screen speaking indicator showed both. The bot now detects that disagreement at the end of the meeting and uses the better-corroborated source. Every other meeting is attributed exactly as before.