--- title: "Rocket Chat Microsoft Teams Bridge" slug: "microsoft-teams-bridge" description: "Use the Microsoft Teams Bridge with Rocket Chat to enable secure cross-platform communication and streamline enterprise collaboration." status: "update" updated: 2026-04-14T05:55:16Z published: 2026-04-14T05:57:46Z canonical: "docs.rocket.chat/microsoft-teams-bridge" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Microsoft Teams Bridge Microsoft Teams Bridge is an app that connects collaborators across Rocket.Chat and Microsoft Teams. It acts as a bridge between **Teams** and **Rocket.Chat** to enable cross-platform messaging among users in an organization. This way, users can send and receive messages from their workspace or Teams account. > It supports other message formats, such as emojis, files, and links. Furthermore, operations like editing or deleting a message are also supported. ## Set up Microsoft Teams Bridge > [!WARNING] > The **Microsoft Teams Bridge app** is only available for workspaces on version `6.1` and above. As an administrator, ensure you have access to the Rocket.Chat admin account and Teams admin account for your organization before installing. To install **Microsoft Teams Bridge**, 1. Go to **Marketplace** ![](https://cdn.us.document360.io/6ae79a05-7252-45d0-96e8-8f375e07b1b2/Images/Documentation/Screenshot 2025-12-23 130453.png) > **Explore**. 2. Search for the **Microsoft Teams Bridge** app. 3. Click **Install.** Confirm that the app is enabled. 4. On the **Microsoft Teams Bridge** **App Info** screen, navigate to **Details > APIs** and copy the `GET auth` endpoint URL. > If it's a localhost URL, exposing the localhost port to the internet requires a tunnel service like Ngrok. ### Set up a Microsoft Entra ID app > [!WARNING] > Azure active directory is now Microsoft Entra ID. See the [official documentation](https://learn.microsoft.com/en-us/azure/active-directory/fundamentals/new-name) for more details. To set up Microsoft Entra ID for your organization, 1. Log in to the [Microsoft Azure portal](https://portal.azure.com/) with your organization's Teams admin account. 2. Select **Microsoft Entra ID**. 3. Click **Add**. Then, select **App registration**. 4. Give the app a name. Select **Accounts in this organizational directory only** as the **Supported account type**. 5. Select **Web** as the **Redirect URI platform.** Paste the `GET auth endpoint URL` you copied from the Rocket.Chat Microsoft Teams Bridge app. 6. Click **Register**. Copy the **Application (client) ID** and **Directory (tenant) ID** shown on the overview page. 7. Click **Add a certificate or secret > New Client Secret.** Fill in the description and expiration timeline. Then, click **Add**. 8. After the client secret is created, copy the **Client Secret Value**. 9. Navigate to **API permissions** > Select **Add a permission** > Select "**Microsoft Graph**". 10. Add the set of required permissions. The table below outlines the required permissions you'll need to set. | Name | Type | Description | Requires Admin Consent | | --- | --- | --- | --- | | ChannelMessage.Read.All | Application | Read all channel messages | Yes | | ChannelMessage.Send | Delegated | Send channel messages | No | | ChannelMessage.UpdatePolicyViolation.All | Application | Flag channel messages for violating policy | Yes | | Chat.Create | Delegated | Create chats | No | | Chat.Create | Application | Create chats | Yes | | Chat.Read.All | Application | Read all chat messages | Yes | | Chat.ReadBasic | Delegated | Read names and members of user chat threads | No | | Chat.ReadBasic.All | Application | Read names and members of all chat threads | Yes | | Chat.ReadWrite | Delegated | Read and write user chat messages | No | | Chat.ReadWrite.All | Application | Read and write all chat messages | Yes | | ChatMember.Read | Delegated | Read the members of chats | Yes | | ChatMember.Read.All | Application | Read the members of all chats | Yes | | ChatMember.Read.WhereInstalled | Application | Read the members of all chats where the associated Teams application is installed. | Yes | | ChatMember.ReadWrite | Delegated | Add and remove members from chats | Yes | | ChatMember.ReadWrite.All | Application | Add and remove members from all chats | Yes | | ChatMember.ReadWrite.WhereInstalled | Application | Add and remove members from all chats where the associated Teams application is installed. | Yes | | ChatMessage.Read | Delegated | Read user chat messages | No | | ChatMessage.Read.All | Application | Read all chat messages | Yes | | ChatMessage.Send | Delegated | Send user chat messages | No | | email | Delegated | View users' email address | No | | Files.Read | Delegated | Read user files | No | | Files.Read.All | Delegated | Read all files that user can access | No | | Files.Read.All | Application | Read files in all site collections | Yes | | Files.ReadWrite | Delegated | Have full access to user files | No | | Group.ReadWrite.All | Delegated | Read and write all groups | Yes | | offline_access | Delegated | Maintain access to data you have given it access to | No | | openid | Delegated | Sign users in | No | | profile | Delegated | View users' basic profile | No | | ServiceMessage.Read.All | Application | Read service messages | Yes | | User.Read | Delegated | Sign in and read user profile | No | | User.Read.All | Delegated | Read all users' full profiles | Yes | | User.Read.All | Application | Read all users' full profiles | Yes | | User.ReadWrite.All | Application | Read and write all users' full profiles | Yes | After setting all permissions, click **Grant admin consent for org**. ### Configure Microsoft Teams Bridge app In your Rocket.Chat workspace, - Navigate to **Microsoft Teams Bridge** **App Info > Settings**. - Update the **Microsoft Entra** **Directory (tenant) ID, Microsoft Entra Application (client) ID**, and **Microsoft Entra Client Secret** with the values you copied earlier. Then, click **Save Changes**. > Ensure you use the correct credentials and set the appropriate API permissions on the Microsoft Entra ID. ## API limitation With the Microsoft Teams Bridge, you can exchange up to 500 messages per month across Rocket.Chat and MS Teams at no additional cost. If you surpass this limit, you can no longer exchange messages between Rocket.Chat and Teams. If you intend to exchange more than 500 messages, here are some important details to note: - Check if the API is metered. Microsoft Teams has free and metered APIs that are billed based on usage. Know the metering unit to estimate API costs. There's a limit of 500 messages per month. Exceeding this limit means Teams messages won't show in Rocket.Chat, but it can still be sent. > Read the [documentation](https://learn.microsoft.com/en-us/graph/teams-licenses) to learn more about the pricing models and licensing requirements. - To monitor message count, set up an Azure budget to track messages against the threshold. Configure alerts to ensure you stay within the 500 messages monthly spending limit. For example, your organizational spending limit is 500 messages per month; email notifications are sent if the budget threshold is exceeded. > See the official guide to understand how to [create and manage](https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/tutorial-acm-create-budgets) Azure budgets. > This app was developed in partnership with Yuqing Bian during Google Summer of Code 2022. ### Troubleshooting ****MS Teams messages stopped appearing in Rocket.Chat**** If messages from Rocket.Chat to Microsoft Teams are delivered but nothing comes from Teams to Rocket.Chat, the webhook subscription that handles incoming Teams messages may have expired. Microsoft disables this webhook if Rocket.Chat is offline for an extended period (for example, during downtime or maintenance). To fix this, open any channel linked to MS Teams in Rocket.Chat and run: ```plaintext /teamsbridge-resubscribe-messages ``` This command renews the Teams webhook subscription. Once confirmed, test by sending a message from Teams to Rocket.Chat. This is useful whenever Teams messages stop appearing, after long downtime, or following a server migration/restore. Keeping Rocket.Chat online will help prevent webhook expiration. **Limitations**: Emojis from Teams may not display in Rocket.Chat, and Direct Messages to Teams users may fail unless the Rocket.Chat user is also a Teams user. Some cases may require re-linking channels.