Maximo Push Notifications Architecture

By Sarika Budhiraja posted Fri August 14, 2020 12:25 PM



Maximo version 7612 has a new push notification feature that can be used for sending notifications to mobile devices. The Maximo platform can be configured to use push notification providers, such as IBM Push Notifications, Google Firebase Cloud Messaging, or Apple Push Notification. Maximo also provides a new Push Notification Administration application to configure providers and their details. This feature allows users to send messages to both types of devices; Android as well as iOS. A mobile app must be installed on the mobile device to receive push notifications. Maximo Anywhere version 764 provides mobile apps that use this feature.

Maximo can be configured for an event condition, such as when a work order status is approved or work is assigned/reassigned to a technician, to trigger a push notification.  When the condition occurs, an event is triggered, the send Message API is called, and a message is sent to the devices that are registered for push notifications. The message can be customized using the Notification application. The event-based notification requires a notification queue to be set up.

This push notification Message API service can also be directly called from Java code, scripts, escalations, cron tasks, and workflows.


The following diagram illustrates how the various components are involved in configuring, sending, and receiving messages:



The mobile device needs to be registered with Maximo and the push notification provider to use push notifications in Maximo. The following configuration is required in Maximo:

  • Push notification service provider configuration
  • Maximo provider configuration
  • Maximo event configuration
  • Mobile application registration

Push notification service provider configuration

  1. Register an account with a push notification service provider (such as Google, IBM, or Apple) and configure the user mobile application information (such as the application bundle ID and IOS certificate). Obtain the certificate, authorization key or token.

Maximo provider configuration

  1. Configure provider details in Maximo using the Push Notification Administration application.


The following information is required for the provider configuration in Maximo:

  • IBM Push Notifications

The information can be obtained from IBM Push Notification service instance credentials.

  • Application Identifier
  • API Key
  • Client Secret
  • Region
  • Firebase Cloud Messaging                                                                                      

This information can be obtained from the Firebase project. Generate and download the JSON private key file from your Firebase service account   

  • Private Key File from Service Account
  • Apple Push Notifications

The certificate can be obtained from the Apple account.

  • Certificate
  • Password

Maximo event configuration

  1. Configure an event using the Notification application and subscribe to this notification event. For example, create an event for when a work order is approved. A condition can be added to the Attribute Conditions table in the Notification application as shown in the following diagram.


Mobile application registration

  1. Install a mobile application on the device and allow push notifications to be received. The mobile application code should register with provide and the Maximo server and listens for messages. The Maximo provides a library for performing these steps and includes this library with Anywhere.
  2. The device ID is sent to the Maximo server by calling the Maximo REST API.
  3. The device ID is saved in the Maximo database. It will be used when the message is sent to the provider.

Sending push notifications

When an event that is subscribed for push notifications is triggered, the send Message API is called, and a message is sent to the registered devices.

Trigger an event

  1. An event can be triggered in Maximo by creating the event condition that was configured in the previous step. For example, if you approve a work order and assign it to a technician, the event listener will send a message to the notification queue.
  2. The notification queue processor invokes the send message API on the queue message, and the API will send a request to the configured provider’s cloud server. The payload consists of a notification title and message. This flow is displayed in the following diagram:


Subscribe for events

A subscription needs to be created for the event in the User Subscription table. A user subscription can be added using a database script or REST API using a custom object structure associated with OSUSERSUBSCRIPTION for the user. The registered device for the subscribed user will receive the push notification when the event will occur.

Receiving push notifications

The mobile application must register to push notification provider and the Maximo. The application should register a callback to listen to the push notification messages. When the message is received by the push notification provider, the callback registered for the application gets called to handle the message.

Maximo push notification service

The Maximo push notification service (send Message API) calls the provider REST API to send the push notification message when the configured event occurs in Maximo. For example, when the work order is approved.
pushrequestThe payload for the message sent to the provider consists of:

  •  Notification message: This message gets displayed on the device. The notification message can be configured using the Notifications application.
  • Additional Data: For example, work order description, status.
  • Title: Title of the message.
  • Device token: It is a unique key for the app-device combination which is issued by the push notification provider gateways.

Maximo push notification service authenticates with the provider using the following mechanisms:

The IBM Push Notification service uses IAM authentication. The IAM token is generated from the API based on the service instance API key. The Firebase Cloud Messaging uses Google OAuth2 access token for the authentication. The token is generated based on the Firebase service account private key. The Apple Push Notifications uses a certificate to send the request.

Push notification mobile library

The Maximo mobile push notification library contains APIs that feature the ability to register the device with the provider and with Maximo. The library includes the following APIs:

  • Subscribe: registers the device. This API calls the OS-specific API to generate the device ID.
  • Listen: listens to messages. This API registers a callback, listens to the push notification message, and invokes the callback.
  • Unsubscribe: un-registers the device. The device no longer receives notifications.

This figure illustrates the mobile application using the Maximo push notification library to register to provider and Maximo and listen to push notification provider callback to receive messages on the device.

This shared library for mobile applications is implemented for Android (in Java) and iOS (in Swift). The library also provides a JavaScript interface based on Apache Cordova specifications to be used with Cordova based applications.

Maximo Anywhere

Anywhere 7.6.4 uses this feature for sending push notification messages using Google’s Firebase Cloud Messaging provider. The message is received when the application is in the foreground or background. When an emergency work order is assigned to a technician, the message is sent to the technician’s device where the Work Execution or Inspection application is installed. You can click on the message to see work order details.


Additional Information

How to create and manage notifications:

Configuration for push notifications in Maximo Asset Management:

How to set up notification queues for event-based notification:

Maximo push notification application usage:




Wed September 23, 2020 03:32 PM

The push notification library is included in the Anywhere 764 release.

Tue September 08, 2020 07:11 AM

where can I find the push notification library to be used in case of custom mobile apps?