Skip to main content
Complete this setup once for your product. After the integration exists in Novu, connect each customer tenant and register channel or user destinations.

Prerequisites

Azure and Teams configuration

Before you can configure Novu, you must create the infrastructure that hosts your bot. This involves two distinct portals:
  • Azure portal: To create the identity (App Registration) and infrastructure (Bot Service).
  • Teams Developer Portal: To create the app package that your customers can install.

Create the app identity (Azure AD)

First, create a multi-tenant identity for your bot.
1

Log in to Azure Portal

Sign in at the Azure Portal.
2

Open Microsoft Entra ID

In the menu, click Microsoft Entra ID (formerly Azure Active Directory).
3

Open App registrations

In the Manage section, click App registrations.
4

Create a new registration

5

Fill in the form

  • Name: Enter any name of your choice.
  • Supported account types: Select Accounts in any organizational directory (Any Microsoft Entra ID directory - Multitenant).
6

Register the app

7

Note the IDs

After creating the app, note the Application (client) ID and Directory (tenant) ID. You need these values to configure Microsoft Teams in Novu.

Configure client secret

1

Open Certificates & secrets

On your new app’s overview page, click Certificates & secrets.
2

Create a client secret

3

Add a description

Summarize what this app registration is used for.
4

Set expiry date

Choose an expiration that aligns with your credential rotation policy.
5

Add the secret

6

Copy the secret value

Copy the value. This value becomes your BOT_APP_SECRET, and you’ll paste it into Novu. You can view the secret only once right after you create it, so save it before you leave the page.

Add Novu’s redirect URI

When a tenant administrator accepts admin consent, Microsoft redirects the browser to Novu at this URL. Register it in Azure on your app registration during setup - before any organization connects Teams. This is not the optional Redirect URL on the Novu integration. That Novu field only controls where the administrator is sent in your application after Novu finishes processing the callback.
1

Open Authentication

In the app registration sidebar, open Authentication (Preview).
2

Add redirect URI

Add the redirect URI shown in the Novu integration settings.
3

Select Web platform

In the menu that appears, click Web.
4

Set the redirect URI

In the Redirect URI field, set the redirect URI to the Novu OAuth callback URL:
  • US region
  • EU region
5

Configure

Complete the remaining required fields in the configuration form.

Add Microsoft Graph app permissions

These permissions let your app list teams and channels and decide where to send messages.
1

Open API permissions

In the app registration sidebar, click API permissions.
2

Add a permission

Search for and add the required Microsoft Graph permission.
3

Select Microsoft Graph

4

Select Application permissions

Switch from delegated to application permissions.
5

Add required permissions

Search for and select the following Application permissions:
  • Team.ReadBasic.All - list teams in a connected tenant
  • Channel.ReadBasic.All - list channels in a team
  • AppCatalog.Read.All - resolve your Teams app in the org catalog
  • TeamsAppInstallation.ReadWriteSelfForTeam.All (optional) - programmatically install the app into a team
  • TeamsAppInstallation.ReadWriteSelfForUser.All (required only for OAuth DM linking) - install the app for a user during the link-user flow
6

Confirm permissions

Grant admin consent if your tenant requires it.
If you plan to link subscribers for direct messages via OAuth, also add this Delegated permission under Microsoft Graph:
  • User.Read
Novu also requests openid and profile during the link-user OAuth flow; Azure includes these automatically for sign-in. Application permissions (above) cover tenant connect and channel messaging. Delegated User.Read is only needed for the separate link-user flow.
1

Grant admin consent in your home tenant

On the API permissions page, click Grant admin consent for [your tenant] and confirm. This applies the application permissions in the tenant where you registered the app. Each organization that connects Teams later grants consent separately through the Novu OAuth flow.

Create an Azure Bot resource

Now you register your bot with the Azure AI Bot Service and link it to the app registration that you just created.
1

Create a resource

In the Azure portal menu, click Create a resource.
2

Search for Azure Bot

Search for “Azure Bot”, and then click the Azure Bot resource.
3

Start creation

Click Create.
4

