TOOKLI
Case studies

A field app that works where the network does not

Two hundred technicians were losing an hour a day to a web app that failed outside coverage. We rebuilt it offline-first, and let the operations team design the conflict rules.

TOOKLI EngineeringEngineering team1 min read
Time recovered per technician
55 min/day
Failed submissions
-98%
Adoption after 6 weeks
91%

The challenge

Two hundred field technicians used a mobile web app to record jobs. Outside coverage it failed outright, so technicians kept paper notes and re-entered everything in the evening — roughly an hour a day each, plus transcription errors that reached invoicing and turned into customer disputes.

Previous attempts had added a cache. That made reads work and made writes worse, because two devices could now queue conflicting changes with no way to resolve them.

Our approach

We rebuilt the client as an offline-first React Native application with a local database as the primary store and synchronisation as a background concern. Every record carries a client-generated identifier, so a job created in a tunnel and one created at the depot merge without collision.

Conflict resolution was designed with the operations team rather than for them. We went through the record field by field and asked which side should win. The answer was rarely "the server" — field data is usually the more accurate of the two, and the previous system had been quietly overwriting it.

Where a genuine conflict remains, the technician sees what changed and chooses.

The outcome

Technicians recovered close to an hour each day. Failed submissions all but disappeared, and invoicing disputes traced to transcription errors stopped appearing in the support queue.

Adoption reached 91% within six weeks without a mandate — which is the number we care about, because it means people preferred the new tool rather than being told to use it.

Related reading