What are push notifications?
A push notification is a message or alert that is sent from a backend server to a device targeted for an application. In simple terms, it’s a communication channel that helps to deliver timely and relevant information to users. The messages can be sent at any time, and users don't have to be using the app or their devices to receive them. The devices must be connected to a network and the application must subscribe to receive messages. The push notifications are typically sent to a device via a push notification provider. Some examples of push notification providers are IBM Push Notifications, Google Firebase Cloud Messaging, and Apple Push Notification. An enterprise system uses the push notification capability when changes are detected to the data in the system that could affect the user’s role. This push notification usually is sent to the user with a relevant message. The user that subscribes to receive such messages would be notified on their device.
How are push notifications configured and used in Maximo?
Maximo version 7.6.1.2 has a new feature to send push notifications from the Maximo system to mobile devices. The Maximo system needs to be configured to send push notifications. User devices must have a mobile application installed that supports push notifications. The configuration steps include setting up push notification provider details, events, and a notification queue.
A push notification provider account is required to configure push notifications. For example, to use Google Firebase Cloud Messaging, a Google account is required. The mobile application details should be registered using the account. The provider details (service account private key, API key, client secret, or push notification certificate) can be obtained after the mobile application bundle id(name) is registered. These provider details are used to configure a provider in Maximo using the Push Notification Administration application.
Any data change is treated as an event that can trigger a notification to be sent in Maximo. For example, a change to a work order status can trigger a notification. Maximo supports various types of notifications to inform appropriate users about such a change. Any event that needs to notify must be configured with an appropriate message (via message template) and a user must subscribe to it. The subscription is triggered by end-user informing to the Maximo system that a message needs to be sent on a certain event (data change). When the data is changed, the Maximo system detects it and puts the message constructed based on the data change in the notification queue and processes the messages. The messages are picked by a background job and if the message is targeted for a push notification provider it invokes the push notification API to send it to the configured provider’s system. The Notification queue (Kafka or JMS) must be configured to process messages.
A mobile application also needs to be registered with the configured provider. The provider’s API is used to register the application, and the API returns a registration token or a device ID.
A mobile application can use the Maximo push notification library to register with the configured provider, and the Maximo system, during the application login. The library’s Subscribe API is called to perform the registration. The Subscribe API uses the Maximo REST API call to determine the configured provider, calls the provider’s API to register the application to the provider’s cloud, and posts the registration token or device ID to Maximo.
The Maximo system uses the provider’s API to send messages to devices when the subscribed event occurs in Maximo. It uses the registration token or device ID from the registration/subscription of the application. For example, when a work order is approved, a message is sent to the configured provider in Maximo, and the provider sends it to the registered user devices.
The mobile device receives the message and sends the message to the application. The application displays the message to the user and the user can take appropriate action (for example, create a work order or create an inspection). The application uses the Maximo push notification library’s Listen API to listen to notification messages using a callback.
If the user using the application does not want to receive any messages, the application can call the Maximo push notification library’s Unsubscribe API, and the device no longer receives push notification messages.
Maximo Anywhere version 7.6.4 uses this Maximo feature to send push notification messages instead of using the Mobile First Push Notification service. Maximo Anywhere supports the Google Firebase Cloud Messaging provider.
How are push notifications used in Maximo Anywhere?
Maximo Anywhere version 7.6.4 uses the push notification feature to send push notification messages in the Work Execution and Inspection mobile applications. When an emergency work order gets approved and assigned, a notification is sent to a technician’s device where the Work Execution app is installed, or to an Inspector’s device where the Inspection app is installed.
Maximo Anywhere uses the Maximo push notification library to implement the device registration and notification of messages via callback. When a push notification is received, the callback function is called, and the application displays the message to the user. The Maximo push notification library is implemented for iOS (Swift), Android (Java), and Cordova (JavaScript). Currently, the library is included with Maximo Anywhere version 7.6.4. In addition to the library, Maximo Anywhere uses the Maximo server configuration to send the push notifications.
The Maximo push notification library code is developed as a reusable library but is currently included only in Maximo Anywhere.
Custom Mobile Applications
Additional use cases can be implemented with a custom Maximo Anywhere application. In case, a custom mobile app needs to be built outside of Maximo Anywhere, the following additional code needs to be added to the mobile application because the Maximo push notification library is provided only through Maximo Anywhere.
- Register a device with the provider and Maximo.
- Handle the callback to process the push notification messages.
Additional Information
How to create and manage notifications:
https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.1/com.ibm.mam.doc/workcntr/c_notifications.html
Configuration for push notifications in Maximo Asset Management:
https://www.ibm.com/support/pages/node/1283332
How to set up notification queues for event-based notification:
https://www.ibm.com/support/pages/manually-configuring-jms-queues-notifications-websphere
Maximo push notification application usage:
https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.1.2/com.ibm.mbs.doc/pushnotification/c_pushnotification_application.html
#AssetandFacilitiesManagement#Maximo