Fill in the basics

  • Bot handle: The unique display name in Azure.
  • Subscription: Select the Azure subscription.
  • Resource group: A collection of resources that share the same lifecycle, permissions, and policies, you can either select or create one.
  • Data residency: Specify an option for data residency, either global or regional.
5

Configure Microsoft App ID

  • Type of app: Select Single-tenant app registration.
  • Creation type: Choose “Use existing app registration” and use app IDs you created earlier:
    • App ID: Replace with the Application (client) ID.
    • App tenant ID: Replace with the Directory (tenant) ID.
6

Review and create

Validate the configuration, then proceed to deployment.
7

Create the bot

Wait for Azure to finish provisioning the bot resource.

Enable the Microsoft Teams channel

This connects your bot resource to Teams and lets your Teams app install cleanly.
1

Go to resource

Once the deployment finishes, click Go to resource.
2

Open Settings

In the Azure Bot resource, open Settings.
3

Open Channels

Under settings, open the Channels pane.
4

Select Microsoft Teams

In the available channels section, click Microsoft Teams.
5

Accept terms of service

In the menu that appears, accept the terms of services.
6

Choose environment

In the Messaging section, choose the appropriate environment, typically Microsoft Teams Commercial.
7

Apply changes

Save the channel configuration before leaving the page.

Create a Teams app

Now you create the Teams “wrapper” around your app registration and bot.
1

Open Teams client

2

Open Developer Portal

In the left sidebar, click Apps. Search for Developer Portal and click Add, then open it.
3

Create a new app

In the Developer Portal dashboard, click Create a new app.
4

Enter app name

Enter a name of your choice and click Create.
5

Fill in Basic information

In the left sidebar, click Basic information. Fill in the required fields (names, descriptions, developer info, URLs) and then click Save.
6

Open App features

In the sidebar, click App features.
7

Select Bot

8

Enter bot ID

Under Identify your bot, select Enter a bot ID and then paste your Application (client) ID from Microsoft Azure.
9

Configure bot capabilities

In the What can your bot do? section, select “Only send notification” (at minimum).
10

Enable scopes

Under Select the scopes where people can use your bot, enable the scopes based on your use case:
  • Team
  • Personal
  • Group chat
11

Add supportsChannelFeatures (Team scope)

If you enabled the Team scope, add the supportsChannelFeatures property to your app manifest. Without it, uploading or installing the app fails with:
Applications with manifest version 1.25 or higher that support the ‘team’ scope must include the ‘supportsChannelFeatures’ property.
In the Developer Portal, go to ConfigureApp package editormanifest.json, and add "supportsChannelFeatures": "tier1" at the root level of the manifest. tier1 is the only supported value.
12

Save the app

Save your Teams app manifest changes in the Developer Portal.
13

Download the app package

In the top right, click Distribute and then click Download the app package. This will save a copy of the app package to your computer in ZIP format.

Upload your app

Next, you must install the app into a specific Team or for a specific User. Follow the steps in the Microsoft Teams documentation to learn how to upload the just downloaded app package and also how to add the app to a specific location.

Configure the Teams (Bot) integration in Novu

Now that you’ve configured your Azure Bot, provide Novu with the credentials to integrate it.
1

Log in to the Novu dashboard

Open the Novu Dashboard.
2

Open Integrations Store

In the sidebar, click Integrations Store.
3

Connect a provider

In the Integration Store, click Connect provider to begin setup.
4

Select MSTeams

5

Enter credentials

Enter the credentials you saved from the Azure Portal:
  • Client ID: Enter your BOT_APP_ID.
  • Client Secret: Enter your BOT_APP_SECRET.
  • App Tenant ID: Enter your APP_TENANT_ID. This value identifies the tenant where you registered the app.
  • Redirect URL (Optional): Where the tenant administrator is sent in your application after Novu processes the OAuth callback. This is not the Azure redirect URI - see Add Novu’s redirect URI.
6

Create the integration

Review your credentials, then click Create Integration to save.
From now on, Novu can send messages as your bot once an organization’s tenant is connected and the app is installed in Teams.
Try the Microsoft Teams integration with a demo appIf you’ve completed the previous steps, you can test your bot configuration end to end with this demo app.

Next

Connect a tenant

Generate admin consent, install the app, and register channel or DM destinations.