Considerations for Teams integration
You can make web apps suitable with Microsoft Teams' social and collaborative features, by properly integrating them with Teams.
The different types of apps, which you can integrate with Teams are as follows:
- Standalone apps: A standalone app is a single-page or large, and complex app. The user can use some aspects of it in Teams.
- Collaboration apps: An app already built for the social and collaborative features inherent to Teams.
- Microsoft SharePoint: A SharePoint page you want to surface in Teams.
You can map and follow the appropriate guideline applicable to your integration scenario. This document gives an overview of Teams capabilities, SharePoint requirements for file and data storage, API requirements, authentication, and deep linking of your app with Teams.
Get to know Teams platform capabilities
Integration scenarios: Standalone apps, collaboration apps, SharePoint
Your Teams app must include required and expected collaborative features. To work with app integration, it's important to familiarize with Teams development terminology.
Common app features | Teams platform capabilities |
---|---|
Embedded webpage, homepage, or webview | Tabs Tabs extended across Microsoft 365 |
Share shortcuts and extensions | Message extensions Message extensions for Outlook |
Action shortcuts and extensions | Message extensions |
Chatbots | Bots |
Channel notifications | Bots Incoming Webhooks Connectors for Microsoft 365 Groups |
Message external services | Bots Outgoing Webhooks |
Modals | Dialogs (referred as task modules in TeamsJS v1.x) |
Content-rich cards | Adaptive Cards |
Determine a subset of functionality
Integration scenarios: Standalone apps
Integrating all features of an existing application into Teams often leads to a forced or unnatural user experience, particularly in larger apps. Start with the most impactful features and those that integrates more naturally with Teams. You can allow users to launch the main app and access its full set of features.
The following are the prerequisites to integrate your app with Teams.
- Map your app's use cases to Teams platform capabilities.
- Determine your app's entry points. Is it for personal use, for collaboration, or for both?
Understand SharePoint requirements and options
Integration scenarios: SharePoint
To integrate an existing SharePoint page as a Teams tab, you must consider the following:
- It must be a modern SharePoint online page.
- Only personal tabs are supported. You can't integrate your page as a channel tab.
Alternatively, you can build a Teams tab using the SharePoint Framework.
Aim towards multitenancy
Integration scenarios: Standalone apps, collaboration apps, SharePoint
If your app is used by multiple organizations, consider multitenant hosting. It makes your product scalable and simplifies the distribution.
Review your APIs
Integration scenarios: Standalone apps, collaboration apps
Your app's APIs and data structures must support the app when integrating with Teams. To extend the support, you must augment the APIs and data structures with contextual information about Teams for identity mapping, deep-link support, and incorporating Microsoft Graph.
See how to get context for your Teams tab or bot.
Understand authentication options
Integration scenarios: Standalone apps, collaboration apps, SharePoint
Microsoft Entra ID is the identity provider for Teams. If your app uses a different identity provider, you must either do an identity mapping exercise or combine with Microsoft Entra ID.
Teams has single sign-on (SSO) mechanisms with Microsoft Entra ID for third-party apps. It also provides the guidance for authentication flows to other identity providers using standards such as OAuth and OpenID Connect, known as OIDC.
Important
The third-party apps are available in Government Community Cloud (GCC) but are not available for GCC-High and Department of Defense (DOD). Third-party apps are turned off by default for GCC. To turn on third-party apps for GCC, see manage app permission policies and manage apps.
For SharePoint pages, you can only use SSO and can't add another Microsoft Entra ID if you want SSO to work for another app as the ID is the SharePoint app.
Learn more about authentication in Teams.
Follow Teams design guidelines
Integration scenarios: Standalone apps, collaboration apps
Ensure to follow Teams design guidelines to make your app native to Teams. You can't migrate an existing app content to a Teams tab. For more information on app design, see Fluent Design System.
Maximize deep linking
Integration scenarios: Standalone apps, collaboration apps, SharePoint
You can create links to information and features within Teams. Use deep links to link your app with Teams as they tie together multiple pieces of an app for a more native Teams experience.
Be smart when messaging users
Integration scenarios: Standalone apps, collaboration apps, SharePoint
Use a bot in your Teams app for multi-threaded conversation, as it offers more flexibility than a webhook.
Bots also allow you to send proactive messages to individual users or channels. The proactive messages are unprompted messages triggered by an outside event and not a message sent to a bot. For example, your bot sends a welcome message when it's installed or a new user joins a channel.
Sending proactive messages requires Teams-specific identifiers. You can capture the information by fetching roster or user profile data, subscribing to conversation events, or using Microsoft Graph.
Don't spam users with excessive messages. If the Teams capability supports it, the users can configure notification settings for your app. Following is an example of a notification message: Don't send me unprompted messages.
Use SharePoint for file and data storage
Integration scenarios: Standalone apps, collaboration apps, SharePoint pages
When a team is created, a SharePoint site collection is also provisioned to support file and data storage for that team. Your app must leverage this feature if it interacts with files. Use the site collection to store raw data in SharePoint Lists and Microsoft Excel.