Publish a custom app submitted through the Teams App Submission API

Overview

Note

When you publish a custom Teams app, it's available to users in your organization's app store. There are two ways to publish a custom app and the way that you use depends on how you get the app. This article focuses on how to approve and publish a custom app that a developer submits through the Teams App Submission API. The other method, uploading a custom app, is used when a developer sends you an app package in .zip format. To learn more about that method, see Publish a custom app by uploading an app package.

This article provides end-to-end guidance for how to take your Teams app from development to deployment to discovery. You'll get an overview of the connected experiences that Teams provides across the app lifecycle to streamline how to develop, deploy, and manage custom apps in your organization's app store.

We'll cover each step of the lifecycle, including how developers can use the Teams App Submission API to submit custom apps directly to the Microsoft Teams admin center for you to review and approve, how to set policies to manage apps for users in your organization, and how your users discover them in Teams.

Overview of your app from development to deployment

This guidance focuses on the Teams aspects of the app and is intended for admins and IT pros. For information about developing Teams apps, see the Teams developer documentation.

Develop

Create the app

The Microsoft Teams developer platform makes it easy for developers to integrate your own apps and services to improve productivity, make decisions faster, and create collaboration around existing content and workflows. Apps built on the Teams platform are bridges between the Teams client and your services and workflows, bringing them directly into the context of your collaboration platform. For more information, go to the Teams developer documentation.

Submit the app

When the app is ready for use in production, the developer can submit the app using the Teams App Submission API, which can be called from Graph API, an integrated development environment (IDE) such as Visual Studio Code, or a platform such as Power Apps and Power Virtual Agents. Doing this makes the app available on the Manage apps page of the Microsoft Teams admin center, where you, the admin, can review and approve it.this

The Teams App Submission API, built on Microsoft Graph, allows your organization to develop on the platform of your choice and automates the submission-to-approval process for custom apps on Teams.

Here's an example of what this app submission step looks like in Visual Studio Code:

Screenshot of submitting an app in Visual Studio Code

Keep in mind that this doesn't publish the app to your organization's app store yet. This step submits the app to the Microsoft Teams admin center where you can approve it for publishing to your organization's app store.

For more information about using the Graph API to submit apps, see here.

Validate

The Manage apps page in the Microsoft Teams admin center (in the left navigation, go to Teams apps > Manage apps), gives you a view into all Teams apps for your organization. The Pending approval widget at the top of the page lets you know when a custom app is submitted for approval.

In the table, a newly submitted app automatically shows a Publishing status of Submitted and Status of Blocked. You can sort the Publishing status column in descending order to quickly find the app.

Screenshot of Manage apps page showing pending requests and app status

Click the app name to go to the app details page. On the About tab, you can view details about the app, including description, status, submitter, and app ID.

Screenshot of app details page for a submitted app

For more information about using the Graph API to check the Publishing status, see here.

Publish

When you're ready to make the app available to users, publish the app.

  1. In the left navigation of the Microsoft Teams admin center, go to Teams apps > Manage apps.

  2. Click the app name to go to the app details page, and then in the Publishing status box, select Publish.

    After you publish the app, the Publishing status changes to Published and the Status automatically changes to Allowed.

Set up and manage

Control access to the app

By default, all users in your organization can access the app in your organization's app store. To restrict and control who has permission to use the app, you can create and assign an app permission policy. To learn more, see Manage app permission policies in Teams.

Pin and install the app for users to discover

By default, for users to find the app they have to go to your organization's app store and browse or search for it. To make it easy for users to get to the app, you can pin the app to the app bar in Teams. To do this, create an app setup policy and assign it to users. To learn more, see Manage app setup policies in Teams.

Search the audit log for Teams app events

You can search the audit log to view Teams apps activity in your organization. To learn more about how to search the audit log and to see a list of Teams activities that are logged in the audit log, see Search the audit log for events in Teams.

Before you can search the audit log, you have to first turn on auditing in the Security & Compliance Center. To learn more, see Turn audit log search on or off. Keep in mind that audit data is only available from the point at which you turned on auditing.

Discover and adopt

Users who have permissions to the app can find it in your organization's app store. Go to Built for Your Organization Name on the Apps page to find your organization's custom apps.

Screenshot of Apps page showing published app

If you created and assigned an app setup policy, the app is pinned to the app bar in Teams for easy access for those users who were assigned the policy.

Update

To update an app, developers should continue to follow the steps in the Develop section.

When the developer submits an update to a published custom app, you'll get notified in the Pending approval widget of the Manage apps page. In the table, the Publishing status of the app will be set to Update submitted.

Screenshot of Manage apps page showing pending requests and app status

To review and publish an app update:

  1. In the left navigation of the Microsoft Teams admin center, go to Teams apps > Manage apps.

  2. Click the app name to go to the app details page, and then select Update available to review details of the update.

    Screenshot of Manage apps page showing pending requests and app status

  3. When you're ready, select Publish to publish the update. Doing this replaces the existing app, updates the version number, and changes the Publishing status to Published. All app permission policies and app setup policies remain enforced for the updated app.

    If you reject the update, the earlier version of the app remains published.

Keep in mind the following:

  • When an app is approved, any one can submit an update to the app. This means other developers, including the developer who originally submitted the app, can submit an update to the app.
  • When a developer submits an app and the request is pending, only that same developer can submit an update to the app. Other developers can submit an update only after the app is approved.

For more information about using the Graph API to update apps, see here.

Update experience for users

In most cases, after you publish an app update, the new version automatically appears for users. However, there are some updates to the Microsoft Teams manifest that require user acceptance to complete:

  • A bot was added or removed
  • An existing bot's "botId" property changed
  • An existing bot's "isNotificationOnly" property changed
  • The bot's "supportsFiles" property changed
  • A messaging extension was added or removed
  • A new connector was added
  • A new static tab was added
  • A new configurable tab was added
  • Properties inside "webApplicationInfo" changed

Screenshot showing apps that have a new version available

Screenshot of upgrade option for an app