chat: sendActivityNotification

Namespace: microsoft.graph

Send an activity feed notification in scope of a chat. For more details about sending notifications and the requirements for doing so, see sending Teams activity notifications.

Permissions

One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Permission type Permissions (from least to most privileged)
Delegated (work or school account) TeamsActivity.Send
Delegated (personal Microsoft account) Not Supported.
Application TeamsActivity.Send

HTTP request

POST /chats/{chatId}/sendActivityNotification

Request headers

Name Description
Authorization Bearer {token}. Required.
Content-Type application/json. Required.

Request body

In the request body, supply JSON representation of the parameters.

The following table shows the parameters that can be used with this action.

Parameter Type Description
topic teamworkActivityTopic Topic of the notification. Specifies the resource being talked about.
activityType String Activity type. This must be declared in the Teams app manifest.
chainId Int64 Optional. Used to override a previous notification. Use the same chainId in subsequent requests to override the previous notification.
previewText itemBody Preview text for the notification. Microsoft Teams will only show first 150 characters.
templateParameters keyValuePair collection Values for template variables defined in the activity feed entry corresponding to activityType in Teams app manifest.
recipient teamworkNotificationRecipient Recipient of the notification. Only Azure AD users are supported. See also aadUserNotificationRecipient.

The following resources are supported when setting the source value of the topic property to entityURL:

Note: The entity URL must be the same as or a child resource of the chat in the URL. Additionally, the Teams app must be installed in the chat.

Response

If successful, this action returns a 204 No Content response code.

Examples

Example 1: Notify a user about a task created in a chat

This example shows how you can send an activity feed notification for a new task created in a chat. For more details, see sending Teams activity notifications.

Request

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 12322"
        }
    ] 
}

Response

HTTP/1.1 204 No Content

Example 2: Notify a user about an approval needed in a chat message

Similar to the previous example, this example uses entityUrl for the topic. However, in this case, it links to a message in the chat. The message can contain a card with the approval button on it.

Request

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}"
    },
    "activityType": "approvalRequired",
    "previewText": {
        "content": "Deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "Microsoft.Teams.GraphSvc.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

Response

HTTP/1.1 204 No Content

Example 3: Notify a user about an event in relation to a chat

As shown in the previous examples, you can link to different aspects of the chat. However, if you want to link to an aspect that is not part of the chat, or is not represented by Microsoft Graph, you can set the source of the topic to text and pass in a custom value for it. Also, webUrl is required when setting topic source to text.

Request

POST https://graph.microsoft.com/v1.0/chats/{chatId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Deployment Approvals Channel",
        "webUrl": "https://teams.microsoft.com/l/message/19:448cfd2ac2a7490a9084a9ed14cttr78c@thread.skype/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
    },
    "activityType": "deploymentApprovalRequired",
    "previewText": {
        "content": "New deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "Microsoft.Teams.GraphSvc.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "deploymentId",
            "value": "6788662"
        }
    ]
}

Response

HTTP/1.1 204 No Content

See also

Notify Feed App C# sample