Push notification system

The push notification system involves several key elements that manage the delivery of push messages, push notification responses, and push feedback.

  • Customer instance: Your instance.
  • Push proxy: An instance that collects all push notifications that go to the ServiceNow mobile application and forwards them to the ServiceNow iOS or Android applications. If you create a custom push application, you do not use the push proxy.
  • Push provider: The provider of push messages, which is the Apple Push Notification service (APNs) or Google Cloud Messaging (GCM) service, for the ServiceNow mobile app or custom mobile apps.
  • Feedback provider: The provider of feedback messages, which tell the instance what devices are no longer valid. The Apple feedback or GCM server handles feedback messages for the ServiceNow mobile application on iOS and Android devices respectively.
  • Feedback proxy: The ServiceNow instance that handles feedback messages from the Apple feedback server.
  • Push application on a mobile device: he application, such as the ServiceNow mobile application. You can also build and customize your own push application.

Push notification process

The push notification process is as follows:
  1. Activity on the instance triggers a push notification.
  2. The instance looks for who to send the notification to and checks the user notification preferences to find their push device settings.
  3. The instance sends the push notification to the push notification service, either the Apple Push Notification service (APNs) or Google Cloud Messaging (GCM) service. If you are using the ServiceNow mobile app, the instance sendsthe notification through a push proxy instance, which then forwards the notification to the APNs or GCM service.
  4. The push notification service sends the notification to the user's push application. When the instance sends the notification to the push notification service, it includes message content along with the instance name and ID. This information ensures that a response to the notification is sent back to the correct instance. If the user can reply to the notification, such as sending an approval to a change request, the response is sent via REST message back to the instance.
  5. The instance identifies a script to run to handle the response.
  6. The script performs an action on the instance, such as marking a change request approved. If there is invalid JSON or if the script fails, an error response is sent back to the device.

The following diagram shows the elements of the push notification system with the ServiceNow mobile application. Within the ServiceNow infrastructure is your instance, the optional push proxy instance, and the ServiceNow feedback proxy. External to ServiceNow are the messaging services (APNs or GCM) and user mobile devices, which include the application that is registered to receive push notifications. See Push feedback for an explanation of the feedback service.

Figure 1. Push notification system with the ServiceNow mobile app
Push notification architecture for the ServiceNow mobile app

Push notification responses

With custom push applications, you can have your users act on records in the instance by responding to a push notification.

The actions that they can take are defined in a script that you associate with the notification message. The response is sent to the instance in this format:

https://{instance_name}/api/now/v1/push/{application Name}/action/{action}
The application name is the push application the user is using. The application name must match the application name in the Push Application [sys_push_application] table. The action is the Sys ID of the action in the Push Notifications Actions [sys_push_notif_act_script] table.

Push feedback

Feedback refers to the information about failed iOS message delivery and the iOS push applications that can no longer receive push notifications.

The instance uses a scheduled job to pull feedback data every hour from the APNs. When the APNs determines that a device can no longer receive push messages, the corresponding device is set to inactive, making it unable to receive push notification messages. The Push Feedback [sys_push_feedback] table shows the token for the device that failed. If the same device is again able to receive push notifications, the device might receive the same token from the APNs. A new record is inserted into the Push Notification Installation [sys_push_notif_app_install] table.