How to Send Notifications to Canvas Apps in Microsoft Teams
- bouhmidiasmaa
- Sep 15, 2025
- 3 min read
In today’s fast-paced business environment, keeping users informed in real time is crucial. If you’re building Canvas Apps in Power Apps and integrating them with Microsoft Teams, sending notifications directly to users can greatly enhance engagement and workflow efficiency. In this blog, we’ll walk you through the process of sending notifications from Canvas Apps in Teams to individual users, step by step.
Before sending notifications, make sure you have a Canvas App built in Power Apps and shared with the users in your organization.
Step 1: Create the App Registration in Azure AD
Creating an Azure AD App Registration gives your Canvas App the identity and permissions it needs to interact with Teams via Microsoft Graph.
Go to the Azure Portal:
Navigate to Azure Active Directory → App registrations → Create new registration.
Add a client secret:
In your app registration, go to Certificates & secrets → New client secret.
Copy the secret value immediately, as it will only be displayed once.
Add API permissions:
Go to API permissions → Add a permission.
Select Microsoft Graph and choose the required permissions for your app.
Click Grant admin consent to authorize the permissions.

Step 2: Integrate Your Canvas App in Microsoft Teams
Before you can send notifications to a Canvas App, you need to make sure the app is available inside Microsoft Teams. Here’s how to do it:
Go to https://make.powerapps.com/, click on Apps, then Share, and finally Add to Teams.

Then Download app, this will download a zip folder.

Unzip the folder and modify the manifest file to update the webApplicationInfo. Use the client ID of your app registration for id, and set resource to https://graph.microsoft.com.”
For clarity, your manifest snippet should look like this:
"webApplicationInfo": {
"id": "YOUR-CLIENT-ID-HERE",
"resource": "https://graph.microsoft.com"
}Zip the folder again, then go to https://admin.teams.microsoft.com/. Click on ‘Manage apps’, then choose ‘Upload custom app’ (or the Action → Upload new app option), and select the zipped folder you just updated

Step 3: Create a Power Automate Flow to Send Notifications
The first step to add after the trigger is an HTTP Request action to generate the token
URL : https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
Body : client_id=<Your-Client-ID>&scope=https://graph.microsoft.com/.default&client_secret=<Your-Client-Secret>&grant_type=client_credentials
Next step is a Parse JSON to exract data
{
"type": "object",
"properties": {
"token_type": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"access_token": {
"type": "string"
}
}
}Next step is an Http Request to get the user information

And again a Parse JSON to exract returned data
{
"type": "object",
"properties": {
"@@odata.context": {
"type": "string"
},
"businessPhones": {
"type": "array"
},
"displayName": {
"type": "string"
},
"givenName": {},
"jobTitle": {},
"mail": {
"type": "string"
},
"mobilePhone": {},
"officeLocation": {},
"preferredLanguage": {},
"surname": {},
"userPrincipalName": {
"type": "string"
},
"id": {
"type": "string"
}
}
}Add an HTTP Request action to get the Teams application information.
URL : https://graph.microsoft.com/v1.0/users/{user_ID}/teamwork/installedApps?$filter=teamsApp/id eq '{APP_ID}' 
the user_ID is returned by the previous Parse JSON
the APP_ID is displayed in the teams admin center

Again another Parse JSON to extract returned data
{
"type": "object",
"properties": {
"@@odata.context": {
"type": "string"
},
"@@odata.count": {
"type": "integer"
},
"value": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"consentedPermissionSet": {}
},
"required": [
"id",
"consentedPermissionSet"
]
}
}
}
}The last step is an HTTP Request to send the notification
URL : https://graph.microsoft.com/beta/users/{user_ID}/teamwork/sendactivitynotification
Body : {
"topic": {
"source": "entityUrl",
"value": "https://graph.microsoft.com/v1.0/users/{user_ID}/teamwork/installedApps/{APP_ID}"
},
"activityType": "systemDefault",
"previewText": {
"content": "New case has been created"
},
"templateParameters": [
{
"name": "systemDefaultText",
"value": "Case number is: @{triggerOutputs()?['body/ticketnumber']}"
}
]
}
the {APP_ID} is returned by the previous Parse JSON
The user will receive a notification in Teams. Once they click on the notification, the app will open.

Hope this was helpful, and that it makes integrating Teams notifications into your app easier and more effective!




Comments