Offline Surveys

Complete Field Guide · How to use surveys without internet

Surveys are built for the field. Work on any site — no internet required. This guide explains how offline caching works, what the status banners mean, and how your changes sync automatically when you're back online.

IndexedDB CacheAuto-SyncOffline BannerUnsynced BadgeMobile AppTroubleshooting
01

How Offline Caching Works

What actually happens behind the scenes

When you open any survey, all its data is automatically saved to your browser's IndexedDB — a high-capacity local database built into every modern browser. This gives you up to 250 MB of survey storage that persists even when the page is closed or the network is lost.

Your DeviceIndexedDB Cache250 MB · browser storagesurveys cached locallyonline syncauto-push changesinitial load + re-syncofflineServerSource of Truthall survey recordsauto-sync on reconnectOffline Zone✓ Read surveys✓ Place devices✓ Draw cable paths✓ Configure devices✓ Add annotations— syncs when back online— badge shows "Unsynced"— no data loss on reconnect

IndexedDB

Stores floor plans, devices, cable paths, and metadata locally

Auto-Sync

Pushes local changes to the server as soon as you're back online

Offline-first

Reads from local cache first — no waiting for the network

Info: IndexedDB is separate from cookies and localStorage — it's much larger and is not cleared by normal browser history clearing unless you explicitly choose "Site Data".

02

Status Banners Explained

What each color means and what to do

A colored banner appears at the top of every survey page to tell you exactly what's happening with your connectivity and sync status.

Survey EditorNo banner — fully online💾 Save📶State 1: OnlineNo banner shown⚠️ You're offline — changes saved locallyOffline📴State 2: OfflineAmber banner, all edits saved to IndexedDB🔄 Syncing changes to server…Syncing🔄State 3: SyncingBlue banner on reconnect, auto-uploads✅ All changes synced — you're back onlineBanner disappears after a few seconds once all pending edits have been pushed to the serverState 4: Synced — banner auto-dismisses

No banner

You're online and all surveys are synced. Everything is working normally.

Amber — Offline

Your internet connection is gone. All edits continue to save locally to IndexedDB. You can keep working — nothing is lost.

Blue — Syncing

You've reconnected and local changes are being pushed to the server. This usually takes just a few seconds.

Green — Synced

All pending changes have been pushed successfully. The banner disappears after a few seconds.

03

The 'Unsynced' Badge

How to know which surveys have unsaved remote changes

On the Surveys list page, any survey that has local edits not yet pushed to the server shows a small amber "Unsynced" badge next to its status. This badge appears any time you've made changes while offline (or before a sync completes).

Surveys List — "Unsynced" badge📍Office HQ — 3rd FloorIn ProgressUnsyncedOpen📍Warehouse Site SurveyCompleteOpen📍New Client Walk-throughDraftUnsyncedOpenAmber "Unsynced" badges clear automatically once the survey is pushed to the server

Good to know: Unsynced badges clear automatically the moment that survey's data reaches the server — no action required from you.

Important: If you see "Unsynced" badges but no banner, it means you're online but the auto-sync hasn't completed yet. Wait a moment or reload the page.

04

Working Offline — Step by Step

Typical field workflow

9:41📴⚠️ Offline — changes cachedWarehouse Survey📷📡🔌📷📡🔌🔒✏️💾 Save📋 BOMMobile / Surveys App — Offline Use📴Go offline at the job siteNo connection needed once survey data is loaded in the app📍Place & configure devicesTap to drop devices, double-tap to configure parts & notes💾Save locally'Save' writes to IndexedDB instantly — no network required📶Reconnect at the officeOn reconnect, all pending edits sync to the server automatically⚠️ Don't clear browser/app data while offline — it will erase unsaved changes
1

Load your surveys before going to the site

Open the Surveys list page while you still have internet. All surveys load and cache automatically. You don't need to do anything special — just having the page open is enough.

2

Go to the site — lose connectivity

Once you're on site without WiFi or cellular, open the survey you need. The app reads from IndexedDB instantly — no loading spinner, no 'offline' errors.

3

Work normally

Place devices, draw cable paths, configure parts, add annotations — every action saves locally as you go. The amber banner reminds you that you're offline, but everything still works.

4

Click Save

Hitting Save while offline writes a full snapshot to IndexedDB. This is also the revision checkpoint — it protects against accidental large changes.

5

Return to connectivity

When internet returns, the app detects it and automatically begins syncing. A blue banner shows syncing progress, then a green 'synced' confirmation. All Unsynced badges clear.

