Extend Personal Tab to Microsoft 365 - Teams (2024)

  • Article

Personal tabs provide a great way to enhance the Microsoft Teams experience. Using personal tabs, you can provide a user access to their application right within Teams, without the user having to leave the experience or sign in again. With this preview, personal tabs can light up within other Microsoft 365 applications too. This tutorial demonstrates the process of taking an existing Teams personal tab and updating it to run in both Outlook and Microsoft 365 app (desktop and web experiences), and the Microsoft 365 for Android app too.

Updating your Teams personal app to run in other Microsoft 365 applications involves these steps:

  • Update your app manifest (previously called Teams app manifest).
  • Update your Microsoft Teams JavaScript client library (TeamsJS) references.
  • Amend your Content Security Policy headers.
  • Update your Microsoft Entra App Registration for Single Sign-On (SSO).
  • Upload your updated custom app in Teams.

The rest of this guide walks you through these steps and show you how to preview your personal tab in other Microsoft 365 applications.

Prerequisites

To complete this tutorial, you need:

  • A Microsoft 365 Developer Program sandbox tenant.
  • A machine with Microsoft 365 apps installed from the Microsoft 365 Apps Current Channel.
  • (Optional) Your sandbox tenant enrolled in Microsoft 365 Targeted Releases.
  • (Optional) An Android device or emulator with Microsoft 365 for Android app installed.
  • (Optional) Teams Toolkit extension for Microsoft Visual Studio Code to help update your code.

Install prerequisites

Prepare your personal tab for the upgrade

If you have an existing personal tab app, make a copy or a branch of your production project for testing and update your App ID in the app manifest to use a new identifier (distinct from the production App ID, for testing).

If you'd like to use sample code instead of your own production code, you can use the Todo List sample. You can either follow the setup steps in the Todo List Sample GitHub repository or use the Teams Toolkit extension to create a new Teams app (select Start from a sample > Todo List with backend on Azure). After you've created a personal tab, return to this article to extend it across Microsoft 365.

Alternately, you can use a basic single sign-on (SSO) hello world app that's already Microsoft 365 app enabled, as shown in the following Quickstart section, and then skip to upload your custom app in Teams.

Quickstart

Use the Teams Toolkit extension for Visual Studio Code to start with a personal tab that's enabled to run in Teams, Outlook, and Microsoft 365.

  1. Open Visual Studio Code.

  2. Select the Teams Toolkit Extend Personal Tab to Microsoft 365 - Teams (1) icon in the activity bar.

  3. Select Create a New App.

  4. Select Tab.

  5. Select Basic Tab.

    Extend Personal Tab to Microsoft 365 - Teams (2)

  6. Select a preferred programming language.

  7. Select a location on your local machine for the workspace folder and enter your application name.

  8. Once your app is created, within the Teams Toolkit extension, make sure you're signed in to the appropriate Microsoft 365 Developer Program sandbox tenant and Azure account. These options are available in the ACCOUNTS section of the extension.

  9. Select Command Palette... under the View option or Ctrl+Shift+P.

  10. Enter Teams: Provision to create the Teams app resources such as Azure App Service, App Service plan, Azure Bot, and Managed Identity in your Azure account. Alternatively, you can select Provision under LIFECYCLE section of the extension.

  11. Select a subscription and a resource group. If you choose to create a new resource group, you need to specify the location.

  12. Select Provision.

  13. Select Command Palette... under the View option or Ctrl+Shift+P.

  14. Enter Teams: Deploy to deploy the sample code to the provisioned resources in Azure and start the app. Alternatively, you can select Deploy under the LIFECYCLE section of the extension.

From here, you can skip ahead to upload your custom app in Teams and preview your app in Outlook and the Microsoft 365 app. The app manifest and TeamsJS API calls are already updated for Microsoft 365 app.

Starting with version 1.16 of SharePoint Framework (SPFx), Teams personal tabs built and hosted with SPFx are also supported in Outlook and Microsoft 365 app. To update a SPFx Teams personal tab app, follow these steps:

  1. Ensure you have the latest version of SPFx.

    npm install @microsoft/generator-sharepoint@latest --global
  2. Update the app manifest.

  3. Update the TeamsJS references.

After you update TeamsJS references, upload your app in Teams to preview your SPFx personal tab app running in Outlook and Microsoft 365 app. For more information, see Extend Outlook and Microsoft 365 app with the SharePoint Framework.

