Prerequisites
- Access to Azure Portal with App Registration permissions.
- Access to Microsoft Teams Developer Portal
- Administrator privileges for granting API permissions
- Access to Novu dashboard
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.Log in to Azure Portal
Open Microsoft Entra ID
Open App registrations
Create a new registration
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).
Register the app
Note the IDs
Configure client secret
Open Certificates & secrets
Create a client secret
Add a description
Set expiry date
Add the secret
Copy the secret value
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.Open Authentication
Add redirect URI
Select Web platform
Set the redirect URI
- US region
- EU region
Configure
Add Microsoft Graph app permissions
These permissions let your app list teams and channels and decide where to send messages.Open API permissions
Add a permission
Select Microsoft Graph
Select Application permissions
Add required permissions
Team.ReadBasic.All- list teams in a connected tenantChannel.ReadBasic.All- list channels in a teamAppCatalog.Read.All- resolve your Teams app in the org catalogTeamsAppInstallation.ReadWriteSelfForTeam.All(optional) - programmatically install the app into a teamTeamsAppInstallation.ReadWriteSelfForUser.All(required only for OAuth DM linking) - install the app for a user during the link-user flow
Confirm permissions
User.Read
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.
Grant admin consent in your home tenant
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.Create a resource
Search for Azure Bot
Start creation
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.
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.
Review and create
Create the bot
Enable the Microsoft Teams channel
This connects your bot resource to Teams and lets your Teams app install cleanly.Go to resource
Open Settings
Open Channels
Select Microsoft Teams
Accept terms of service
Choose environment
Apply changes
Create a Teams app
Now you create the Teams “wrapper” around your app registration and bot.Open Teams client
Open Developer Portal
Create a new app
Enter app name
Fill in Basic information
Open App features
Select Bot
Enter bot ID
Configure bot capabilities
Enable scopes
- Team
- Personal
- Group chat
Add supportsChannelFeatures (Team scope)
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 Configure → App package editor → manifest.json, and add
"supportsChannelFeatures": "tier1" at the root level of the manifest. tier1 is the only supported value.Save the app
Download the app package
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.Log in to the Novu dashboard
Open Integrations Store
Connect a provider
Select MSTeams
Enter credentials
- 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.
Create the integration