Offline Field Service App
the tech working basements and rural lots where the cloud app locks up, instead of a paper slip that half the time never makes it into the system.
Create a job, mark it done, take a payment and print the day’s worksheet with zero bars, then run one command that hands you the exact queue of changes to push once signal comes back.
$75 a month, flat. It’s an add-on, not a per-seat charge, so a crew of six costs the same as a crew of one. Cancel any day.
No bars in the crawlspace
Your tech is in a basement mechanical room, or a rural lot forty minutes past the last tower. The furnace is done, the customer’s got cash in hand, and the field app is spinning on a blank screen because it can’t reach the server to save a thing.
So he writes it on a slip. Customer name, address, what he did, the amount collected. That slip rides around in the truck for three days, and about a third of them never get keyed in. The payment you took never hit the books. The job you finished can’t be invoiced because there’s no record it happened.
That’s revenue you earned and can’t prove. It’s the callback you eat because nobody logged what got installed.
Work now, sync later
- Add the job in the field.
addwrites a customer, address, description and amount straight to a local register on the machine. No network call, so it saves the same in a dead zone as it does at the desk. - Close it and collect.
completemarks the job done andpayrecords the money against it. Callpayagain to add more, the amounts stack. - Sync when you’re back. Once you’ve got signal,
sync-exportwritespending-sync.json, the exact queue of every job with unsynced changes, ready to push into whatever system of record you already run.
What it does
- Nothing in it ever touches the network. Every job, every payment, every worksheet is written and read locally, so a basement with no bars behaves exactly like the office.
- Every change stamps the job as unsynced and time-stamps it, so when signal comes back the queue already knows precisely what moved and nothing gets left off.
worksheetprints today’s sheet: every open job plus anything created today, with amount, paid and balance and the running totals. That’s the day accounted for on one page.payis cumulative. Partial now, the rest on completion, and it adds up on the job instead of overwriting.sync-exportproduces the push queue as a plain JSON file. You hand it to your system of record and nothing you did in the field gets retyped.importbulk-loads a day’s jobs from a CSV of customer, address, description and amount, so a dispatched route drops in before the truck leaves.- Be clear on the line this version draws: it builds the sync queue, it doesn’t push it for you. Sending that queue upstream is on your system, on purpose, for now.
Who runs this, and who doesn’t
Built for the HVAC, plumbing or electrical shop whose techs keep hitting dead zones the main app can’t survive, running maybe two to fifteen trucks. It sits alongside the software you already dispatch from and covers the gap where the signal drops.
If your whole service area has four bars and your field app never stalls, you don’t have the problem this solves. And if you want it to push finished jobs into your CRM by itself, that’s not this version. It writes the queue. You push it.
What it replaces
Jobber, Housecall Pro and ServiceTitan run the business when there’s a connection, and they’re better at everything that needs one: scheduling, dispatch, the customer history, the card processing. The documented soft spot is that they assume connectivity to create a job or take a payment in the field, and a dead zone is where that assumption breaks.
The other alternative is a paper slip and a good memory, which is free and fails quietly. What sits here is the offline register those platforms don’t ship. For a shop that just needs the field work captured until the bars come back, that’s the missing piece, not a second platform to learn.
Your data
The job register, jobs.json, is read and written only under the data folder you set, and the worksheet and sync queue only under your output folder. Nothing is transmitted anywhere, because there’s no network code in it to do the transmitting. Output writes at 0600 permissions with every path checked first. When you’re ready to push, pending-sync.json is that export, a plain file on your disk you move on your own terms.
Pricing and getting started
$75 a month, flat, however many techs you run. In the account you get the register plus the commands to add, complete, pay, list, worksheet, import and export. First job is captured the moment you run one add, offline, on the machine you install it on. Cancel any day and jobs.json stays right where it lives, on your disk, because it was never anywhere else.
Security and privacy
Handles field job data (customer names, addresses, job amounts, payments taken in the field). Security is designed in.
Principles
– Local-first. The job register (DATA_FOLDER/jobs.json) and every generated file (OUTPUT_FOLDER/WORKSHEET.md, OUTPUT_FOLDER/pending-sync.json) are read/written on disk only. Nothing in this tool touches the network — no telemetry, no cloud dependency, no background sync. That’s the product’s whole wedge: it keeps working with zero signal.
– Least privilege. Reads/writes only under DATA_FOLDER and OUTPUT_FOLDER; import additionally reads the CSV path given (JOBS_CSV or the CLI argument).
– Non-destructive by default. Nothing is deleted; complete/pay update a job in place in the register but every prior state is only ever superseded, never wiped from disk without the register being rewritten as a whole.
Protections implemented (v0.1.0)
– Path-traversal defense — every generated filename is sanitized (safeSegment) and every write is checked with assertWithinRoot(), so the register and reports can’t land outside DATA_FOLDER/OUTPUT_FOLDER.
– Fail-fast config validation — clear errors for missing DATA_FOLDER/OUTPUT_FOLDER before any file is touched.
– Restrictive permissions — jobs.json, WORKSHEET.md, and pending-sync.json are all written 0600.
– Defensive parsing — the CSV parser and currency parser (shared with the rest of the portfolio) never throw on malformed input; a bad import row is skipped (empty customer) or degrades gracefully (unparseable amount defaults to 0) rather than crashing the register.
– Pure mutation functions — applyComplete/applyPayment/newJob return new objects rather than mutating in place, so a bug in one code path can’t silently corrupt an in-memory job used elsewhere.
– Secrets discipline — .env and the generated register/reports are git-ignored; no client job data in the repo.
Distribution / AV trust
Known limitations / roadmap
– sync-export only produces the pending-sync queue — it does not clear syncPending and does not push anywhere. v0.1.0 is deliberately export-only; a real sync client (and the logic to clear syncPending once a push is confirmed) is on the roadmap.
– There is no authentication or per-technician identity in v0.1.0 — the register is a flat file for one technician/one device. Multi-technician conflict resolution (two people editing the same job while both offline) is out of scope until a real sync backend exists.
– worksheet‘s “today” is defined by the machine’s local clock at run time; if the device’s clock is wrong, the worksheet will include/exclude the wrong jobs.
Reporting
Report suspected vulnerabilities privately to the maintainer before public disclosure.
Frequently asked questions about Offline Field Service App
What is the Offline Field Service App and how does it work?
The Offline Field Service App solves a concrete problem that tools like Jobber, Housecall Pro, and ServiceTitan leave open. Those apps expect a live connection, so a tech in a basement, a rural crawlspace, or a dead-zone job site cannot create a job or take a payment until the signal comes back. This app is offline-first, meaning it does the real work on the device and queues everything locally, then syncs to QuickBooks Online when the connection returns.
It is worth being concrete about where this bites hardest. A tech finishes a job in a rural basement, the customer has cash or a card ready, and the app on a connected-only tool will not let them close it out. Now the tech either writes it on paper and risks losing it, or tells the customer they will send an invoice later and hopes it gets paid. Either way you have introduced a delay and a chance for money to slip. The offline-first design removes that moment entirely. The tech closes the job and takes the payment on the spot, exactly as they would with full bars, and the record simply waits in the queue until there is signal to sync it. The customer pays while they are standing there, which is when they are most willing to pay.
Here is how it runs day to day. Your tech pulls up to a job with no bars, and it does not matter. They create the job, add line items, capture the customer’s signature, and take payment right there on the device. The offline field service app stores all of it locally the moment it happens. When the phone finds signal again, the queued jobs and payments sync up and a light QuickBooks Online push keeps your books current. Nothing waits on a spinning loading icon while a customer stands there ready to pay you.
That local capture of job times and payment records is also good recordkeeping. If you run W-2 crew, the hours they work are payroll records you are required to keep, and the Department of Labor recordkeeping requirements under the FLSA explain that payroll records must be preserved for at least three years. Capturing job start and finish times on site, even with no signal, means those records exist accurately instead of being reconstructed from memory at the end of a long day. The app records what happened when it happened.
It is sold as a flat monthly add-on that sits on top of the field service setup you already run, rather than a full replacement you have to migrate to. If you want the details and pricing, the offline field service app product page lays them out. The honest pitch is narrow and real. Plenty of tools handle scheduling and invoicing fine when you have signal. This one is built for the moments you do not, so your techs keep creating jobs and collecting money in the field and your office gets clean records once everything syncs back to base.
How does an offline field service app help with payroll and time recordkeeping?
Field crews rarely work where the signal is strong, and that is a problem for any business that has to keep accurate time records. If a tech cannot log a job start until they drive back into coverage, the times get rounded, guessed, or filled in hours later. The Offline Field Service App captures job activity on the device the moment it happens, connection or not, so the underlying record of when work happened is accurate rather than reconstructed after the fact.
There is a quieter benefit in how this affects your office. When times and job details are captured accurately in the field and synced clean, the person doing payroll and invoicing back at the shop is not chasing techs at the end of the week to reconstruct what happened on Tuesday. The data arrives as it occurred, timestamped and tied to the job, rather than as a fuzzy recollection scribbled after the fact. That cuts down the back-and-forth that eats an office manager’s afternoon and reduces the errors that creep in whenever people fill gaps from memory. Accurate capture in the field is not just a compliance nicety. It makes the whole administrative tail of the business shorter and less prone to the small mistakes that turn into payroll corrections and re-issued invoices.
This matters directly for payroll compliance. Employers must keep payroll records, and the Department of Labor recordkeeping requirements under the FLSA state that payroll records have to be preserved for at least three years, with the records used to compute wages kept for two. Accurate job timing on site feeds cleaner numbers into that obligation. An offline field service app that timestamps work as it occurs gives you a truer basis for hours than a memory-based timesheet filled out at the end of a shift back at the shop.
The queue-and-sync design is what makes this reliable. Because the app records job times locally and then syncs to QuickBooks Online when the signal returns, nothing depends on a tech having coverage at the exact moment a job starts or ends. The data is captured first and moved second. That order is the point. You are not trading accuracy for connectivity, and you are not asking crews to remember and re-enter times that a dead zone stopped them from logging live.
None of this makes the app a payroll system on its own, and it is honest to say so. It captures the field activity and job timing and pushes clean records to your accounting, where your payroll process takes over. What it removes is the gap between work happening in a no-signal area and that work being recorded, which is where time records usually get soft. You can see how it fits the wider trade in the field service and trades overview. The plain summary is that accurate time records start with capturing work when it happens, an offline field service app does exactly that regardless of signal, and cleaner field timing makes the payroll recordkeeping the DOL requires far easier to satisfy.
Where does my job and payment data live in the Offline Field Service App?
Taking payment in the field means handling sensitive customer information, and it is fair to ask where that data goes. The Offline Field Service App captures jobs and payments on the device first, holds them in a local queue, and then syncs to QuickBooks Online when the connection returns. Your customer records and payment details are not scattered across text messages and paper slips that pile up in a truck. They live in the app and move into your accounting on a defined path.
The single-sync path also matters for how cleanly data moves. Some tools that claim offline support leave you with partial records in several states, an invoice half-created here, a payment noted there, a signature saved to the camera roll. Reconciling that later is its own headache and its own risk, because sensitive details end up in places you did not plan for. Capturing the whole transaction as one queued record and then moving it in a single sync keeps the customer’s information together and on a known path. You are not stitching a job back together from fragments across the phone. The record is whole when it is made and whole when it lands in your books, which is both easier to trust and easier to protect than a scatter of half-finished pieces.
The FTC lays out a plain framework for protecting this kind of information, and it is worth reading in the FTC guide to protecting personal information. The steps come down to knowing what you hold, keeping only what you need, locking it down, and disposing of what has aged out. An offline field service app that keeps job and payment data in one place and syncs it to your books, rather than leaving it in handwritten notes and loose photos, makes those steps realistic. You can actually say where a customer’s information is instead of hunting through a glovebox and three phones.
Local-first capture also means the data is not sitting exposed in a dozen half-finished states. Because the app queues a complete record and then moves it in one sync, you avoid the mess of partial information living in email drafts and camera rolls. Concentrating the data is what makes it protectable. The FTC’s first step is taking stock of the personal information you hold, and a tool that keeps each job’s record together is what lets you do that honestly instead of guessing.
This does not remove your own duties. You still control who can open the app and you still keep devices locked and passworded. What the software changes is how spread out the sensitive data has to be, pulling it out of scattered notes and into one queue that syncs to your books. If you want to see how the tool is scoped and how the sync works, the offline field service app product page covers it. The honest line is that no app makes you breach-proof, but capturing customer and payment data in one controlled place instead of across loose slips and messages is a real step toward the protection the FTC describes for a small business.
How is the Offline Field Service App different from Jobber or Housecall Pro?
Jobber, Housecall Pro, and ServiceTitan are capable platforms, but they share an assumption that breaks in the field. They expect you to be connected. When a tech is in a basement, a rural property, or any dead zone, those tools cannot create a job or take a payment until the signal comes back. The Offline Field Service App exists to fill exactly that gap, and it is built offline-first rather than treating offline as an afterthought bolted on later.
It is also fair to say what this tool does not try to be, because that honesty is part of the fit. It is not a wholesale replacement for the scheduling, marketing, and reporting depth that a mature platform offers. It is a flat monthly add-on aimed at one hard gap those platforms leave open. If your crews never lose signal, you may not need it. But for a business whose work regularly happens in basements, rural properties, new construction without service, or parking garages, that gap is a daily source of lost payments and soft records. The add-on model means you can close that specific hole without tearing out the tools your office already knows, which is a far easier decision than migrating your whole operation to something new.
The difference is architectural, not cosmetic. Many apps advertise some offline viewing, but they still cannot let a tech create a new job and collect payment with no connection. An offline field service app that is built for this queues the full transaction locally the instant it happens and syncs to QuickBooks Online later. That means a customer standing in a no-signal driveway can still sign and pay, and your tech never has to say the machine will not work until we drive somewhere with bars.
Because it captures work the moment it happens, the app also produces cleaner records than a tool that forces late entry. Job times logged on site are more accurate than times guessed hours later, which matters if you keep payroll records for W-2 crew. The Department of Labor recordkeeping requirements under the FLSA call for payroll records to be preserved for at least three years, and accurate field timing feeds that obligation better than reconstructed timesheets. The offline field service app records first and syncs second, so the record reflects reality.
It is also positioned differently on price and scope. Rather than asking you to rip out your current setup, it is a flat monthly add-on that sits on top of what you already run, filling the offline gap without a full migration. You can see how it fits the rest of the trade in the field service and trades overview. The honest framing is that this is not trying to out-feature ServiceTitan across the board. It does the one thing the big tools cannot, which is let your crews create jobs and take money with no signal, then hand clean records back to your office once everything reconnects at the end of the run.
Can I really create jobs and take payment offline in the field?
Yes, creating jobs and taking payment with no connection is the entire reason the Offline Field Service App exists. This is the concrete gap that tools like Jobber leave open, and it is what the app is built around. A tech with zero bars can pull up on a job, create it, add line items, capture a signature, and collect payment right there on the device. Nothing waits for a signal, because the work is done locally and stored the moment it happens.
The reconnection behavior is designed to require nothing from the tech, which is the point. Field crews have enough to track without babysitting a sync. When the device finds signal, the queued jobs and payments move on their own, and the light push to QuickBooks Online keeps the books current without anyone pressing a button or remembering a step. If a sync is interrupted, the record stays safely in the queue and goes again when the connection is back, so nothing is lost to a flaky signal on the edge of coverage. That quiet reliability is what lets a crew treat a dead zone as a non-event. They do the work, take the money, and drive on, and the office side catches up automatically once the truck is back in range.
The queue-and-sync design is what makes it dependable. Everything the tech does offline is held in a local queue on the device, complete and intact. When the phone finds signal again, the offline field service app syncs those queued jobs and payments and pushes a light update to QuickBooks Online so your books stay current. The tech does not have to remember to do anything special. They work the job, and the sync happens on its own once coverage returns, which keeps the field simple and the office up to date.
Handling payment in the field means handling customer data, so it is worth knowing that the app keeps that information in one place rather than on loose slips. The FTC’s plain framework for this is in the FTC guide to protecting personal information, and it comes down to knowing what you hold and keeping it controlled. An offline field service app that captures each payment into one queue, instead of scattered handwritten notes, makes that control realistic. The data is concentrated and moves on a defined path to your books rather than spreading everywhere.
The result on the ground is that a dead zone stops costing you money and clean records. Your tech collects on the spot, the customer is not asked to pay later, and your office gets accurate job and payment data once everything reconnects. If you want to see exactly how offline capture and sync are set up, the offline field service app product page walks through it. The honest answer is simple. Yes, you can create jobs and take payment fully offline, the work is captured the instant it happens, and it all syncs to your accounting the moment the signal comes back.
| Attributes | Value |
|---|---|
| Deployment |
Hybrid |
| Platform |
Web, Windows |
| License Type |
Subscription |
| Billing Period |
Monthly |
| Target Customer |
Contractors & Trades |
| Free Trial |
Yes |
Frequently bought together
-
Vertical Ops OS (mid-market FSM gap)
$169.00 -
Warranty & Callback Tracker
$39.00