Update the app manifest

You need to use the app manifest schema version 1.13 (or later) to enable your Teams personal tab to run in Outlook and Microsoft 365 app. For more information on schema version, see app manifest.

You have two options for updating your app manifest:

  • Teams Toolkit
  • Manual steps
  1. Open the command palette: Ctrl+Shift+P.
  2. Run the Teams: Upgrade Teams manifest command and select your app manifest file. Changes are made in place.

If you used Teams Toolkit to create your personal app, you can also use it to validate the changes to your app manifest file and identify any errors. Open the command palette (Ctrl+Shift+P) and find Teams: Validate manifest file.

Update TeamsJS references

Your app must refer to the npm package @microsoft/teams-js@2.19.0 (or later) to run in Outlook and Microsoft 365. Previous versions of TeamsJS are still functional in Outlook and Microsoft 365 apps, but deprecation warnings are logged. Support for the previous versions eventually gets discontinued in both Outlook and Microsoft 365. To determine the latest version of TeamsJS, see TeamsJS GitHub repository.

You can use Teams Toolkit to help identify and automate the required code changes to upgrade from 1.x TeamsJS versions to TeamsJS 2.x.x versions. Alternately, you can perform the same steps manually; refer to TeamsJS library for details.

  1. Open the Command palette: Ctrl+Shift+P.
  2. Run the command Teams: Upgrade Teams JS SDK and code references.

Upon completion, your package.json file references @microsoft/teams-js@2.0.0 (or later) and your *.js/.ts and *.jsx/.tsx files are updated with:

  • Import statements for teams-js@2.x.x
  • Function, Enum, and Interface calls for teams-js@2.x.x
  • TODO comment reminders flagging areas that might be impacted by Context interface changes
  • TODO comment reminders to convert callback functions to promises

Important

Code inside .html files is not supported by the upgrade tooling and require manual changes.

Configure Content Security Policy headers

As in Microsoft Teams, tab applications are hosted within iframe elements in Microsoft 365 app and Outlook web clients.

If your app makes use of Content Security Policy (CSP) headers, make sure you allow all the following frame-ancestors in your CSP headers:

Microsoft 365 app hostframe-ancestor permission
All hosts (New)*.cloud.microsoft
Teamsteams.microsoft.com, *.teams.microsoft.com
Microsoft 365 app*.microsoft365.com, *.office.com,
Outlookoutlook.office.com, outlook.office365.com, outlook-sdf.office.com, outlook-sdf.office365.com

Warning

Microsoft's cloud services, including web versions of Teams, Outlook, and Microsoft 365 domains, are migrating to the *.cloud.microsoft domain. Perform the following steps before September 2024 to ensure your app continues to render on supported Microsoft 365 web client hosts:

  1. Update TeamsJS library to v.2.19.0 or later. For more information about the latest release of TeamsJS, see Microsoft Teams JavaScript client library.

  2. If you've defined Content Security Policy (CSP) headers for your app, update the frame-ancestors directive to include the *.cloud.microsoft domain. To ensure backward compatibility during the migration, retain the existing frame-ancestors values in your CSP headers. This approach ensures that your app continues to work across both existing and future Microsoft 365 host applications and minimizes the need for subsequent changes.

Update the following domain in the frame-ancestors directive of your app's CSP headers:

https://*.cloud.microsoft

Update Microsoft Entra app registration for SSO

Microsoft Entra Single-sign on (SSO) for personal tabs works the same way in Microsoft 365 app and Outlook as it does in Teams. However, you need to add several client application identifiers to the Microsoft Entra app registration of your tab app in your tenant's App registrations portal.

  1. Sign in to Microsoft Azure portal with your sandbox tenant account.

  2. Open App registrations.

  3. Select the name of your personal tab application to open its app registration.

  4. Select Expose an API (under Manage).

    Extend Personal Tab to Microsoft 365 - Teams (3)

  5. In the Authorized client applications section, ensure all of the following Client Id values are added:

    Microsoft 365 client applicationClient ID
    Teams desktop, mobile1fec8e78-bce4-4aaf-ab1b-5451cc387264
    Teams web5e3ce6c0-2b1f-4285-8d4b-75ee78787346
    Microsoft 365 web4765445b-32c6-49b0-83e6-1d93765276ca
    Microsoft 365 desktop0ec893e0-5785-4de6-99da-4ed124e5296c
    Microsoft 365 mobiled3590ed6-52b3-4102-aeff-aad2292ab01c
    Outlook desktopd3590ed6-52b3-4102-aeff-aad2292ab01c
    Outlook webbc59ab01-8403-45c6-8796-ac3ef710b3e3
    Outlook mobile27922004-5251-4030-b22d-91ecd9a37ea4

    Note

    Some Microsoft 365 client applications share Client IDs.

