Maintenance and Field Service Management (FSM)

Content Type: Industry Template


Imagine being in charge of multiple factories where each assembly line consists of multiple assets. When one of these assets breaks down this could lead to significant downtime and enormous financial losses. Maintenance & Field Service Management can help speed up asset inspection, maintenance tasks, malfunction repair and other activities that drive asset productivity and therefore helps reduce downtime as well as maintenance efficiency. To do so Maintenance & Field Service Management (FSM) combines work order planning in an up to date web client for team leads and work order execution in a native mobile client for maintenance technicians in the plant or in the field.


Maintenance & Field Service Management (FSM)


Our customers in the manufacturing industry showed the same challenges over and over again. Inefficient and paper-based processes and a lack of information (quality) resulting in a significant amount of unplanned downtime and operational inefficiencies while at the same time affecting customer satisfaction and customer retention. These challenges cost the industry billions of dollars every year. The Maintenance & Field Service Management (FSM) template is not only helping the maintenance team leadership by providing more transparency and operational excellence, it significantly benefits field workers just as much. Let’s be clear: We don’t want to replace technicians with technology. People remain the most important part in an organization, even in manufacturing companies where a lot is done by machines. Instead, we want to make the life of field workers more satisfying by offering the right tools which will increase productivity, improve safety and employee satisfaction across the operation. We co-developed our template together with a number of customers always making sure that we are offering the kind of functionality that the industry needs. By using the Mendix platform, our Maintenance & Field Service Management (FSM) integrates easily with other enterprise systems, can be used on- and offline and is customizable to your specific needs. Adopt Maintenance & Field Service Management (FSM) and foster your digital transformation from cost center to profit center.

Configuration of the Maintenance & Field Service Management (FSM) template

There are a few things you will need to start exploring the Maintenance & Field Service Management (FSM) template.

  • Mx Studio Pro (version can be found on marketplace page for Maintenance & Field Service Management (FSM) template)
  • In order to run this project locally, Mendix Studio Pro is needed. The latest versions can be downloaded from the Marketplace.
  • MakeItNative9 App on a device or simulator
  • In order to run this app on a mobile device or a simulator (e.g. Android Studio) the MakeItNative9 app should be downloaded from the App store or Google play store.
  • Technical & functional app settings
  • In the Maintenance & Field Service Management (FSM) template we provide a snapshot of realistic data that will be available when running the app locally using the default build-in database. This has been done so that, after downloading the template, one can start exploring the app’s many functionalities right away. However, when you are starting the app with an empty database, there are several app settings to be done. Log in as a technical or functional administrator to be able to adjust these settings. Think of:
  • - Assets for which tickets can be created
  • - Technicians that need to be linked to accounts to be able to log into the native app.
  • - Rosters for technicians to be able to plan appointments in their time schedule.
  • - Etc.

  • Necessary configurations when using an empty database
  • Consider removing the ASU_Snapshot_Shift microflow from ASU_General in the code, because this will shift your appointments forward in time (for demo purposes).
  • As a technical admin set the default ticket type. This should be done on the application settings page.
  • Configure the optional licensed scheduler
  • In the former FSM ‘adaptive solution’ a big part of the core functionality of the field service scheduling use case was the Mendix scheduler widget. In order to keep using this widget, a license is needed. We do highly recommend using this widget as it is exceedingly useful to visualize the work order planning. Alternatively, the scheduler can be disabled via the Feature Toggle overview.
  • There is a readme document added to the ‘Scheduler’ module of the project explaining how to implement the scheduler widget.

Core domain model entities

