We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

ServiceNow Provider Notifications: Configuring One-Click Approval in Microsoft Teams

ajaykumarin
Tera Contributor

Overview

Provider Notifications allow sending interactive notifications to approvers in Microsoft Teams when an approval is created. Approvers can approve or reject directly from Teams in a single click, without navigating to ServiceNow.

 

Configuration Steps

 

Step 1: Create Provider Notification

Set the application scope to Microsoft Integrations - Core.

Navigate to: All → System Notifications → Provider → Notifications.

Click New.

Configure:

Name: Give Appropriate Name

Category: Microsoft Integrations

 

Step 2: Configure Trigger Conditions

Provider notifications can be triggered by event or record change.

Navigate to “When to send” tab.

Configure:

Table: Approval (sysapproval_approver)

Trigger: Record Change

Inserted: True

Condition: state = requested

This ensures notification is sent when approval is created.

ajaykumarin_0-1774533095566.png

 

 

Step 3: Configure Recipients

Navigate to “Who will receive” tab.

Configure:

Recipients: Approver

Save the record.

ajaykumarin_1-1774533095569.png

 

 

Step 4: Create Provider Content

Navigate to Contents related list.

Click New Provider Content.

 

Step 5: Select Notification Channel

An interceptor will appear to choose where the notification should be displayed.

ajaykumarin_2-1774533095574.png

 

 

Options:

Virtual Agent Content – Chat: Used to send notifications via ServiceNow bot in Microsoft Teams.

Virtual Agent Content – Messaging: Used for messaging apps like WhatsApp.

Workspace: Opens record in Workspace.

Next Experience: Opens record in native UI.

 

Select Virtual Agent Content – Chat.

Configure:
Name : Give appropriate name.

 

Step 6: Configure Format

Navigate to Format tab.

 

Available Types:

Record Card: Displays structured data in card format.

Simple: Plain chat message.

Image Card: Includes image and text.

 

Configure:

Type: Simple

Table: Approval (sysapproval_approver)

ajaykumarin_3-1774533095582.png

 

 

Step 7: Configure Message

Navigate to Message tab.

 Enable Advanced checkbox.

Add the required script in the script field.

Refer to the Provider Notification code link for the script.

Provider Notification code link 

 

Note

To send approval notifications with complete record details, there are certain limitations in Provider Notifications.

  • In the Record Card format, only fields from the Approval (sysapproval_approver) table can be accessed.
  • Fields from the actual task record (such as Change Request or RITM) cannot be accessed directly.

To overcome this limitation:

  • One approach is to use a topic action with a “View Details” option.
  • However, this requires users to first click View Details and then perform Approve/Reject, resulting in multiple clicks.

To enable a single-click approval experience:

  • Use the Simple type in the Message tab.
  • Enable the Advanced script option.
  • Write a script to fetch and display required fields from the underlying task record directly in the notification.

 



ajaykumarin_4-1774533095595.png

 

 

Step 8: Select Channel

Navigate to Channels tab.

Select Microsoft Teams.

ajaykumarin_5-1774533095601.png

 

Save the record.

 

Step 9: Configure Actionable Buttons

Navigate to Actions related list.

9.1. Create Approve Button:

Click New.

Configure:

Name: Approve

Model Type: LLM- if NowAssist is enabled in virtual agent/NLU – if virtual agent is not enabled

Topic: Approve Sysapproval Approver

Active: True

ajaykumarin_6-1774533095606.png

 

 

Save the record.

 

9.2. Create Reject Button:

Click New.

Configure:

ajaykumarin_7-1774533095611.png

 

Name: Reject

Model Type: LLM- if NowAssist is enabled in virtual agent/NLU – if virtual agent is not enabled

Topic: Reject Sysapproval Approver

Active: True

Save the record.

 

Step 10: Link Actions to Provider Content

Scroll to Link Actions to Content related list.

Click New.

Configure:

Content: select the content you created previously.

Actions: Approve, Reject

ajaykumarin_8-1774533095618.png

 

 

Save the record.

 

.

Testing

Trigger the approval by changing the Normal Change Request state to Assess. Once triggered, an approval notification is sent to the approvers in Microsoft Teams along with the Change Request details.

Approvers can then approve or reject the request with a single click, without needing to log in to ServiceNow.

ajaykumarin_9-1774533095621.png

 

 Regards,
Ajay Kumar Indla

18 REPLIES 18

Hi Ajay as per Your Suggestion I have Enabled the Notification Check Box in the Sys_cs_channel Table for Teams. And Executed The job that You mentioned above and Raised a Request I got the Notification within Teams about the Request and approve Reject Buttons as well, I approved It and the Request Got approved and went for second stage of approvals. Now here to confirm its Functioning I did a second Set of Testing But again I received Nothing Within Teams, but the Notification logs are showing like this attaching that Image here also there are two approvers for that Request one is ME and other one is my Colleague He is saying He haven't Received anything within Teams about this Request. Like How I received image.png

Hi @ajaykumarin , So the Issue I'm facing right now is We are getting the Notifications within teams for some of them, and for some of the Request we are not getting the Notifications within Teams, the pattern is Very Inconsistent I would say 2 out of 6 requests are reaching into teams and other are not even though the logs are showing the same i shared on the above reply.

 

Hi Naziya,

Actionable notifications are delivered to users when they're not in an active conversation with a virtual or live agent. A queue stores actionable notifications that are waiting to be delivered, for up to eight hours by default.

This is as per the documentation.

https://www.servicenow.com/docs/r/washingtondc/servicenow-platform/virtual-agent/configuring-va-noti...



Even when the chat is not closed, sys_cs_conversation if it has an active record for a particular user the notification will stay queued.

Can you share the user from this approval who faced this issue and share screenshot from Teams at the time when notification got triggered?

Hi @ajaykumarin i have configured the Notification in such a way that you don't have to do an extra click to approve or Reject that notification on the First Notification itself it is giving me the approve or reject button,

So my question is when i Click on Reject

naziyabegum_0-1784226784645.pngnaziyabegum_1-1784226851283.png

It is Giving do you want to add a comment and giving Yes or No

If I click yes, it is letting me to add comments, if I click no it is directly rejecting that request, so I don't want that to happen, I want the request to be rejected with Reason. Where is this Yes, no button is coming from.

Hi @naziyabegum,

Yes, we can directly add Approve and Reject buttons to the Microsoft Teams approval notification, allowing approvers to take action without opening the record.

However, there is a current limitation. The notification is based on the Approval record, so we can only display fields available on the Approval table. We cannot directly display fields from the related Task or Change record (such as Planned Start Date, Planned End Date, State, or other task-specific information) in the approval card.

For example, when a Change Request is sent for approval, an approver would ideally like to see details such as the planned start date, planned end date, short description, and current state before making a decision. Those fields are stored on the Change record, not on the Approval record, so they aren't available in the approval notification. The approver would need to select View details to access the full record if they need that additional context.

To Make Rejection reason Mandatory Please enable below property
"actionable_notification_approve_or_reject_reason_mandatory"