SmartSync
| Warning | Work in progress! We are in the process of updating the information on this page. Subject to change. |
The synchronization in Resco Mobile CRM establishes data consistency between the CRM server and the mobile app. Traditionally, synchronization covers all entities in the app's data model. However, some use cases warrant targeted partial sync, skipping some entities and sync steps to save time and ensuring critical data is available asap.
SmartSync is a partial, background, usually incremental sync. Let's clarify this definition:
- Partial means that only a subsection of the data model is synced, for example, a single entity. You can also limit the direction: upload local updates from the device or download fresh server data. Finally, you can also skip some of the synchronization steps.
- Background means that it doesn't block operation: users can continue working with the app
- Incremental means that only the changes are transferred. This is not a hard rule; full sync is required or enforced in some situations. But in general, transfer changed records only.
Prerequisites
SmartSync was introduced in release 19.1. Both Woodford and Resco Mobile CRM must be updated.
Setting up SmartSync
SmartSync is set up in Woodford.
- Edit an app project in Woodford.
- On the Project menu, select Settings > Synchronization.
- Switch to the Smart Sync Config tab.
Defining a SmartSync profile
A SmartSync profile is a named instance of SmartSync. It defines which entities to sync, in which direction (upload/download), and when (trigger).

<SmartSyncSetup>
<SmartSync Name="GetTasks" SyncAction="DownSync" SyncMethod="Default" GlobalExclusions="true" AutoExclusions="true">
<Description>retrieve tasks from the server every 5 minutes</Description>
<Entities>
<Entity Name="task" WithRelated="false" Deep="false">
</Entity>
</Entities>
</SmartSync>
<Trigger Launch="GetTasks" Delay="300" Action="PeriodicSync">
</Trigger>
</SmartSyncSetup>
- On the Smart Sync Config tab, click Add SmartSync.
- As Name, enter a short identifier for this profile. You can use it to execute the right profile using JavaScript.
- As Sync Action, select upload, download, or both.
- As Excluded Sync Modules, select which synchronization steps to exclude:
- NoPreparation — Skip the preparation phase of sync (such as permissions update).
- NoRemoteConflicts — Skip handling of upload conflicts which were resolved via Sync Dashboard.
- NoSyncDeletes — Do not process information from the Delete plugin.
- NoEntityImages — Skip downloading entity images (icon-sized photos associated with records, e.g. contact photos).
- NoSyncShared — Skip synchronization of shared records — records made accessible to the current user via explicit sharing rather than ownership.
- NoDocuments — Skip synchronization of cloud documents (SharePoint, OneDrive, Google Drive, Dropbox, Box, etc.).
- NoAttachments — Skip downloading record attachments (note bodies, email attachments, sales literature files).
- NoExchange — Skip synchronization with Exchange, which runs after the main sync engine completes.
- OnlyCoreModules — Run only the essential sync modules (upload + entity download), skipping all optional phases such as customization check, preparation, remote conflicts, sync deletes, shared records, entity images, attachments, documents, and email sync.
- NoCleanup — Skip the cleanup step — do not delete local records that no longer match the sync filter after downloading.
- Select which entities or include (or exclude).
- Optionally, add triggers. A SmartSync profile can execute when the app starts, when a record changes, or periodically. You can also initiate SmartSync from outside of the trigger, see Executing a SmartSync profile.
Managing exclusion lists
In some scenarios, designing a blacklist of excluded entities is more effective than a whitelist. SmartSync profiles work with three exclusion lists:
- Manually excluded entities, i.e., you select which entities to omit
- Global exclusions
- Auto exclusions
Global exclusions and auto exclusions are similar concepts: Resco tries to identify possible entities that can be safely skipped. We are omitting stable entities (e.g., systemuser, team, territory) or enum-like entities (simple schema, rarely changes, few records).
The difference is where this check occurs.
- Global exclusion list is populated in Woodford by looking at the data model/metadata.
- Auto exclusion list is populated in Resco Mobile CRM by looking at the actual data and sync history.
By excluding such entities from SmartSync, you can save a few seconds when it matters most. Standard sync cycles (not the smart ones) still include them, but in general, it is not necessary to poll the server for a new currency every 60 seconds.
Executing a SmartSync profile
- Triggers included in the profile
- JavaScript
- Button
Things to remember
Just like automatic synchronization, SmartSync cannot start if:
- The mobile client is not configured to allow it
- There are unresolved sync errors
- The server requires authorization
- There have been too many recent connection failures
- The application is in a state that requires FullSync or AppUpdate.
SmartSync can be significantly faster than a regular synchronization run, but this comes with trade-offs:
- Some entities may be fresher than others.
- If cleanup is skipped, the user may continue to see records that should already be removed.
- There is a small risk that an entity classified as stable has actually changed.
Storage analyzer
A custom Storage analyzer report for SmartSync serves to...
Sync log
When inspecting synchronization in the log, you can identify SmartSync with a new line, immediately after the block about data/organization/user.
<SmartSync name='RefreshTasks'/>
Other than that, it is treated as a standard sync, except that some steps and entities (and the corresponding log entries) are excluded.
SmartSync.xml
The SmartSync configuration from Woodford is written to the SmartSync.xml file. Technical enthusiasts, such as senior support agents, can edit the file directly (Work with Resco app folder) to perform quick tests on their Windows devices.