/ 04 of 05
Read 4 min ·
Skim 1 min
A job sheet that works offline
Repeat visits fell 22%, and 93% of jobs are now closed on site.
Role
Product designer (contract, sole designer)
Team
1 PM, 4 engineers, 1 support lead
Timeline
6 months, Jan to Jun 2023
Platform
Mobile, iOS and Android

Skim mode: key sentences, key images and the outcome only. (4 min)
Context
Fieldnote’s app is how 3,800 technicians receive and close service jobs: heating and ventilation, lifts, fire alarms. In 2023 I was the only designer on a six-month rebuild of the job sheet. I worked with a product manager, four engineers and the head of support, who arrived at our first meeting with a long list of the ways it failed. Fieldnote is a company of forty, and the team had already shipped three versions of the same sheet.
Problem
The old sheet loaded from the server and saved to the server. A technician in a plant room with no signal saw a spinner and lost what they had typed, or gave up and wrote on paper. Notes were typed at home that evening, if at all. Photos stayed in the camera roll. Two technicians had stopped using the app for anything except the day’s address.
One visit in five was a return trip because the last technician’s notes or parts order were missing. Dispatchers called it the second visit tax. Of 4,100 repeat visits the year before, support traced 71% to something the first technician knew and never recorded.
Research
I rode along with seven technicians over four days: two in heating, three on lifts and two on fire alarms. I kept a tally of every time the app made them stop.
Offline was not an edge case. For a third of the working day it was the normal state. They also work with one hand, gloves on, in glare or in the dark, and they put the phone away at the first sign of trouble.
If the screen spins, I put the phone away. Then I’ll remember it at nine tonight, maybe.
Lift technician, 12 years in the job
The pattern held across trades. Plant rooms, lift shafts, cellars and rural properties lose signal, and so, oddly, do city buildings wrapped in steel and concrete. Of the sixty-one jobs I observed, twenty had no usable signal at the moment someone needed to write something down.
Decisions
Offline is the default, not an error
Every tap saves to the phone instantly and syncs later. There is no spinner and there is no “no connection” modal. A quiet counter says how many changes are waiting to send. “3 waiting to send” became the most reassuring element on the screen. One technician called it the receipt. Engineering built a local queue with retries, and I wrote the rules for what the person sees: saved, waiting, sent, and the one real failure, a job that was cancelled while the technician was offline.
Drag to compare the job sheet before and after. The spinner becomes a quiet counter. Or focus the slider and use the arrow keys.
Built for one hand and thick gloves
Tap targets are at least 56 pixels, parts use a big stepper instead of a keyboard, and the sheet follows the order of the job: arrive, find the fault, fix it, parts, sign-off. The sheet follows the order of the work, with targets sized for gloves. We tested with winter gloves in a car park in February, and the first version failed that test twice.
What didn’t work: a merge screen
Dispatchers and technicians sometimes edit the same job offline, so we designed a conflict screen that showed both versions. In testing nobody could tell which side to keep. We replaced it with a rule: technicians’ fields win for work done, dispatchers’ win for scheduling. Two sentences of policy beat a week of interface.
A photo is a note
Photos attach to the step they belong to, carry a before or after tag, and upload last, over wifi, because they are the heaviest thing on the phone. A fault photo with a tag answers most of the questions a dispatcher would have called about. On a lift job, a clear picture of the controller board saves a second trip with a spare part in the wrong size.
Outcome
−22%
repeat visits within 30 days
93%
of jobs closed on site, up from 64%
−9
min
evening paperwork per job
In the twelve weeks after launch, repeat visits within 30 days fell by 22%. The share of jobs closed on site rose from 64% to 93%, and each technician saves about nine minutes of evening paperwork per job. Support tickets mentioning a spinner went from 140 a month to 9. The dispatchers noticed first. Their phones stopped ringing at four in the afternoon, which is when technicians used to call in what they had forgotten to write down.
Reflection
I underestimated sync. The first release lost two photos in testing because of a queue-ordering bug that I should have prototyped with the engineers in week two. The best part of the design is that technicians stopped noticing the connection at all. I would add a way to flag “I know this one is incomplete”, which three technicians asked for and we left for later.

