Skip to content

Custom development

Five to six systems every morning, and a flow that logged nothing

Field crews were opening five or six systems before starting work, and a logging flow was telling them it had saved data when it had saved nothing.

Built for
SMT Research, Vancouver
Service line
Custom development
Window
Jun to Sep 2026
The headline number5 to 6Systems a field technician checked each morningThe recorded before state. No after count was measured, so we do not publish one.

01Key numbers

What we measured

42Active orders with zero work orders behind the logging flowEvery one of them returned an empty list to the field user and then a success message.
30+Of assets leaving site with no removal trackingEstimateHours spent converting one hand-drawn site map. Nothing tracked asset removal, so there was no register to count against.
30+ hrsTo convert one hand-drawn site map to a digital mapMeasured on the existing manual process before any change.
17Field users covered by the sign-in symptom matrixBuilt from login history, verification history and the setup audit trail over 30 days.

02The situation

What was true before

Field technicians checked five to six different systems every morning to find out where they were going and what they were doing.

Assets left site with no removal tracking at all. Converting a hand-drawn map to a digital one took more than thirty hours. 82% of orders were not fully estimated.

Contact us to find out more

Recognise this in your own org?

03What we built

The mechanism

One board pattern, proven once and then applied seven times, plus the mobile paths the desktop build had quietly broken.

One kanban pattern, seven surfaces

The same board family covers task, work order, purchase order, order, dispatch, production and development work, including a real Gantt view. A new board is a configuration of a proven pattern rather than a new build with new bugs.

A separate hours flow for mobile, because the desktop one cannot render

The desktop flow uses a table component that does not render in the mobile app at all. Rather than degrade the desktop experience, there is a mobile-safe path. If it does not work on the phone, it is not done.

A docket scheduler with in-cell typing

Crew staffing had lived in a spreadsheet, so the replacement had to behave like one. The scheduler supports Excel-style typing directly into cells rather than a record page per assignment.

Training captured as the field user, not as an admin

In-org training is served from a static resource and was recorded by logging in as an actual field user. An admin walkthrough shows a screen the field crew will never see.

Sales and Forecasting
Order00005967 — Riverside Tower, Level 3
ActivatedChange requests 2
Order detailsEdit
AccountNorthern Envelope Ltd
ProjectRiverside Tower
Order statusIn progress
Work orders14 of 18 closed
Progress basisInstalled, not invoiced
Tax treatmentGST / PST (12%)
Billing windowQ3 2026
Order end date14 Sep 2026

Contract value excludes tax. Amounts are as entered, in mixed currencies, and are not converted.

Work orders
Level 3 installComplete
Level 3 verificationComplete
Sensor commissioningScheduled
Open tasks
3 open, oldest 11 days
Depiction · An order record page carrying 135 custom fields, organised into tabs so the people who use it daily see their own work first.Contract value states its own basis. It excludes tax, and mixes two currencies as entered rather than converting them, so the tile says so instead of implying a single-currency total.

Surfaces built

We will demonstrate any of these live, on the real org,.

  • My Day home screen for a field technicianImage withheld
  • Dispatch board with the Gantt viewImage withheld
  • Mobile hours entry with back-datingImage withheld
The finding

The time-logging flow said "successfully logged" while logging nothing.

The activity flow listed an order’s work orders and looped over them. 42 active orders had zero work orders. Field staff saw "0 of 0 items", pressed Next, and were shown a success screen. An empty selection looped zero times straight into a confirmation. It is fixed with a stop screen, a minimum row selection, and back-dating so missed days can be self-logged.

04Outcome

What changed, verified

The morning routine moved onto one board family, and the sign-in problems behind it were diagnosed rather than guessed at.

  • A symptom-to-cause matrix for 17 field users showed mobile app logins never failed in 30 days.
  • Every failure was at the browser login page, not in the app.
  • The top support ticket’s real cause was a passkey registered on a different device.
  • Platform threat detection was freezing one user minutes after each login from a VPN address.
How it was verified

Order intake, field mobile, time logging and kanban totals were each verified by logging in as the named user who does that job.

Sources
  • docs/research/01-salesforce-platform.md §2.7 · Field service and mobile
  • docs/research/01-salesforce-platform.md §4 · The operating methodology

Keep reading

Two more

All case studies
  • Custom development
    31%Of quote lines carried no tax code5,997 of 19,255 lines. 5,182 of them sit on Canadian job sites.

    A tax engine rebuilt from 28 rows of configuration

    The client told us the tax was calculating by product instead of by province. We tested that against all 2,335 order line items and it was not true. Six other defects were, and we priced each one.

  • Custom development
    100%Of the order book placed on a mapFrom a starting point of zero. The book was recorded at 254 orders carrying an address and the geocoding run at 252 of 252. We have not reconciled the gap.

    An order book on a map, and the customer who was a fifth of it

    Every order had an address and none had coordinates. Once they were mapped, one account turned out to be 20% of the book and the default view was hiding another 35%.

Next step

Bring us your hardest Salesforce problem

Tell us what is broken. You get a written read on it within one business day, before any money changes hands.

  • Reply within one business day
  • Live walkthrough of the org itself
  • Vancouver, British Columbia