Tip: You can keep working during the sync — edits you make while the sync runs will be pushed in the next cycle.

05

Auto-Sync on Reconnection

What happens when you come back online

Auto-Sync Flow on Reconnection📶InternetRestored🔍DetectOnline🔎Find DirtySurveys☁️Push toServerMarkSyncedThe "Unsynced" badge on each survey clears once that survey's data reaches the server

The app constantly monitors your network status. The moment it detects a transition from offline → online, it:

  1. Scans IndexedDB for surveys marked as "dirty" (locally modified since last server push)
  2. Pushes each dirty survey to the server one at a time
  3. Marks each survey as clean in IndexedDB once the server confirms receipt
  4. Removes the "Unsynced" badge from the Surveys list
  5. Shows the green "Synced" confirmation banner, then dismisses it

Info: Syncing is debounced — rapid consecutive edits are batched into a single push to avoid excessive server requests.

06

Storage Limits & Pruning

How much can be cached and what happens when it's full

IndexedDB Storage Budget (250 MB)Used: ~92 MB (3 surveys)Available: ~158 MBFloor plan images (largest portion)Device & cable path dataSurvey metadataWhen storage nears the limit, the oldest clean (synced) surveys are pruned automatically to free spaceUnsynced surveys are never pruned — your unsaved work is always protected

The cache targets 250 MB of storage. Floor plan images are the largest consumers — a high-resolution aerial photo is typically 2–5 MB. The app also requests persistent storage from the browser, which prevents the browser from evicting the cache under memory pressure.

1

Normal operation

Surveys are cached as you open them. The most recently accessed surveys stay in cache longest.

2

Approaching 250 MB

The oldest clean (already-synced) surveys are automatically pruned to free space. You can still access them — they'll just re-download from the server on next open.

3

Unsynced surveys are never pruned

Any survey with local changes not yet on the server is protected from auto-pruning, even if storage is full. Your unsaved work is always preserved.

Important: Large floor plan image files significantly reduce how many surveys fit in the offline cache. Use the Google Maps capture (lower resolution) rather than uploading very large PDFs converted to images.

07

Mobile & Surveys App

Best practices for field use on tablets and phones

The Surveys App (accessible at /SurveysApp) is optimized for touch devices and works fully offline.

📱

Recommended devices

iPad, Android tablet, or any touch-screen laptop. The full browser version works on desktop/laptop.

🌐

Pre-load surveys on WiFi

Before going to a site with no connectivity, open the Surveys list while on WiFi to cache all data.

📶

Airplane mode test

Try enabling airplane mode and reloading the survey — if it loads, you're fully offline-ready for that survey.

🔋

Battery / sleep

Data is safely in IndexedDB even if the device sleeps. Wake and open the survey — your work is there.

Tip: Add the Surveys App to your home screen (PWA) for the fastest offline access and a native app-like experience.

08

Troubleshooting

When things don't go as expected

Common Scenarios & What to Do⚠️Banner says 'Offline' but I'm on WiFiThe app uses a real connectivity check. If the WiFi has no internet (e.g. captive portal), the banner correctly shows offline. Connect to internet first.🔄Syncing spinner doesn't stopCheck your internet connection. If the issue persists, refresh the page — all local data is safe in IndexedDB and will re-sync on load.I cleared my browser data while offlineIndexedDB is cleared along with site data. Any unsynced edits since your last server push will be lost. Always sync before clearing browser data.

Important: Never clear "Site Data" or "Cookies and site data" in your browser while offline. This deletes IndexedDB and any unsynced changes are permanently lost.

Info: Incognito / Private browsing mode has very limited IndexedDB storage and may not persist between sessions. Use a regular browser window for field work.

Tip: If you suspect an issue, open the survey on a device with internet first — the server version is always the authoritative copy and can be used to re-seed the local cache.

Quick Reference Card

Do I need to do anything to enable offline?

No — just open the survey while online. It caches automatically.

How much storage is available?

Up to 250 MB for all cached surveys combined.

What happens if I lose connection mid-edit?

Continue working — all saves go to IndexedDB instantly.

How do I know a survey is cached offline?

If it loads without a spinner in airplane mode, it's cached.

Will I lose data if I close the browser offline?

No — IndexedDB persists across browser sessions.

What is the 'Unsynced' badge?

Local changes not yet pushed to the server. Clears on reconnect.

CNMBiz · Offline Surveys Guide