Case StudySix Hours of Itinerary Prep, Done in 30 Minutes
How iTechCloud cut itinerary preparation from around six hours to around 30 minutes for an Africa-focused travel operator, with tw…
Customer stories
Case StudyHow iTechCloud cut itinerary preparation from around six hours to around 30 minutes for an Africa-focused travel operator, with tw…
Case StudyHow iTechCloud built an AI-led enquiry and itinerary platform for a luxury African travel specialist: three Agentforce agents on w…
Case StudyHow iTechCloud unified 63 data streams into one buyer profile on Salesforce Data Cloud, built a never-regressing funnel status, an…
Case StudyHow iTechCloud connected a US window and door manufacturer's whole lifecycle in Salesforce: a postcode-to-territory appointment en…
Case StudyHow iTechCloud built STEP Energy Services' Salesforce and FieldFX platform for horizontal fracturing: engineering plan import, spr…
Case StudyHow iTechCloud built an offline-first browser extension for Salesforce Field Service: a full inspection captured on a tablet with…
Case StudyA UK insurance business replaced one-time Stripe payments with a full subscription billing platform: automated renewals, BACS Dire…
Case StudyA global commercial insurance joint venture replaced manual, siloed operations with a unified Salesforce platform, integrating Syn…
Case StudyHow iTechCloud built Connect's driver management and pay platform: a multi-tenant Salesforce and Experience Cloud build that runs…
Case StudyA global leader in test and inspection solutions replaced manual case and lead management with Salesforce Service Cloud, routing b…
Case StudyA workers' compensation insurer rebuilt the broker experience on Financial Services Cloud, Experience Cloud and Salesforce Industr…
Case StudyHow iTechCloud partnered with Aedon to build a Salesforce-native accounting product that unifies finance and CRM on one platform,…
Executive summary
A global manufacturer of fire and explosion protection systems services the equipment it builds: suppression and detection across spray dryers, baghouses, cyclones and bagging lines inside industrial plants. Its engineers work in places where connectivity is unreliable by nature, and the inspection they carry out is long, structured and highly detailed.
Salesforce Field Service is the system of record for that work, but its standard offline capability could not carry this inspection. iTechCloud Solution built a browser extension that acts as an offline-first field client: it caches the work order and everything under it, lets an engineer complete the whole visit with no connection at all, records every change as a durable transaction, and synchronises those transactions back to Salesforce when the connection returns.
The principle behind it is store, work offline, queue, reconnect, synchronise, reconcile. Salesforce stays authoritative throughout. The extension is a temporary execution layer, never a second system of record.
The situation
This is not a job with a handful of fields. A single service visit covers several process zones, each with its own assets, each asset with sub-assets, and each of those with a hardware checklist whose columns differ by equipment type. The engineer needs all of it on one screen, on a tablet, in a plant.
A work order carries zone status, service status, system status and interlock status per zone, then asset records, then checklist rows per asset. Standard offline handles simple records well; it was not built for a deeply nested inspection captured in one sitting.
Which checklist columns apply depends on the equipment type selected, and which records can be chosen depends on the zone and asset above them. The form has to rebuild itself as the engineer works, offline, without a round trip.
An engineer adds several assets and their checklists during one visit. Creating them one at a time, each waiting on a connection, is not how the work actually happens.
Plant floors, basements and remote sites do not have reliable signal. A client that needs a live request for every read and every write stops being usable exactly where it is needed.
Some of the people collecting this data are subcontractors who do not have, and do not need, a Salesforce login. They still have to complete the same structured inspection.
The customer expects a service report before the engineer leaves, and expects to sign it. Producing that document after the fact, back in the office, is a different and worse process.
Our approach
The decision that shaped the build was to treat every offline change as a transaction rather than as an unsaved form. A cache tells you what the data looked like; a queue tells you what was attempted, what succeeded, and what still needs attention. That distinction is what makes offline work safe to rely on.

