Models on the client represent server records. In Mobile Sync, model objects are instances of Force.SObject, a subclass of the Backbone.Model class. SObject extends Model to work with Salesforce APIs and, optionally, with SmartStore.

You can perform the following CRUD operations on SObject model objects:

  • Create
  • Destroy
  • Fetch
  • Save
  • Get/set attributes

In addition, model objects are observable: Views and controllers can receive notifications when the objects change.

Force.SObject adds the following properties to Backbone.Model:


Required. The name of the Salesforce object that this model represents. This value can refer to either a standard object or a custom object.


Required. Names of fields to fetch, save, or destroy.


Offline behavior.


Conflict handling behavior.


For updatable offline storage of records. The Mobile Sync comes bundled with Force.StoreCache, a cache implementation that is backed by SmartStore.


Contains original copies of records fetched from server to support conflict detection.

You can assign values for model properties in several ways:

  • As properties on a Force.SObject instance.
  • As methods on a Force.SObject sub-class. These methods take a parameter that specifies the desired CRUD action (“create”, “read”, “update”, or “delete”).
  • In the options parameter of the fetch(), save(), or destroy() function call.

For example, these code snippets are equivalent.