Custom workshop software development for heavy equipment
A workshop that repairs trucks, trailers, earthmoving equipment, agricultural machinery or forklifts for customers doesn't produce a product, it produces decisions: what is wrong, what is to be done, who approves it and what goes on the invoice. Maintenance packages assume your own equipment and don't have that approval step. Appfront builds software where the work order is the core, with additional work, parts, warranty claims and inspections built around it.
Work for customers is different from maintaining your own equipment
Maintenance software is built around ownership. You manage your own machines, schedule preventive maintenance and steer on availability and costs. Nobody needs to give permission, because you are both owner and client. If that describes your situation, then building maintenance software is what you're looking for.
A workshop that works for third parties has an extra layer: an order with an agreed scope, a customer who approves or declines, an invoice, and liability for work on someone else's equipment. Every action by the mechanic is therefore both a technical record and a commercial line item. If you mainly repair cars and vans, garage management software is a better fit.
Within that customer base, two types of relationship run side by side. The one-off customer comes in with a fault, wants to know what it will cost and pays on collection. The fleet customer works under a framework agreement: agreed rates per task, discounts on parts, a fleet manager who signs on behalf of several branches, and often the requirement that every job carries a purchase order number. If that number is missing, the invoice stays unpaid, however good the repair was. Software that only knows one-off customers forces your admin team to apply those agreements by hand, and that is where errors creep in.
The second difference lies in where the history is recorded. It seems logical to attach the history to the customer, since they pay the bill. For heavy equipment, that is the wrong anchor. A tractor changes hands, a trailer is resold, and the question that matters then is not who paid for it but what has been done to this particular unit. If the history hangs off the billing address, the record is broken after a sale. If it hangs off the chassis or serial number, it stays complete.
The customer must say yes
Without recorded approval, additional work is not revenue but an argument after the fact. Approval should be a process step, not a note.
The equipment isn't yours
The history belongs to the machine, not to your accounts. When the unit is sold, the record moves with it.
Everything you touch is a line item
Labour, parts, call-out and environmental charges belong on the same work order. What isn't on it doesn't appear on the invoice.
The work order is the core, from report to invoice
It rarely starts neatly. A driver calls from the roadside, a fleet manager emails a list, a contractor sends a photo of a leak. The system's first job is to tie that report to an asset: registration, chassis or serial number, with the odometer reading alongside it. Without that anchor, the repair ends up in a customer record instead of the machine's history, and it becomes impossible to trace later what happened to this particular unit.
A few questions at intake shape everything that follows. Who is reporting, and are they authorised to place an order? Where is the vehicle: on your premises, at the customer's site or by the roadside? Is it still driveable, or does it need transport? Does this fall under an existing contract, under warranty, or under neither? If those answers stay on the phone, the planner has to work them out again before anything can be scheduled. An intake screen that makes these fields mandatory saves the rest of the chain from a series of follow-up calls.
Next comes diagnosis, and two things should be kept separate: what the customer reported and what the technician found. The customer says the machine is vibrating; the technician reads a fault code and finds a worn bearing. That separation between complaint, cause and work performed is not academic. Manufacturers ask for it explicitly on warranty claims, and it is the only way to see which faults keep coming back.
That diagnosis also generates a pile of data that comes from nowhere else. Diagnostic software differs by make and produces fault codes in its own structure. The technician measures play, pressure or wear and records values on which a later judgement rests. He photographs the finding, because a cracked bracket in a photo carries more weight than three lines of text. If those findings end up in loose folders and messaging apps, they still exist, but not when someone needs them. If they hang off the work order line, they travel with it to the approval, the invoice and any claim that follows.
Then comes approval, execution and invoicing. These streams overlap: part falls under manufacturer warranty, part under a maintenance contract, part is for the customer's account. A system with only one invoice destination per work order forces your administration to split things by hand.
The additional work moment
The technician is under a trailer preparing it for inspection and sees that the brake discs are worn. That was not in the order. Carrying on without approval creates a line the customer can refuse; waiting leaves the lift occupied and a technician standing idle. Usually it is settled with a phone call that nobody records, and the argument then moves to the invoice. What the software needs to do here is small and concrete: the technician creates an additional work line with a photo, a description and the expected hours and parts; the customer approves or declines it; and the system records who gave approval and when. Only then does the line flow through to scheduling and invoicing.
The difficulty lies in the waiting. The customer is in a meeting, the fleet manager is on leave, the owner wants to come and look for themselves first. Meanwhile the vehicle sits on a lift you needed that day. A system that takes additional work seriously therefore gives the work order a waiting status that is visible in the schedule, so the workshop planner can see that this bay is not moving. Many businesses also agree with regular customers that the technician may carry on with minor findings as long as they are recorded. Such an agreement belongs in the system, per customer or per contract, not in the head of the workshop supervisor.
What the customer sees during the repair
Customer communication is not a side issue in repair work; it is where you can set yourself apart. The customer is not standing next to the lift. He only knows that his machine is with you and that he cannot use it. Every hour without an update, he fills in the gaps himself, usually unfavourably, and at some point he rings. That call takes time from your front desk and rarely gives him more than a status the system already knows.
The approach that works is simple. When the technician finds a fault, he takes a photo with a brief note; that goes to the customer as a proposal. The customer approves or declines digitally, and his name, the time and the exact lines he signed off are recorded. In addition, he sees a status for each vehicle that updates as work progresses: received, in diagnosis, awaiting your approval, awaiting a part, in progress, ready. This is the same information your planning board already tracks, just made visible outside. For a fleet manager with vehicles at several workshops, that is the difference between phoning and checking.
Two things deserve attention here. The first is access: a manager sees all vehicles belonging to his company, a driver sees only his own, and a machine that has been sold disappears from the previous owner's view. The second is that the status is tied to a real event, such as the goods-receipt booking for the part, rather than to a field someone has to update by hand.
The invoice that falls apart
At the end of a repair on heavy equipment, there is rarely a single invoice with one recipient. Some of the work falls under manufacturer warranty and goes to the importer. Some falls under a maintenance or repair contract and is charged according to the framework agreement. Some is damage and goes through an insurer, sometimes with an assessment firm in between and an excess that stays with the customer. And some is simply for the customer themselves. That split only becomes clear while the work is under way, because when the technician opens the order he does not yet know what cause he will find.
That places a firm requirement on the data model: the recipient belongs to the line, not to the order. Every labour line and every parts line carries its own recipient, so a work order can be split across several documents without double entry. If a claim is later rejected, that line must be able to switch recipient, with a record of who decided it. For insurance work, the supporting evidence attaches to those same lines: photographs of the damage, the damage claim form and the expert's report.
Lifts, pits and technicians who are not interchangeable
A heavy equipment workshop schedules two scarce things at once, and most systems only recognise one. The first is the place. A four-post lift for a tractor, a pit where you can stand under a semi-trailer, a bay high enough for an extended crane boom: these are not interchangeable slots. A repair that needs a pit cannot be done on the lift just because there happens to be space there. The second is the person: the technician who knows the drivetrain of this make, the electrician who reads out a crane's control system, the certified inspector.
As long as the planning is a list of names and days, it works well enough while the workshop foreman is there. He knows which bay suits which job and who can do what. If he leaves, or the business grows into a second site, it turns out that this knowledge is recorded nowhere. The answer is not a complicated algorithm but recording attributes: for each workspace what it can accommodate, for each technician which qualifications and makes they hold, for each operation what it requires. After that, the system only needs to refuse what cannot be done. That is more useful than automatic scheduling, because the planner knows the exceptions better than any model does.
The vehicle that stands waiting
The most expensive situation on your site is a vehicle occupying a bay while no work is being done on it. Usually it is waiting for customer approval, for an ordered part, or for a technician who is only available tomorrow. All three are known in the system, yet nobody sees them together: the planner looks at his board, the stores manager at his orders, the front desk at the open approvals.
What solves this is a work order that carries its own waiting queues and passes that reason on to planning. An order waiting for a part should become schedulable again automatically the moment the goods receipt is booked, rather than only when someone happens to walk past the stores. An order waiting for approval should release the bay. And for a vehicle that stays on site for a long time, someone should be prompted to ask whether it would be better to wait outside until the part arrives. This is not software that takes over the work; it is software that makes visible what currently goes wrong unseen.
Managing by turnaround time, first-time fix and utilisation
Once the work order knows these statuses, a management tool comes almost for free. Turnaround time becomes measurable as the difference between arrival and completion, split into the time actually spent working and the time the vehicle spent waiting. That distinction is the whole point: a customer experiences the waiting time, while your costing only looks at the hours worked. Seeing both side by side shows whether your problem is capacity or logistics, and those are two very different investments.
First-time fix is the second measure: how many jobs are completed in one visit, without the vehicle having to come back or the technician having to travel out a second time. In field service that is the most expensive form of rework, because you pay for the journey twice and the customer notices. The cause is almost always a missing part or an incomplete diagnosis beforehand, and both become visible as soon as the work order records why a visit was not completed. The third is utilisation. Here too the figure is worth less than the breakdown beneath it, because waiting for parts calls for a different response than having too little work.
- Workstations with attributes, not interchangeable boxes
- Qualifications, makes and certificates recorded per technician
- Waiting queues on the work order: approval, part or capacity
- Order schedulable again as soon as the goods receipt is booked
- Turnaround time split into worked time and waiting time
- First-time fix with the reason a visit did not succeed
- Utilisation per workstation alongside utilisation per technician
What workshop software for heavy equipment needs to do
These components are connected: a work order without an approval step leads to disputes, parts registration without an object file makes a warranty claim impossible to prove, and a schedule without waiting queues hides exactly the hours you are losing.
Complaint, cause and repair
What the customer reported, what the technician found and what he did, recorded separately and invoiced or claimed per line. Fault codes, measurement readings and photos are attached to the line they belong to.
Additional work with recorded approval
An additional line with photo and explanation, which only flows into scheduling and invoicing once the customer has approved it digitally. Who signed and when is recorded.
Object file per machine
Chassis or serial numbers, odometer readings, repairs, fitted parts and inspections, permanently tied to the asset rather than the billing address, so the record survives a sale.
Stock in the van and in the workshop
Each service van as its own location, with issue against the work order line, replenishment from the stores, and a reservation on the order for which parts have been ordered.
Warranty claims per make
Claims built from the work order, using the manufacturer's required make-specific fields, and tracked until the credit note is received or the rejection is explained.
Inspections and certificates
Keep track of deadlines, store the supporting documents with the asset, and show them the moment an inspector asks, without anyone having to search for a folder.
Parts, the service van and the engineer without signal
Your stock sits in more places than the warehouse. Every service van is its own location, stocked with filters, hoses, oil and wear parts. The technician picks up a filter set on the way, fits it and drives on. If that issue isn't linked to a work order line, the part never reaches the invoice, the van isn't restocked and the count stops adding up. Scanning from the van, linked to the open order, is therefore the foundation.
That sounds obvious and isn't, because the van is a workplace where scanning competes with dirty hands, rain and time pressure. A solution that only works on paper won't be used. What does work: a short list of what should be in this van, issuing in two taps on the phone, and restocking that starts on its own as soon as stock drops below the agreed level. Stocktaking then becomes a check rather than a reconstruction.
The parts flow also has its own quirks. There are special-order parts that are reserved for a particular work order and aren't freely available, even though they're on the shelf. There are exchange and reconditioned units, where the old part must come back before the credit is settled, so they need their own status and location. There are part numbers that fit several machines but differ by build year, with all the risk of ordering the wrong part. More on this at spare parts software.
When the part isn't there
The interesting moment isn't the issue but the absence. The part isn't in the van and isn't in the warehouse, and there are four routes: it's with a colleague in another van, it's at the other branch, it can come from the importer, or it takes longer and the machine has to do something in the meantime. Whoever doesn't have those routes in view picks the most expensive one: ordering and waiting.
Software helps by making stock visible across all locations at once, vans included, and by linking the order to the work order rather than a standalone purchase document. That way everyone knows why this job is on hold and when it can continue. Just as important is what happens to the vehicle while it waits. If it's set aside, someone needs to record that it's been taken apart and which loose parts belong with it. Right now that information lives in a technician's head and disappears the moment they take a week off.
Integrating with manufacturer and supplier catalogues
A workshop for heavy equipment rarely works with a handful of suppliers. There's the importer with its own catalogue and part numbers, there are universal suppliers for filters, brake parts and lighting, and there are specialists for hydraulics or electrics. Each party provides availability and replacement numbers in its own format, from a neatly structured file to a portal where someone searches by hand.
The value of an integration lies less in ordering than in looking up. A technician who opens the correct catalogue for this chassis number straight from the work order is less likely to pick the wrong number than someone working from memory or an old invoice. Replacement numbers are only useful if they arrive automatically; hand-maintained lists fall behind. If you build it yourself, the question of how to handle varying integrations needs to be settled early, because every supplier will change its format sooner or later.
Working without signal
Then there's the engineer working out in the field. On a building site behind a dyke or at a contractor's yard out in the polder, the signal drops out. An app that sends every action straight to the server grinds to a halt, and the engineer falls back on paper that gets retyped later. If the app works locally, they can complete the work order, take photos, log hours and parts and get the customer to sign, then everything syncs once connectivity returns. The tricky part is what happens next if the planner has changed the same order in the meantime. See also building a field service app.
Working offline is therefore not a switch you flip on, but a decision that affects the entire architecture of the app. The data the technician needs has to be on the device beforehand: his orders for today, the related asset records, and the stock on his own van. And when syncing, there needs to be a rule everyone understands: hours and parts the technician logged win, because he was there, while changes to scheduling and customer details come from the office. Anything outside that should land on a list someone reviews, rather than quietly disappearing.
- Every service van as its own stock location with its own minimum stock level
- Issue always against a work order line, in two steps
- Stock across all locations and vans in a single search
- Ordered parts reserved against the order they are for
- Returns flow and status for exchange and refurbished units
- Catalogue and replacement numbers taken from the source, not entered by hand
- Work orders, photos, hours and parts work offline
- An explainable rule for conflicts during synchronisation
Test your idea first: a working prototype in 1 day
With OneDayBuild, we turn your idea into something tangible in one day for €1,150, so you can see whether further development is worth the investment. Decide to go ahead with the full build? Then we credit the full cost.
Explore OneDayBuild →Warranty claims and inspections, and why they are so laborious
A warranty claim is not a copy of the work order but a second administration of the same repair. Each manufacturer runs its own portal, its own coding for cause and action, its own requirements for photos and downloaded data, its own filing deadline, and sometimes the obligation to keep the faulty part. The technician writes in his own words what he did, and someone in the office then translates that afterwards into the codes the brand expects. That is where claims fail: on a missing photo, a wrong cause code, or a deadline that has just passed. Until then, the costs are yours to bear.
Software removes that manual work by asking for the brand-specific fields during the repair itself. If the system recognises that the asset is under warranty, it immediately shows the correct drop-down lists and mandatory photos, and blocks sign-off until those are present. From then on, the claim is a status you track until it is credited.
There is a second layer underneath. A claim is not finished when it is submitted, but when it has been settled, and until that happens the work sits in your books as something you still have to receive. A claims overview showing, per brand, what is open, approved or rejected is therefore not a report for later but day-to-day management. A rejection should keep its reason in a usable form: missing photo, wrong coding, outside the deadline, or not substantively accepted. After a while you can see which share of rejections lies in your own process and which share in a manufacturer's policy.
The customer's side needs to be visible too. If warranty work runs into chargeable work, the customer receives an invoice for something he thought was covered, and that conversation costs more than the line is worth. A system that shows per line who the recipient is lets you explain this beforehand rather than defend it afterwards.
Legally mandatory inspections and the file
Inspections call for something different: a file build-up that will pass an audit. For motor vehicles and trailers over 3,500 kg, an inspection certificate under the Vehicles Decree is valid for one year, and that obligation only starts one year after first registration. Under the Vehicles Regulation, the tachograph plate may be valid for a maximum of 24 months. For work equipment such as vehicle lifts, cranes and forklift trucks, the Working Conditions Decree applies: Article 7.4a requires that inspections are carried out by a competent person and that the written evidence is kept at the workplace and shown to the inspector on request, while Article 7.20 requires that lifting and hoisting equipment is examined at least once a year. Attach the deadline, the inspector and the certificate to the asset, and it can be shown without anyone having to search through a binder.
The practical side of this is planning. An inspection is an appointment with a final deadline, and a customer who brings their vehicle in too late has a problem you could have seen coming. If your system records the next due date for each asset, inspection work becomes predictable, and you can use it to fill quieter periods. The same applies to your own vehicle lift, crane and lifting gear, which should appear in the same overview.
The history belongs to the machine, not the invoice
Everything above comes together in a file per asset. With heavy plant, that is worth more than elsewhere, because the machines last a long time, change hands and need more work as they age. An excavator with a complete, traceable file is a different proposition from the same machine with no paperwork, and that difference counts when your customer sells it.
Technically the requirement is simple and easy to break: repairs, fitted parts, odometer readings, inspections, claims and photos are all tied to the chassis or serial number, while the owner changes over time. On sale, the file moves with the machine, while the previous owner keeps their invoices but no longer has access to the technical history. That choice is hard to fix afterwards, because you will have spent years attaching data to the wrong axle.
This set-up also reveals patterns. Which fault tends to occur on this type after a certain odometer reading, and which parts you consistently replace on machines of the same build year. That is the basis for targeted maintenance advice, and therefore for work you can plan yourself.
When an off-the-shelf package is the better choice
The workshop is not a blind spot in the software market. There are mature packages for truck dealers, equipment companies and agricultural machinery, with work orders, hours, parts and invoicing in proven form. If you work as a brand dealer, part of your chain may already be fixed because the importer prescribes how claims are handled. So for some readers, a package is the wiser route, and we would rather say so now than halfway through a quote process.
If your process follows the usual pattern of report, work order, hours, parts and invoice, you buy that off the shelf, including maintenance and adjustment to changing regulations. Your effort shifts from building to setting up.
Custom development pays off in fewer situations than providers suggest. The strongest reason is a chain that no single package covers as a whole: workshop, field service and hire of the same equipment, where a machine is rented out today and on the lift tomorrow. The second is an approval flow that works differently, with framework contracts, mandatory purchase order numbers or a fleet manager signing on behalf of several branches. The third is a package that does not recognise the service van as a stock location.
The downside comes with it: if you build your own, keeping up with changing regulations and brand portals is down to your own organisation. Often the middle route is the best answer: a package as the core, with custom software for the field service. If your focus is on tractors and implements, see agricultural machinery software.
If it's about an agricultural fleet with fault reports from the cab, have a look at our app for agricultural machinery asset management.
If it's about the cubic metres the machines move and how those are invoiced, have a look at our app for volume measurement in earthworks.
If you're a bodybuilder or upfitter and a chassis too often waits on a drawing, have a look at our app for commercial vehicle body build orders.
- A package if your process follows the usual workshop pattern
- A package if the importer already prescribes the claim route
- Custom software for workshop, field service and rental in one chain
- Custom software when van stock or a variation agreement is missing
- A middle route: a package as the core, custom software for field service
Frequently asked questions about workshop software
Maintenance software is built around ownership: you plan maintenance on your own machines and steer on availability and costs. Working for third parties adds a commercial layer: an order with an agreed scope, a customer who has to give approval, an invoice and liability for work on someone else's equipment. That approval step is missing from most maintenance packages.
By making the approval part of the work order rather than a loose phone call. The mechanic creates an additional-works line with a photo, a short description and the expected hours and parts. The customer approves or rejects it. The system records who approved it and when, carries the line onto the invoice, and shows the status to planning and the mechanic.
This is a design decision you make upfront. An app that sends every action straight to the server stops working as soon as signal disappears in a hall, a basement or out in the field. If the app works locally, the technician completes the work order, takes photos, logs hours and parts and gets the customer's signature, then everything syncs when a connection is available. The difficulty lies in handling conflicts if the planner has changed the same order in the meantime.
Because the claim needs different data from the work order. Every brand has its own portal, its own coding for cause and operation, its own requirements for photos and read-out data, its own filing deadline and sometimes an obligation to keep the faulty part. The mechanic writes in their own words, so someone has to translate that afterwards. A system that asks for those brand fields during the repair removes that manual work.
By attaching the deadline and the proof document to the asset rather than to a calendar. For motor vehicles and trailers over 3,500 kg, an inspection certificate under the Besluit voertuigen is valid for one year; the tachograph installation plate may, under the Regeling voertuigen, be valid for a maximum of 24 months. For work equipment, the Arbeidsomstandighedenbesluit requires that inspection records be present at the workplace and shown to the inspector on request.
The source code and documentation belong to the client and sit in a repository to which you have access yourself. On handover, a description of the architecture, the data models, the integrations and the deployment is included, so another party can take over without first having to reverse-engineer anything. We work with mainstream technology, because that determines how many parties can take on the maintenance.
Related services
Spare parts software
If the question is mainly about parts, stock models and linking part numbers to machines: getting service parts software built.
Equipment and forklift rental
If you also rent out the equipment, contracts and availability come into play: equipment and forklift rental software.
Field service app
If the focus is on mechanics on site, with work orders and signatures on the phone, then a field service app is the direct entry point.
Take a closer look at your workshop process
Tell us how a report reaches you, what happens when the engineer finds something that wasn't in the order, and how a warranty claim gets sent off. Those three answers usually show whether a package, custom work or a combination fits.