Yes, We Can!

Salesforce Applications and Services

Yes, We Can!

January 14, 2019 Scheduler 0

When Isimio was asked to build an intricate demo, we did not shy away from the task. Find out how Isimio can be configured to meet any challenge!

Minutes after our recent outing to the world, we had received a unique contact for a demo request. What was special about this particular one is that it was to do with a vertical that none of us had ever considered for Isimio before: Asset management.

Our mission statement is clear: Isimio will always try to say “Yes, we can!”. So we hopped on a meeting and gathered the basic requirements! The company has equipment that requires regular maintenance, and needs to keep track of when who should do what. It sure sounded like they could benefit from a scheduling solution – even if we didn’t have a ready-made model for them.

So we got to work preparing an environment for this entirely new use-case: we designed a new data model, making use of the standard Asset, Product, and User objects in Salesforce, but with a maintenance ticket custom object. The easy part was getting all these objects (including our custom one) onto the schedule. All it took was a few records:

Configuring 4 objects into Isimio’s scheduler.
Inside each object record we also configure the fields.

Lightning-Speed Configuration

Creating this configuration was a breeze thanks to Salesforce’ Lightning Experience UI (did we mention Isimio is actually built for Lightning, and is not just compatible?). Inside each object, we configured the fields and what they do. The Due Date for each maintenance ticket is the start date field; our master-detail relationship is the primary link to Assets; and a few other fields had to be marked as editable so they would show up in the form when a user double-clicks on a task. Profile permissions are taken into account, of course.

We booted up the scheduler, and everything was working as expected! This meant we could tackle the actual business challenges this tool could solve.

The issue of maintenance cycles was resolved outside the scheduling tool, by creating a scheduled class that tracks and creates tasks while the asset is active. It was then we went to tackle the big issue: If we have more assets that can fit in the screen, then how do we show the user what the most urgent issues are? The solution was simple – order the rows so that the most urgent ones show up first. But that would require a code change, and this is a managed package installation after all…

No Code Access? No Problem!

It is no secret that code inside a Salesforce managed package is locked. Even the visible Javascript, installed as a static resource, cannot be edited in any way. This is where many apps stop and say this is as far as we go – but not Isimio. Our plugin-centered infrastructure allows developers to build and swap out original app logic and replace it with their own. It took about 30 lines of Javascript to create a plugin that changes the sorting order according to which asset has the nearest maintenance task.

And a little CSS to make high-priority tasks pop.

We could now package this code as a plugin and deliver it to any future projects where it could be helpful. Neat!

On that note, Isimio also allows you to replace its server-side logic with your own Apex classes. There was no need to do that in this instance, but it is certainly something we’ve used in other projects. This ability allows us to extend what the scheduler can do not just from a UI perspective, but to truly be able to recompose every aspect of the software according to the needs of the user.

Tying it All Together

The rest of the work was composed of using native Salesforce tools to complete the job. Set up the page layouts, email notifications, and process-based automation to make the org come to life. It is such an incredible feeling being able to hand over so much of the setup work to those without decades of experience, and we owe that to the incredible platform we built the product on.

After around 7 hours of setting up the system, including writing code for the various extensions, we were happy. Time to call the prospect and tell them we are ready for a demo. And because this can all be packaged and re-installed as a plugin on other orgs, next time someone asks for asset maintenance scheduling, we’ll be able to say “Yes, we can!”

The final result. Equipment that is due maintenance appears at the top!