Upload your custom app in Teams

The final step to running your app in Microsoft 365 and Outlook is to upload your updated personal tab app package in Microsoft Teams.

  1. Package your (app manifest and app icons) in a zip file. If you used Teams Toolkit to create your app, you can easily do this using the Zip Teams App Package option in the UTILITY section of Teams Toolkit. Select the manifest.json file for your app and the appropriate environment.

    Extend Personal Tab to Microsoft 365 - Teams (4)

  2. Go to Microsoft Teams and sign in using your sandbox tenant account.

  3. Select Apps to open the Manage your apps pane. Then select Upload an app.

    Extend Personal Tab to Microsoft 365 - Teams (5)

  4. Choose the Upload a custom app option and select your app package.

    Extend Personal Tab to Microsoft 365 - Teams (6)

After it's uploaded to Teams, your personal tab is available in Outlook and Microsoft 365 app. You must sign in with the same credentials that you used to upload your app into Teams. When running the Microsoft 365 for Android app, you need to restart the app to use your personal tab app from the Microsoft 365 app.

You can pin the app for quick access, or you can find your app in the ellipses (...) flyout among recent applications in the sidebar on the left. Be aware, that pinning an app in Teams doesn't pin it as an app in Microsoft 365 app or Outlook.

Preview your personal tab in other Microsoft 365 experiences

Here's how to preview your app running in Microsoft 365 and Outlook, web and Windows desktop clients.

Note

If you use the Teams Toolkit sample app and uninstall it from Teams, it is removed from the More Apps catalogs in Outlook and Microsoft 365 app.

Outlook on Windows

To view your app running in Outlook on Windows desktop:

  1. Launch Outlook and sign in using your dev tenant account.

  2. On the side bar, select More apps. Your uploaded custom app title appears among your installed apps.

  3. Select your app icon to launch your app in Outlook.

    Extend Personal Tab to Microsoft 365 - Teams (7)

Outlook on the web

To view your app in Outlook on the web:

  1. Go to Outlook on the web and sign in using your dev tenant account.

  2. On the side bar, select Apps. Your uploaded custom app title appears among your installed apps.

  3. Select your app icon to launch and preview your app running in Outlook on the web.

    Extend Personal Tab to Microsoft 365 - Teams (8)

Outlook for Android app

To view your app running in Outlook for Android app:

  1. Open the Outlook app on your Android device and sign in using your developer tenant account. If the Outlook app for Android was already running prior to uploading your custom app, restart Outlook app to see it in the installed apps section.

  2. Select the Apps icon. Your uploaded custom app appears among installed apps.

  3. Select your app icon to open your app in Outlook for Android.

    Extend Personal Tab to Microsoft 365 - Teams (9)

Outlook app for iOS

To view your app running in Outlook app for iOS:

  1. Open the Outlook app on your device and sign in using your developer tenant account. If the Outlook app was already running prior to uploading your custom app in Teams, restart Outlook to see it in the installed apps section.

  2. Select the More icon. Your uploaded custom app appears among installed apps.

  3. Select your app icon to open your app in the Outlook app.

    Extend Personal Tab to Microsoft 365 - Teams (10)

Microsoft 365 on Windows

To view your app running in Microsoft 365 on Windows desktop:

  1. Launch Microsoft 365 and sign in using your dev tenant account.

  2. Select the Apps icon on the side bar. Your uploaded custom app title appears among your installed apps.

  3. Select your app icon to launch your app in Microsoft 365.

    Extend Personal Tab to Microsoft 365 - Teams (11)

Microsoft 365 on the web

To preview your app running in Microsoft 365 on the web:

  1. Log into microsoft365.com with test tenant credentials.

  2. Select the Apps icon on the side bar. Your uploaded custom app title appears among your installed apps.

  3. Select your app icon to launch your app in Microsoft 365 on the web.

    Extend Personal Tab to Microsoft 365 - Teams (12)

Microsoft 365 for Android app

