"ChatGPT in Teams" is used for two very different things: ChatGPT reading your Teams from chatgpt.com, and an assistant people mention inside a Teams channel. OpenAI ships the first and not the second. Getting this wrong is the single most expensive mistake in this whole area.
Every Microsoft app in ChatGPT needs a Microsoft Entra administrator to grant consent for its Graph scopes, and that is separate from ChatGPT's own action controls. This is the most common support issue OpenAI reports on these integrations, and it is the item with a lead time.
ScopesChat.Read, ChatMessage.Send, ChannelMessage.Send, Tasks.ReadWrite and more, depending on the actions you enable
Self-service means each person connects their own Teams and you get search plus actions. Admin-managed sync means an administrator connects once for everyone, with no user setup, but it is read-only and Enterprise or Edu only. Large orgs almost always want the second unless they need writes.
Read access and write actions are separate switches. Sending a Teams message on someone's behalf is a meaningful step up in blast radius, so turn actions on once you know who is using this and for what, rather than as part of the initial rollout.
This is where most guidance online is out of date. The Bot Framework SDK is archived and Microsoft stopped servicing support tickets for it after 31 December 2025. Teams AI Library v1 is deprecated. New builds use the Teams SDK for Teams-only apps, or the Microsoft 365 Agents SDK for anything spanning Microsoft 365, with Agents Toolkit v5 for scaffolding.
Do not start fromBot Framework SDK, TeamsFx SDK, or Teams AI Library v1
Teams streaming works only in one-to-one chats, never in channels or group chats, and it wants the full cumulative content resent on each update rather than deltas. It throttles at about one request per second and hard-stops after two minutes. If you copied a streaming design from a Slack bot, it will not survive contact.
Also7 sends per second per thread, 1,800 operations per hour per thread
A Teams administrator has to allow custom app upload in the Teams admin center, and Microsoft documents that availability changes take up to 24 hours to reach all users and in rare cases up to six days. Submitting an app to your organisation is also not the same as publishing it - an administrator has to publish it separately.
ConsoleTeams admin center, Teams apps then Setup policies