Unify Applications
Logo
Offline Mode

Offline Mode

Logo

8 mins READ

Overview

Offline Mode lets a UnifyApps Mobile App keep working when the device loses its network connection. Selected Storage by UnifyApps objects are copied into a database on the device. While Offline Mode is on, the app reads and writes those objects locally, and changes made on the device are pushed to the server on the next successful sync.

Offline Mode is particularly important for field-worker apps, logistics apps, and any mobile experience where users operate in locations with unreliable network coverage — warehouses, construction sites, remote field locations, or underground facilities.

Warning: Offline Mode is available for Mobile App types only. Web Apps running in a browser do not support Offline Mode. Copilot Chat and Display app types are also not supported.

How Offline Mode Works

Offline Mode is set up per app with a list of sync entities: the Storage by UnifyApps objects to copy onto the device. Each object can have its own filter. The filter is resolved for the signed-in user before every sync, so each device holds only the records that user needs. Keeping the filters narrow keeps the on-device copy small and the sync fast.

Only the objects in the sync list are served from the device. Every other request still goes to the network.

Turning On Offline Mode

Offline Mode is not configured in the Application Builder. Builder Settings has no offline option. To turn it on for your Mobile App, ask the UnifyApps team. Send them:

  • The Storage by UnifyApps objects to copy onto the device.

  • The filter for each object — for example, only the records assigned to the signed-in user. Filters can use bindings such as the user's context, and are resolved before every sync.

  • Optionally, a page size for each object (4000 records per page if not set).

Offline Mode works in the mobile app on a device. It is not active in the Builder's in-browser Preview.

What Works Offline

Capability

Offline Behavior

Reading synced objects

Storage by UnifyApps fetch calls on a synced object return records from the on-device database. Filters, search, sorting and pagination run on the local copy.

Writing to synced objects

Storage by UnifyApps create, update and delete calls on a synced object are saved on the device and pushed to the server on the next successful sync.

What Needs a Network Connection

Anything outside the synced objects goes to the network, whether Offline Mode is on or not:

  • Storage by UnifyApps objects that are not in the sync list.

  • All other data sources, such as other connectors, automations and APIs.

  • Real-time updates and third-party integrations.

While the device is offline, these requests fail like any request without a connection. They are not answered from the device copy, and nothing is queued. Show your own message when the device is offline, for example with {{ deviceContext['network']['isOffline'] }}.

Sync

A sync first pulls the latest records for each synced object from the server, then pushes the changes made on the device. A sync runs:

  • When the app loads.

  • When the device reconnects after being offline.

  • When a Control Offline Mode action runs with the Sync operation.

If a sync fails, it is retried twice, about a second apart. If it still fails, the sync status is set to failed and nothing is shown to the user. To tell users, show your own message based on the isSyncError binding (see below).

Conflict Resolution

Conflicts are resolved with last-write-wins. There is no custom merge logic. If the same record was changed on the server and on the device, the later write overwrites the other.

Showing Offline and Sync Status

No sync status UI is built in. Build your own from the device bindings. In a Mobile App, open the data panel and find them under Device → Network and Device → Offline Mode:

Binding

Description

deviceContext['network']['isOffline']

true when the device has no network connection.

deviceContext['offlineMode']['isReady']

true when the on-device database is ready.

deviceContext['offlineMode']['status']

Sync status: idle, in_progress, success or failed.

deviceContext['offlineMode']['isSyncInProgress']

true while a sync is running.

deviceContext['offlineMode']['isSyncComplete']

true when the last sync finished.

deviceContext['offlineMode']['isSyncError']

true when the last sync failed.

deviceContext['offlineMode']['lastSyncTimestamp']

When the last successful sync finished.

deviceContext['offlineMode']['syncPercentage']

Progress of the current sync, as a percentage.

Example: Sync Banner

Add an Alert block (see Alert & Loader) to the top of your layout and set its Visibility condition to {{ deviceContext['offlineMode']['isSyncError'] }}. Give it a message such as "Sync failed. Your changes are saved on this device and will sync later." and a button that runs the Control Offline Mode action with the Sync operation.

To show an offline notice, bind another Alert block's Visibility to {{ deviceContext['network']['isOffline'] }}.

Control Offline Mode Action

Use the Control Offline Mode action to sync or clear the on-device database on demand, for example from a Sync Now button. Set its Operation to Sync (the default) or Reset:

  • Sync exchanges changes between the device and the server. Several quick taps run a single sync.

  • Reset deletes everything in the on-device database. It does not sync first, so changes that haven't been synced are lost. It fails if a sync is running.

If Offline Mode is not on for the app, the action does nothing. See Control Offline Mode for the action's settings and behavior.

FAQs

How much data does Offline Mode store on the device?

Offline Mode stores the records of each synced object that match its filter. There is no storage limit setting or cache cap. Because filters are resolved for the signed-in user before every sync, narrow filters, such as records assigned to the current user, are the main way to keep the on-device copy small and the sync quick.

Can I make only some data available offline?

Yes. Only the Storage by UnifyApps objects in the app's sync list are copied to the device, and each one can have a filter so only part of its records is synced. Pages still open offline, but any data source that is not a Storage by UnifyApps call on a synced object needs a network connection and will not return data while the device is offline.