To view your app running in Microsoft 365 for Android app:

  1. Launch the Microsoft 365 app on your device and sign in using your developer tenant account. If the Microsoft 365 app was already running prior to uploading your custom app in Teams, you need to restart Teams to see it in your installed apps.

  2. Select the Apps icon. Your uploaded custom app appears among installed apps.

  3. Select your app icon to launch your app in the Microsoft 365 app.

    Extend Personal Tab to Microsoft 365 - Teams (13)

Microsoft 365 for iOS

To view your app running in Microsoft 365 for iOS:

  1. Launch the Microsoft 365 app on your device and sign in using your developer tenant account. If the Microsoft 365 app was already running prior to uploading your custom app in Teams, you need to restart Teams to see it in your installed apps.

  2. Select the Apps icon. Your uploaded custom app appears among installed apps.

  3. Select your app icon to launch your app in the Microsoft 365 app.

    Extend Personal Tab to Microsoft 365 - Teams (14)

Troubleshooting

Only a subset of Teams application types and capabilities are supported in Outlook and Microsoft 365 clients. For more information to check host support for various TeamsJS capabilities, see Microsoft 365 app support.

For an overall summary of Microsoft 365 host and platform support for Teams apps, see Extend Teams apps across Microsoft 365.

You can check for host support of a given capability at runtime by calling the isSupported() function on that capability (namespace), and adjusting app behavior as appropriate. This action allows your app to light up UI and functionality in hosts that support it and provide a graceful fallback experience in hosts that don't. For more information, see Differentiate your app experience.

Use the Microsoft Teams developer community channels to report issues and provide feedback.

Debugging

You can debug your tab application running in Teams, Microsoft 365 app, and Outlook with Teams Toolkit in Visual Studio Code.

Extend Personal Tab to Microsoft 365 - Teams (15)

Choose the desired debug method and select the F5 key. Upon the first run of the local debug, Teams Toolkit prompts you to sign in to your Microsoft 365 tenant account.

Provide feedback and report any issues with the Teams Toolkit debugging experience at Microsoft Teams Framework (TeamsFx).

Mobile debugging

Debugging Outlook for Android

To debug your app in Outlook for Android:

  1. Select the More icon in the Teams mobile client and open your uploaded custom app to run within the Outlook app.

  2. Ensure your Android device is connected to your dev machine. From your dev machine, open your browser to its DevTools inspection page. For example, go to edge://inspect/#devices in Microsoft Edge to display a list of debug-enabled Android WebViews.

  3. Find the Microsoft Teams Tab with your tab URL and select inspect to start debugging your app with DevTools.

    Extend Personal Tab to Microsoft 365 - Teams (16)

  4. Debug your tab app within the Android WebView in the same way that you remotely debug a regular website on an Android device.

Debugging Microsoft 365 for Android

Teams Toolkit (F5) doesn't support debugging Android apps in Microsoft 365. Here's how to remotely debug your app running in Microsoft 365 for Android app:

  1. If you debug using a physical Android device, connect it to your dev machine and enable the option for USB debugging. This option is enabled by default with the Android emulator.

  2. Launch the Microsoft 365 app From your Android device.

  3. Open your profile Me > Settings > Allow debugging, and toggle on the option for Enable remote debugging.

    Extend Personal Tab to Microsoft 365 - Teams (17)

  4. Leave Settings.

  5. Leave your profile screen.

  6. Select Apps and launch your uploaded custom app to run within the Microsoft 365 app.

  7. Ensure your Android device is connected to your dev machine. From your dev machine, open your browser to its DevTools inspection page. For example, go to edge://inspect/#devices in Microsoft Edge to display a list of debug-enabled Android WebViews.

  8. Find the Microsoft Teams Tab with your tab URL and select inspect to start debugging your app with DevTools.

  9. Debug your tab app within the Android WebView in the same way that you remotely debug a regular website on an Android device.

Code sample

Sample NameDescriptionNode.js
Todo ListEditable todo list with SSO built with React and Azure Functions. Works only in Teams (use this sample app to try the upgrade process described in this tutorial).View
Todo List (Microsoft 365)Editable todo list with SSO built with React and Azure Functions. Works in Teams, Outlook, Microsoft 365 app.View
Image Editor (Microsoft 365 app)Create, edit, open, and save images using Microsoft Graph API. Works in Teams, Outlook, Microsoft 365 app.View
Sample static tab (Microsoft 365 app)Demonstrates SSO authentication and the TeamsJS library capabilities as available in different hosts. Works in Teams, Outlook, Microsoft 365 app.View
Northwind Orders appDemonstrates how to use the TeamsJS library v.2 to extend teams application to other Microsoft 365 host apps. Works in Teams, Outlook, Microsoft 365 app. Optimized for mobile.View