The domain model of Maintenance & Field Service Management is quite big so this part only discusses the entities of core functionality within the app.

  • Ticket
  • On the ticket objects you store information about the problem or issue the asset encounters. This includes which asset type and number, who reported the issue, how the feedback should be provided, etc.
  • Example: I can't drive the car anymore because of a flat tire.

  • Work order
  • A work order describes the work that must be done to get the problem (the ticket) resolved. One ticket could have multiple work orders. A work order can be executed by one or more people. The work order records who is doing the work, how long the expected work will take, which skills are required, etc.
  • Example: Replace the flat tire with a new one. This should take 15 minutes.

  • Appointment
  • The appointment is the time at which the work order will be performed or has been performed. A work order can have one or more appointments. On the appointment it is recorded what the (planned) start travel time, start work time and end time are. In addition, the time sheets (for the customer invoice) are linked to the appointment so that it can be signed by the customer.
  • Example: On Friday, December 13, 2022 from 10:00 AM to 10:15 AM, I will execute the work order.

  • Shadow model - native entities and offline actions
  • The native modules form a “shadow” version of the TicketManagement Module (and others) and contain the entities (ticket, workorder, etc) that are covered by the native app. These are used to technically support offline work properly. When back online, during the synchronization processes, the data changed on the native entities is synchronized to the TicketManagement entities and the changes are visible in the web app for all users. 

  • When data is changed, added or removed on a native device, a specific way of implementation should be followed. Since an offline first approach is being used for this app, it means that several people can make changes to the same data at the same time while being offline. Since we don’t want this data to be lost in case this happens, we have introduced offline action entities. These objects save what a user is trying to do and on which object, and optionally what the new values of the object should be. When the user comes online the offline actions are uploaded to the server, validated and processed. In case the object for which an offline action was created does not exist anymore, the offline action will be flagged so it can be reviewed by an administrator.


The user switcher is available once you're logged in. Please login first as MxAdmin. Then, use the user switcher to log in as Functional Admin to change the passwords for the demo users, if desired.

  • Technical Admin 
  • Manages Functional Admins. Can modify masterdata in the demo kit. 
  • Available account: demoUser_TechnicalAdministrator
  • Generic Password: n/a (use the demo user switcher widget)

  • Functional Admin  
  • Can manage Technicans and their accounts. 
  • Available account: demoUser_FunctionalAdministrator 
  • Generic Password: n/a (use the demo user switcher widget)

  • Service Desk Employee 
  • Creates and manages tickets and planning. Can assign and (re)schedule workorders. 
  • Available account: demoUser_ServiceDeskEmployee 
  • Generic Password: n/a (use the demo user switcher widget)

  • Call Center Employee
  • Creates malfunction tickets (When called about a malfunction by a client)
  • Available account: demoUser_CallCenterEmployee
  • Generic Password: n/a (use the demo user switcher widget)

  • Service Region Manager
  • Can create and plan tickets/workorders/appointments and view information about assets, technicians, customers, etc. Service region managers can also be assigned to be the manager of technician groups.
  • Available account: demoUser_ServiceRegionManager
  • Generic Password: n/a (use the demo user switcher widget)

  • Technician 
  • Executes workorder on the mobile app. 
  • Available accounts: j.frye, m.stephenson, j.macdougall, t.torres
  • Generic Password: Password!

History of Maintenance & Field Service Management (FSM)

It all started with the goal to create an offline first app for field service management. We created as a so called ‘adaptive solution’ and tested this concept with a collection of customers. As such the former FSM was the proof of concept that such software is viable using the Mendix platform. With the new Maintenance & Field Service Management (FSM) template every Mendix user can benefit from these industry proven functionalities.

Because of the history of Maintenance & Field Service Management (FSM) there are a few details that might be different from what you are used to conventionally. The main difference is the security setup that Maintenance & Field Service Management (FSM) provides out of the box. In the Maintenance & Field Service Management (FSM) template the project roles (ServiceDeskEmployee, TechnicalAdministrator, etc) are assigned permissions (Module roles like ‘EditAll’, ‘ViewMy’ and ‘_AddOn_SelectForms’). If you whish to have a better understanding of the reason why such an approach was taken, you can view the following learning path: Mendix.


Version: 1.1.1
Framework Version: 9.24.2
Release Notes: - updated data snapshot
Version: 1.1.0
Framework Version: 9.24.2
Release Notes: General • Updated Mendix SSO module to version 4.1.0 • Updated dashboard for ServiceDeskEmployee • Implemented third party scheduler widget (can be switched on/off) • Introduced recurring workorders • Introduced multiple skills per workorder • Deleted all outdated userlibs
Version: 1.0.0
Framework Version: 9.18.1
Release Notes: First version of FSM template