From blogs to case studies to news, we love sharing our tips and tricks for asset management, cloud, IoT and smarter operations.

by | Feb 1, 2019

Innovative Solutions – Managing Notifications

Managing Notifications from Incidents, Work Orders, Purchase Orders, etc. can be challenging. The two most popular ways to generate Notifications are through Workflow (they can be sent out on any action node) or through Escalations. Often, we don’t want to send the email to just one person, it will have to go to a specific Role that might be recorded on the transaction, e.g. Approver on a Purchase Requisition or Lead on a Work Order, but this could also be related to the User logged in e.g. their Supervisor. If a group of People need to be informed then Person Groups provide this functionality and also defaulting based on Organization, Site and Shift.

Notifications Using Workflow and Escalations


The Workflow or Escalation triggers the Notification, the format of the email is determined from the Communication Template as is the Role, which determines who the email is sent to and this is based on the Transaction, the User or a Person Group.

However, this can still be limiting. Also this requires that the details be maintained by either Maximo Support or Business Administrators as we generally don’t give general users access to do this.

The Use Case

The example situation that we were faced with was related to emails being sent out for Incidents & Investigations when they got to a particular Status. Half of the recipients were not users of Maximo but we did have an email address for them. Also different people got emails based on the Unit and the Priority. For example, one person got all Incidents and Investigations for All Units regardless of Priority, yet another might get an email for a specific Unit and only when Priority was greater than 4. There was one format of email for Incidents and one for Investigations.
This was originally set up when there were only a few Units but as time expanded the list of possible Units grew to over 40. Units are set up in the Location Hierarchy and a record at any of the child Locations needed to also generate the email. Given all the possible combinations there where over 180 Escalations and Communications Templates involved.
This was clearly unsustainable and if a change was required then it needed to be done by Maximo Support. What was required was a much simpler solution and also to allow Users to decide on their own Notifications, we called these Subscriptions as user could pick and choose. Also, Business Admins were allowed to change Subscriptions on behalf of other Users and People (i.e. those without their own Maximo login).

The Solution

Firstly we need somewhere to store the email addresses and the obvious choice is the Person record, where there was no User Id (these were synced with LDAP) we created a Person record.
Now we had to decide where to store the Subscriptions, we had to be able to specify a top level location, a minimum priority and a type (Incident or Investigation). Initially we looked as Users & Custodians on the Locations object. This only partially fulfilled the requirement and also these are not accessible to all Users. We decided on creating a new object called Subscriptions that was a sub-object off Person. We could have multiple lines for each Person and we would specify Top Level Location, Type of Notification and Minimum Priority. Type was set up in an ALN domain to make Users could only enter a valid value.

Default Information Dialog

The Default Information Dialog could be used by each User to set their own Subscriptions, they can choose ant Location in the Hierarchy, whether they want to see Incidents or Investigations and the minimum priority they wanted to see (there where 5 priorities in use)

In order to add and remove from this Subscriptions object, we added a table to both the People application (for the Business Admins) and the Default Information Dialog (for individual users).
We only needed two Escalations; one each for Incidents & Investigations. These would determine how often they ran (every five minutes) and which status where applicable using the Escalation Points.
We also only needed two Communication Templates, the wording for each was different and the object from where they pulled data was too. Who the emails were sent to was determined by a Role that had been set up.
The Role was the smart bit. Again there were two Roles – one for Incidents and one for Investigations. We used a type “A set of data related to the record” in the Value field we put a Relationship and then Person Id.

Example Role Set Up

The role doesn’t have to be an individual Person, Data can be related to the current record or to the User, adding a relationship allows the current record to be linked to an email address, for example the Person record. This doesn’t have to be one email, it can be multiple.

The Relationship was added to the Incident and Problem (Investigations) Objects. The Child Object being PERSON. This would provide a list of appropriate emails to which the Users or person had subscribed to see the record.

The relationship combined Location Ancestor (for the Hierarchy) with the Subscriptions data and the Person record to determine who to send the Notifications too.

Once all this was set up we migrated the list of email addresses and subscriptions into Maximo and went live. Now users and admins can make changes to the subscriptions list without having to log a Change Request.

The Follow Up

The follow up to this solution was that it was relatively straight forward to add other Subscription Types. To add Work Orders, for example, we would only need to add a value to the Subscriptions Type Domain, an Escalation, a Communications Template, a Relationship and a Role, then the Subscriptions Data.
What we also did was to add a sub tab to the Logs, called Notifications, in Incidents and Investigations Apps that list the Persons, who would get the Notification, based on the Location, Priority and Type. This is a simple Table list with a Relationship that joins the record to Person using the same relationship clause.

Simon Barnes

Simon Barnes

Simon has been working with Maximo for over ten years in a variety of industries (Oil and Gas, Utilities, Facilities Management etc.). He has a passion for sharing his experience and passing on his Business, Functional and Technical Know-How. Simon has worked with BPD Zenith in both Canada and the UK on a wide variety of projects. He takes a no-nonsense, direct approach and loves to solve problems. He has also worked for end users in senior management positions, giving him an insight into the challenges of making Maximo work for the business and its operations.


9 Recommendations For A Successful SAP & IBM Maximo EAM Interface

9 Recommendations For A Successful SAP & IBM Maximo EAM Interface

Integration is often a key component for getting the most out of your critical IT applications. Modern Enterprise Asset Management systems such as IBM Maximo are designed for integration which can expand their capabilities and allow the flexibility that the industry...

Reinvent the Wheel with BPD Zenith’s Maximo Accelerators

Reinvent the Wheel with BPD Zenith’s Maximo Accelerators

I was recently involved in preparing a business case for a Maximo implementation, and as a part of process I spent considerable time analyzing and evaluating the best approach. In essence, I was trying to find the optimum balance between minimizing the length of the...

Defence Seaworthiness – A session from AMPEAK 2021

Defence Seaworthiness – A session from AMPEAK 2021

I recently got the opportunity to attend Asset Management Council of Australia’s AMPEAK conference. It has been a great experience interacting directly with the true practitioners of Asset Management, and understanding some of the technology challenges that they are...

How to call a Report directly from the Action Menu in IBM Maximo

How to call a Report directly from the Action Menu in IBM Maximo

In IBM Maximo, it’s possible to add a direct print option to a report. This adds a printer icon to the toolbar and allows you to run the report with just one click. But for reports where there are parameters required before running, this is not possible… Usually, a user will have to click the “Run Reports” action, then find their report in the list of all reports available for that application. They then click on the one they want before being taken to the IBM Maximo Reports Request page. In this blog I’ll show you how to get around that problem. in our example we use an Action launch point for an Automation Script and link it to a menu item in IBM Maximo Application Designer…

Sign up to our free newsletter to explore emerging technologies, industry events and Maximo best practice.

Come with BPD Zenith to the future of Asset Management

Listen to your assets!

Most companies are aware of waste in their preventative maintenance efforts, but aren’t quite sure how to eliminate it.