Create a message in the Message Contents [messaging_content] table that you can use in multiple notifications. Messages can be informative, or they can request action from an individual Slack or Teams user. For example, the Approval Request message includes Approve and Reject buttons to take the associated action in ServiceNow.

Before you begin

Role required: admin or messaging_admin

About this task

To enable users to take actions in Slack or Teams, use the Buttons message type and define scripted behavior. Only users that have linked their Slack or Teams account with their ServiceNow account can take action in ServiceNow from the third-party application.

Procedure

  1. Navigate to All > System Notification > Messaging Content.
  2. Open an existing notification record or click New to create a new record.
  3. Fill in or modify the fields as appropriate.
    Table 1. Messaging content fields
    Field Description
    Name Enter a unique name for the message.
    Type Select a type of message.
    • Simple: Send an informative message to an entire Team or Slack channel.
    • Buttons: Send a message to an individual user in Slack or Teams and define the desired behavior in the Script field. Associate buttons in the message with actions in ServiceNow. Use the Approval Request as an example.
    Target table To use record content in your message, select the appropriate table.
    Note: Notifications running on the Task [task] table are not supported. Instead, use a table extended from task.
    Fields Select which fields from the Target table appear in a simple message. Changing the order of the fields changes the display order in the notification.
    Message heading Enter text to appear at the top of the message.
    Message Enter the content of the message. Use notification variables to include dynamic information in your message. For example, use Incident ${number} to include the incident number in the message.

    For available variables, see Notification variables.

    Buttons

    Select or create buttons to use on the form. After selecting or creating a button, you must define button behavior in the Script field.

    Only visible when Buttons is selected in the Type field

    Script

    This field is only visible when Buttons is selected in the Type field.

    Enter a script to define what happens in your instance when a user selects a button in Slack or Microsoft Teams. Use the actions.get method to return the name of the button selected by the user.

    if (actions.get('button') == 'Approve') {
    		target.state = 'approved';
    		target.update();
    	}

    In this example, the script conditionally executes when the "Approve" button is selected.

    Use the method sn_notification.Messaging.send to send information to the messaging window.

    var content = new GlideRecord("messaging_content");
    content.get("1bb10839572213007f004758ef94f9c4"));
    sn_notification.Messaging.send(application, userId, content, target);

    In this example, the script stores a Message Content record in the content variable. It then posts a message from that Message Content record.

    Application Select the application scope for this notification.
  4. Click Submit

Example

This example shows the output of a message in Microsoft Teams. This message is of the buttons type, which shows buttons and performs scripted actions based on the user selection. In this case, the script uses the sn_notification.Messaging.sendmethod to display the change in state for the record.

Buttons type message

What to do next

Use the message in a notification. For more information about creating notifications, see Create a messaging notification.