Why Engineering & Field-Service Companies Bleed Margin on WhatsApp Dispatch
If your business installs, maintains, or repairs physical infrastructure—whether fiber-optic ISP connections, commercial solar & backup generators, hospital diagnostic machines, elevators, HVAC chillers, cold-room refrigeration, or industrial machinery—your profitability depends on three operational metrics: First-Time Fix Rate, SLA Response Compliance, and Spare-Parts Accountability. Yet most field-service operations coordinate 20 to 200+ technicians using chaotic WhatsApp groups and paper job cards.
Without a structured Field Service Management (FSM) and Computerized Maintenance Management System (CMMS), dispatchers have no visibility into which technician is closest to an urgent breakdown, preventative maintenance (PM) visits are forgotten until a client's generator fails during a power outage, expensive spare parts issued to technician vans vanish without being billed to any customer invoice, and field staff submit job cards claiming they visited a site they never actually reached. At devManue Field Operations Engineering, we build custom FSM & CMMS platforms that unify asset QR histories, automated Preventive Maintenance scheduling, GPS-fenced technician job apps, and van spare-parts ledgers.
1. Core Field Service (FSM) & Equipment Maintenance (CMMS) Modules & Build Costs
Unlike bloated Western FSM platforms that charge $65–$120 per technician per month, a custom devManue FSM/CMMS gives you unlimited technician accounts, customer SLA portals, and native integration with your inventory and billing ERP:
| FSM / CMMS Module | Engineering & Field Operational Deliverables | Timeline | Estimated Cost (USD / KES) |
|---|---|---|---|
| 1. Asset Registry, QR Tagging & SLA Contracts | Serial-numbered customer equipment registry, QR asset stickers, warranty/AMC contract tracking, 2hr/4hr/24hr SLA countdown timers. | 2 Weeks | $2,300 / KES 300,000 |
| 2. Smart Dispatch Board & Preventative Maintenance (PM) | Skill- and proximity-based technician assignment, calendar/run-hour PM auto-ticket generation, live SLA escalation alerts. | 2 Weeks | $2,500 / KES 325,000 |
| 3. Geofenced Technician Mobile App & Digital Job Cards | Offline-first mobile checklists, GPS geofence check-in/out, mandatory before/after photos, customer glass-signature & OTP sign-off. | 2.5 Weeks | $3,000 / KES 390,000 |
| 4. Van Spare-Parts Ledger & Instant SLA Billing | Per-van mobile warehouse stock tracking, warranty vs. billable part rules, instant PDF job report + eTIMS/M-Pesa invoice on sign-off. | 1.5 Weeks | $1,900 / KES 245,000 |
2. Enforcing Geofenced Site Check-Ins and Van Spare-Parts Accountability
Every piece of customer equipment under an Annual Maintenance Contract (AMC) receives a weatherproof QR asset tag. To start a Preventive Maintenance or breakdown job card, the technician must scan the physical QR tag on the machine while their phone's GPS coordinates are within 150 meters of the registered site address. This single engineering guard completely eliminates "ghost visits" where a technician claims to have serviced 10 sites from a café.
Equally important, every service van or technician kit bag is modeled in PostgreSQL as a mobile sub-warehouse. When a technician replaces a contactor, filter, or optical network terminal (ONT) during a repair, scanning the part consumes it from their van inventory and automatically checks the customer's contract terms: if the asset is under a Comprehensive AMC, the part cost is posted to internal contract COGS; if it is a Time-and-Materials or Parts-Excluded contract, the system automatically generates a customer invoice before closing the ticket:
# Production Field-Service Geofence Verification & Van Spare-Parts Consumption Engine
from decimal import Decimal
import math
from django.db import transaction
from django.core.exceptions import PermissionDenied
from django.utils import timezone
from .models import WorkOrderTicket, VanInventoryBin, SparePartUsageLog
def haversine_distance_meters(lat1: float, lon1: float, lat2: float, lon2: float) -> float:
"""Computes great-circle distance in meters between technician GPS and customer site."""
r = 6371000.0
phi1, phi2 = math.radians(lat1), math.radians(lat2)
dphi = math.radians(lat2 - lat1)
dlambda = math.radians(lon2 - lon1)
a = math.sin(dphi / 2) ** 2 + math.cos(phi1) * math.cos(phi2) * math.sin(dlambda / 2) ** 2
return 2 * r * math.atan2(math.sqrt(a), math.sqrt(1 - a))
@transaction.atomic
def complete_work_order_and_consume_parts(
ticket_id: int, tech_lat: float, tech_lon: float, parts_used: list[dict], customer_otp: str
) -> dict:
"""Verifies on-site geofence presence, deducts van stock, and calculates billable charges."""
ticket = WorkOrderTicket.objects.select_for_update().select_related("asset__site", "sla_contract").get(id=ticket_id)
site = ticket.asset.site
dist_m = haversine_distance_meters(tech_lat, tech_lon, float(site.latitude), float(site.longitude))
if dist_m > 200.0:
raise PermissionDenied(f"Geofence check failed: You are {dist_m:.0f}m away from the customer site.")
if ticket.completion_otp != customer_otp.strip():
raise PermissionDenied("Invalid customer completion sign-off OTP.")
billable_parts_total = Decimal("0.00")
for item in parts_used:
van_bin = VanInventoryBin.objects.select_for_update().get(
technician_id=ticket.assigned_technician_id, part_sku=item["sku"]
)
qty = Decimal(str(item["qty"]))
if van_bin.quantity_on_hand < qty:
raise PermissionDenied(f"Insufficient van stock for SKU {item['sku']}")
van_bin.quantity_on_hand -= qty
van_bin.save(update_fields=["quantity_on_hand", "updated_at"])
is_covered = ticket.sla_contract and ticket.sla_contract.covers_spare_parts
line_charge = Decimal("0.00") if is_covered else (qty * van_bin.retail_unit_price)
billable_parts_total += line_charge
SparePartUsageLog.objects.create(
ticket=ticket, part_sku=item["sku"], quantity=qty, billable_amount=line_charge
)
ticket.status = "COMPLETED_VERIFIED"
ticket.completed_at = timezone.now()
ticket.billable_parts_amount = billable_parts_total
ticket.save(update_fields=["status", "completed_at", "billable_parts_amount"])
return {"ticket_id": ticket.id, "billable_parts_total": str(billable_parts_total)}
3. Client Self-Service Portals That Win Corporate Maintenance Contracts
When bidding for maintenance tenders with banks, hospitals, supermarket chains, or telecom towers, enterprise procurement teams award contracts to vendors who can prove transparent SLA compliance. Our platform includes a branded Corporate Client Asset Portal where your clients' facilities managers can scan an equipment QR code to log a fault in 10 seconds, watch live technician ETA, download historical maintenance certificates, and view real-time uptime and Mean Time to Repair (MTTR) metrics across all their branches.
Ready to eliminate spare-parts shrinkage and SLA penalties? Model your cloud vs. bare-metal hosting savings with our Cloud & SaaS ROI Calculator or book a Field Service Architecture Discovery Call.
4. Frequently Asked Questions (FAQ)
Can preventative maintenance tickets be triggered by equipment run-hours or IoT telemetry instead of calendar dates?
Yes. Whether your generators, vehicles, or industrial machines report engine run-hours via telemetry APIs or via operator meter-reading uploads, the CMMS automatically generates a service work order and reserves the required filter/oil kit in the warehouse the moment an asset approaches its 250-hour or 500-hour service interval.
Does the technician app work inside basement plant rooms with zero cellular signal?
Yes. All assigned work orders, equipment wiring diagrams, safety checklists, and photo attachments are cached locally in the offline-first mobile app and sync automatically as soon as the engineer returns to ground level.
How do you prevent technicians from uploading old gallery photos as "proof" of maintenance?
The mobile inspection form restricts photo capture strictly to the live device camera stream (blocking gallery uploads) and embeds a cryptographic timestamp, GPS coordinate, and asset ID watermark directly onto each inspection image.
For related production architectures and system implementations, explore these companion guides:
- Agribusiness, Outgrower & Commodity Supply Chain Software — See how offline-first mobile apps and GPS geofencing enforce field accountability in remote operations.
- Subscription Billing, Usage-Based Metering & Revenue Recognition — Combine recurring Annual Maintenance Contracts (AMCs) with automated spare-parts and SLA billing.
- Custom Logistics, Fleet & Last-Mile Delivery Management Software — Pair technician dispatch routing with real-time service van GPS telemetry and fuel tracking.
- Architecture Reviews, Audits & Custom Software Delivery — Explore our production engineering deliverables, or benchmark your stack with the interactive Cloud ROI: AWS vs. Bare-Metal Calculator.