While online, the extension pulls the work order and everything beneath it and stores it locally with its identifiers and synchronisation metadata. The user interface then reads from local state, not from the network, so losing the connection changes nothing about what the engineer can do. Each edit updates the local record immediately and adds a pending transaction to a durable queue that survives the tab being closed or the browser restarting.
When connectivity returns, a background service worker works through the queue in order: it checks a Salesforce session exists, submits each operation through a single API management layer, interprets the response, marks accepted operations as synced and writes authoritative values and record IDs back into local state. A temporary failure keeps its place and is retried. A validation or business-rule rejection is marked failed and shown to the user with its reason, because the one thing an offline client must never do is lose work quietly.
Offline is easy until something fails. The whole design question is what happens to a change that Salesforce refuses three hours after the engineer typed it, and the only acceptable answer is that somebody is told.
Subhash Panchani, CEO & Co-Founder, iTechCloud Solution
Because a local working copy and the system of record can drift apart, the design sets an explicit conflict policy rather than leaving it to chance: apply the queued update where only the offline user changed the record, compare against the local base version where the server moved on, refuse to silently overwrite a field changed in both places unless the business rule allows it, merge at field level only where that is safe, and return a reconciliation error where the record was closed or deleted online.
What we built
The engineer opens the work order and sees the whole job: the key information, a zone status table covering next service due date, zone, service, system and interlock status with remarks, and then each zone expanded into its assets. Every asset carries its own identifiers, equipment type, size, serial number, customer tag and power details, and under it a hardware checklist whose columns follow the equipment type. Sub-assets nest beneath their parents, and a comment list offers the standard fault descriptions for that equipment rather than leaving the engineer to free-type them. New assets and new checklists are created in place, several in a visit, without waiting for anything.
Changed values are highlighted as the engineer works, so at a glance it is obvious what this visit has altered and what was carried in from the last one.
Previously synchronised data stays available offline, which means the engineer is not working blind. They can see what the readings were at the last service and open a historical chart per asset to see the trend across visits, on site, in the moment they need it to decide whether something is drifting.
The service report is generated on the device, offline, in several depths: a short report, a medium report and a full report, with options for working hours only and for starting each zone on its own page. The customer reviews it and signs it there and then, and the signed document uploads to Salesforce with the rest of the visit once the connection returns.
For engineers without a Salesforce licence, the work order moves as a file. A manager exports the work order with its zones, assets and history and emails it. The engineer imports that file into the extension, completes the inspection offline exactly as a licensed user would, and exports it back. The manager imports the returned file, reviews what came in, and pushes it to Salesforce with one sync action. Nobody is asked to buy a licence to fill in a checklist, and nobody re-keys a paper form.

Synchronisation state is surfaced rather than hidden: online and synced, offline with the time of the last successful sync, a count of pending changes, syncing in progress, a sync error that needs attention, and a reconciliation state where local and server versions need review. The engineer always knows whether their morning is safely in Salesforce or still sitting on the tablet.
The outcome
Zones, assets, sub-assets and hardware checklists are all captured during the visit, on the tablet, whether or not there is a connection, instead of being written down and re-entered later.
Every change is a durable transaction rather than an unsaved form, so closing the tab, restarting the browser or losing the network mid-operation does not cost the engineer their work.
A rejected write is retained with its reason and shown, so a validation rule or a record that moved on becomes something to correct rather than something that silently vanished.
Dependent fields, equipment-driven checklist columns and many records created in one sitting work offline, which is the specific gap that made the standard capability unusable for this inspection.
Last visit's readings and the trend across visits are available on site, so decisions are made with history rather than from memory.
Reports are produced at several depths on the device, signed by the customer before the engineer leaves, and uploaded with the rest of the work.
The export, email, import, work, export, sync loop brings subcontract engineers into the same structured process without giving every one of them a Salesforce licence.
The extension is an execution layer with a queue, not a parallel system, so once synchronisation completes Salesforce holds the authoritative version.
Platform & tooling
Work orders, service appointments, assets and the service history that the extension caches, edits and writes back to.
The field execution layer: application shell, routing, local state and offline behaviour, with a background service worker for orchestration.
Cached records, local metadata and the pending transaction queue, held durably rather than in page memory so a restart does not lose work.
Pending, syncing, synced, retry, failed and reconcile states, each with retry metadata and the last error, so the queue is observable.
One integration boundary that builds Salesforce requests, carries authentication and interprets responses and error payloads.
Detects when synchronisation is possible, processes the queue in a controlled order and guards against the same transaction being submitted twice.
Short, medium and full service reports produced on the device, with signature capture and upload back to Salesforce.
Export and import of a complete work order so engineers without a Salesforce licence can work the same structured inspection offline.
Working with iTechCloud
An offline client is judged on its worst day, not its best one. Most of the engineering effort went into what happens when things go wrong: the network disappearing mid-operation, the browser closing with work in the queue, Salesforce rejecting a write hours after it was typed, and the same record being changed in two places. Those cases were designed first and the happy path followed from them.
A product build delivered end to end, followed by managed services as the inspection model and the equipment catalogue grow. Security was treated as a constraint from the start: the extension requests only the permissions it needs, environment-specific credentials and endpoints are kept out of the shipped package, and the offline cache holds the operational subset required to do the work rather than everything the user can see in Salesforce.
The cases that mattered were tested deliberately: editing with no connection, losing the network part-way through a sync, restarting the browser with a full queue, a validation rule rejecting a queued write, and the same record being changed online and offline. Those are the scenarios that decide whether an offline client is trustworthy.
Tell us the outcome you need and we will scope the route to it.
Planning a software, data or AI project?
Book a call