Question one: can a rep create a brand-new visit record with no signal at all?
Plenty of tools that advertise offline support actually mean something narrower: you can view data that already synced, while creating something new still calls the server first. In a shop with no bars at all, that create action either fails outright or hangs waiting for a connection that isn't coming.
The way to check is to test creation specifically, not just viewing. A demo run on a slow connection behaves very differently from a true dead zone, because a slow connection can still complete a background retry that a dead zone never gets.
Vendors rarely misrepresent this outright — they just don't lead with the distinction. A product page that says 'offline mode' is technically accurate if viewing works offline, even when creating a new record does not. The burden sits on the buyer to ask specifically about creation, since it's the capability most likely to be quietly missing.
- Put the device in airplane mode, not just on a weak signal — a background retry can quietly rescue a slow-connection demo in a way a real dead zone won't.
- Create a new shop record, log a visit, and attach a photo, in that order — some tools handle the record fine but drop the attachment when there's no signal.
Question two: can a rep edit a record that's already synced, while still offline?
This is a different capability from creation. Once a record has synced back to the server, some tools start treating it as server-owned and quietly lock further edits until the connection returns — even though the screen still lets you type.
This matters most for corrections, not new entries. A rep who catches a mistake in an order logged an hour earlier, standing in a shop with no signal, needs that fix to hold locally and sync when it can — not to disappear because the app assumed editing always means being online.
Testing this is simple once you know to look for it: sync a record online first, then switch to airplane mode and change one field on it. If the edit fails silently, or reappears unchanged after the next sync, the tool is locking edits to server-owned records — worth knowing before a rep relies on it out on a route.
Question three: what actually happens when two edits of the same record collide?
Two reps covering overlapping territory, or one rep switching between a phone and a tablet, can easily produce two different offline versions of the same visit record before either one syncs. The system has to resolve that collision somehow, and the resolution rule is where offline support quietly gets cheap.
Ask for the literal mechanism, not the marketing description: last-write-wins by timestamp, field-level merge, or a manual review queue that surfaces the conflict to a person. Last-write-wins is the least expensive to build and the easiest one to lose real data to, because the version with more detail doesn't automatically win — the version that happened to sync last does.
- Ask what happens if two reps changed the same order quantity offline — a vague answer usually means last-write-wins by default.
- Ask whether a conflict ever gets surfaced to a person, or whether it just resolves on its own and disappears without a trace.
- Ask what the rep actually sees in the moment a conflict happens — nothing at all, a silent overwrite, or a clear prompt to pick which version to keep.
Question four: where do photos and signatures sit while the connection is down?
Media files are usually the last part of offline support to get built properly, because they're the heaviest thing to queue and the slowest to retry over a weak connection. A visit note is a few hundred bytes; a photo is not.
A well-built queue uploads media in the background, retries on its own, and never blocks the rest of that day's visit data from syncing just because one photo is stuck. A poorly built one ties the whole record's sync to its slowest attachment, so a single bad photo can hold up an entire route's worth of records.
It's also worth asking what happens to a photo mid-upload if the app crashes or the rep switches away to take a phone call. A queue that survives an app restart is a different thing from one that only survives while the app stays open in the foreground — and that difference only ever shows up out in the field, never in a demo.