Next step

Publish your app to be discoverable in Teams, Outlook, and Microsoft 365 app:

Publish Teams apps for Outlook and Office

See also

  • Extend Teams apps across Microsoft 365
  • Public developer preview for Teams
Extend Personal Tab to Microsoft 365 - Teams (2024)

FAQs

How do I add a personal tab to my team? ›

Following are the steps to create a personal tab:
  1. Generate your application with a personal tab.
  2. Update and run application.
  3. Establish a secure tunnel to your tab.
  4. Update your app package with Developer Portal.
  5. Preview your app in Teams.
Nov 17, 2023

How do I expand a tab in Microsoft Teams? ›

Click on the tab name you want to use for this. Click the dropdown icon next to the tab name you want to use for this. Click Expand tab. That's it.

How to stop Teams from showing away when idle? ›

Change idle time settings: Go to your profile settings in Microsoft Teams. Look for the “Settings” option and select it. In the settings menu, go to the “General” tab and find the “Idle Time” setting. Adjust the idle time according to what you want or set it to a longer duration to prevent appearing away too soon.

Does Microsoft Teams track idle time? ›

Teams' app-configured status updates will automatically show you're away after five minutes of inactivity.

Can you add a personal account to Teams? ›

Open the Teams app. Select your profile picture. Select Add personal account. From here you can add a personal account.

How do I add another tab to my team? ›

Using Tabs in Microsoft Teams
  1. Locate Tabs at the top of your Teams channel. Note: Conversations, Files and Wiki are default tabs are created with in each team and channel.
  2. Select on the + button to add a new tab. ...
  3. Select the tab and the document created to collaborate and share.

What is a valid scope for adding a Microsoft teams custom tab? ›

For more information, see Teams JavaScript client library. Custom tabs are available in Government Community Cloud (GCC), GCC-High, and Department of Defense (DOD). There are two types of tabs, static and configurable tabs. These tabs can be utilized in three distinct scopes: personal , groupchat , and teams .

How to do an extension on Teams? ›

If using the TelephoneNumber field to define the extension, Microsoft recommends that you use the format +<phone number>;ext=<extension>. If the user is also assigned a Teams Phone Number, you should define both numbers the same way.

How do I add a tab to a team in Word? ›

Turn a file into a tab

Go to the file you want and select More attachment options (...) > Make this a tab.

How to keep your Microsoft Teams status green? ›

Whenever you minimize or close the app or your screen locks, you'll automatically be switched to “Away.” To preserve your green dot, you'll need to keep the Microsoft Teams app open at all times and change the settings on your phone to stop the screen from going to “lock mode.”

Will a mouse jiggler keep Teams active? ›

There are plenty low-cost options out there, but a particularly popular one is Move Mouse. Because the mouse jiggler will prevent your computer from falling asleep, Teams will remain active as well.

How do I stop new Microsoft Teams from showing away after 5 minutes? ›

So, even if you are actively checking Microsoft Teams, the status will change from active to away when the app starts running in the background. Keep your Microsoft Teams app open to prevent this - is the only way to maintain the green status for longer.

How do I share a specific tab in Microsoft Teams? ›

To access, follow the steps:
  1. Open a personal app or tab and select Share to Teams.
  2. Add other user or group or channel to share the content.
  3. Select Share.
  4. Select View to reach the conversation where the link was shared.
Mar 26, 2024

How do I add a personal Planner to my team? ›

The simplest way is to select View more apps, search for Planner in the search bar, and then select Add. Tip: To pin the app for easy access, right click on Planner after adding the app and select Pin. To open the Planner app in a separate window, select Open in new window.

How do I add a tab to my team folder? ›

In Teams, select the channel page. To the right of the channel name, select the + on the tab bar.

How do you add a tab link to a team? ›

I get the link to the desired team room by clicking on the ... and clicking on "Get link to team". In my Teams room, I now go to the tab bar, click on +, click on "Website" and give the tab a name and the URL I copied before.

References

Top Articles
Latest Posts
Article information

Author: Jamar Nader

Last Updated:

Views: 5455

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.