> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langdock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Teams

> Review minimum OAuth scopes for Microsoft Teams actions and the impact of Sites.Selected on channel attachments.

Review the minimum standard delegated scope mapping for every Microsoft Teams action. The mapping covers chats, teams, channels, messages, users, meetings, and attachments.

<Warning>
  Actions that handle channel and chat attachments require `Files.ReadWrite.All`.

  While sending and reading message text functions without this scope, attachment handling will fail unless `Files.ReadWrite.All` is granted.
</Warning>

## Minimal scopes per action

<Note>
  Each Microsoft Teams connection also requests `openid`, `offline_access`, and `User.Read`. These connection scopes apply in addition to the action scopes in the table.
</Note>

<div style={{overflowX: "auto"}}>
  <table style={{width: "100%", maxWidth: "100%", minWidth: 0, tableLayout: "fixed", whiteSpace: "normal", overflowWrap: "anywhere", wordBreak: "break-word"}}>
    <thead>
      <tr>
        <th style={{width: "22%"}}>Action</th>
        <th style={{width: "28%"}}>Description</th>
        <th style={{width: "50%"}}>Minimum scopes</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td><strong>Find chat</strong></td>
        <td>Finds a chat.</td>
        <td><code>Chat.ReadWrite</code></td>
      </tr>

      <tr>
        <td><strong>Get channel message</strong></td>
        <td>Gets a channel message and its attachments.</td>
        <td><code>ChannelMessage.Read.All</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>

      <tr>
        <td><strong>Get channel messages</strong></td>
        <td>Gets channel messages and their attachments.</td>
        <td><code>ChannelMessage.Read.All</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>

      <tr>
        <td><strong>Get chat messages</strong></td>
        <td>Gets chat messages and their attachments.</td>
        <td><code>Chat.ReadWrite</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>

      <tr>
        <td><strong>Get meeting transcript</strong></td>
        <td>Gets a meeting transcript.</td>
        <td><code>Calendars.ReadWrite</code><br /><code>OnlineMeetings.Read</code><br /><code>OnlineMeetingTranscript.Read.All</code></td>
      </tr>

      <tr>
        <td><strong>List all channels</strong></td>
        <td>Lists channels.</td>
        <td><code>Channel.ReadBasic.All</code></td>
      </tr>

      <tr>
        <td><strong>List all chats</strong></td>
        <td>Lists chats.</td>
        <td><code>Chat.Read</code></td>
      </tr>

      <tr>
        <td><strong>List all teams</strong></td>
        <td>Lists teams.</td>
        <td><code>Team.ReadBasic.All</code></td>
      </tr>

      <tr>
        <td><strong>List all users in channel</strong></td>
        <td>Lists users in a channel.</td>
        <td><code>ChannelMember.Read.All</code></td>
      </tr>

      <tr>
        <td><strong>List all users in chat</strong></td>
        <td>Lists users in a chat.</td>
        <td><code>Chat.Read</code></td>
      </tr>

      <tr>
        <td><strong>List online meetings</strong></td>
        <td>Lists online meetings.</td>
        <td><code>Calendars.ReadWrite</code></td>
      </tr>

      <tr>
        <td><strong>Reply to channel message</strong></td>
        <td>Replies to a channel message and can include attachments.</td>
        <td><code>Channel.ReadBasic.All</code><br /><code>ChannelMember.Read.All</code><br /><code>ChannelMessage.Send</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>

      <tr>
        <td><strong>Resolve channel</strong></td>
        <td>Resolves a channel.</td>
        <td><code>Channel.ReadBasic.All</code><br /><code>Team.ReadBasic.All</code></td>
      </tr>

      <tr>
        <td><strong>Resolve chat</strong></td>
        <td>Resolves a chat.</td>
        <td><code>Chat.Read</code></td>
      </tr>

      <tr>
        <td><strong>Resolve meeting</strong></td>
        <td>Resolves a meeting.</td>
        <td><code>Calendars.ReadWrite</code></td>
      </tr>

      <tr>
        <td><strong>Resolve team</strong></td>
        <td>Resolves a team.</td>
        <td><code>Team.ReadBasic.All</code></td>
      </tr>

      <tr>
        <td><strong>Search messages</strong></td>
        <td>Searches messages in channels and chats.</td>
        <td><code>ChannelMessage.Read.All</code><br /><code>Chat.ReadWrite</code></td>
      </tr>

      <tr>
        <td><strong>Search users</strong></td>
        <td>Searches users.</td>
        <td><code>User.Read.All</code></td>
      </tr>

      <tr>
        <td><strong>Send channel message</strong></td>
        <td>Sends a channel message and can include attachments.</td>
        <td><code>Channel.ReadBasic.All</code><br /><code>ChannelMember.Read.All</code><br /><code>ChannelMessage.Send</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>

      <tr>
        <td><strong>Send chat message</strong></td>
        <td>Sends a chat message and can include attachments.</td>
        <td><code>Chat.ReadWrite</code><br /><code>Files.ReadWrite.All</code></td>
      </tr>
    </tbody>
  </table>
</div>

## Actions affected by `Sites.Selected`

<Warning>
  Teams channel attachments use the team's SharePoint drive. With `Sites.Selected`, Microsoft Graph rejects the `filesFolder` lookup even when the selected site has write access. Chat attachments use personal OneDrive, so `Sites.Selected` does not apply to them.
</Warning>

The following actions may not work completely when handling channel attachments with selected site permissions:

<AccordionGroup>
  <Accordion title="Get channel message">
    When the action reads a channel attachment, it resolves the channel folder through the Microsoft Graph `/teams/{teamId}/channels/{channelId}/filesFolder` endpoint. `Sites.Selected` doesn't authorize this lookup, so attachment retrieval can fail even when the selected site grant allows direct file access.
  </Accordion>

  <Accordion title="Get channel messages">
    When the action reads channel attachments, it resolves the channel folder through the Microsoft Graph `/teams/{teamId}/channels/{channelId}/filesFolder` endpoint. `Sites.Selected` doesn't authorize this lookup, so attachment retrieval can fail even when the selected site grant allows direct file access.
  </Accordion>

  <Accordion title="Reply to channel message">
    When the action sends a channel attachment, it resolves the channel folder through the Microsoft Graph `/teams/{teamId}/channels/{channelId}/filesFolder` endpoint. `Sites.Selected` rejects this lookup before the file upload or reply request.
  </Accordion>

  <Accordion title="Send channel message">
    When the action sends a channel attachment, it resolves the channel folder through the Microsoft Graph `/teams/{teamId}/channels/{channelId}/filesFolder` endpoint. `Sites.Selected` rejects this lookup before the file upload or message request.
  </Accordion>
</AccordionGroup>

## Related pages

* [Microsoft Integration Scopes](/en/admin/manage-integrations/microsoft-integration-scopes)
* [Microsoft integrations: permissions and admin approval](/en/admin/manage-integrations/integration-setup-guides/microsoft)
