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

Important

Microsoft 365 Connectors (previously called Office 365 Connectors) are nearing deprecation, and the creation of new Microsoft 365 Connectors will soon be blocked. For more information on the schedule and how the Workflows app provides a more flexible and secure experience, see retirement of Microsoft 365 connectors within Microsoft Teams.

How can you create a webhook in Teams?

If you've already built Office 365 Connectors:

  • Create a Power Automate connector: Power Automate enhances the widely used Workflows apps in Teams. It's the scalable and secure approach to transmit data programmatically into and out of Teams. If you adopt this method, you can create workflow templates for posting alerts from your product to Teams channels. This approach simplifies user adoption of the new method. For more information, see Power Automate for enterprise developers, ISVs, and partners.

  • Update your Teams app: You can enhance your current Teams app. For example, you can enable users to set up proactive messages based on trigger events within your system. For more information, see how bots can post to channels through proactive messages.

Known issues

  • Workflows app can't post in private channels as a flow bot. However, it can post on behalf of a user.
  • Workflows support Adaptive Cards only. It doesn't support the older message card format that Office 365 Connectors use. Workflows don't support using the message card format. For more information, see how to convert connector message card format to Adaptive Card.
  • Workflows don't offer third-party connectors such as DataDog and Jenkins.
  • Workflows can only be created in your default environment.

Limitations

Workflows are linked only to specific users (referred to as owners of the workflow) and not to a Teams team or channel. Workflows can become orphan flows in the absence of an owner if no co-owners assigned. To maintain continuity in the business process automated by the flow, admins can add one or more co-owners and grant them full control over the workflow. They can also add authentication for connections, if any, and enable the flow if it has been disabled. For more information, see manage orphan flows.

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.

  1. Map your app's use cases to Teams platform capabilities.
  2. 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.

See also