Synchronization Overview

Skyvia synchronization operation is used to synchronize data between cloud applications and relational databases in both directions. It allows defining a synchronization operation as a package once, and then scheduling it for periodical execution to keep the data in different sources in sync automatically.

Skyvia allows you to synchronize data having different structure while preserving all data relations and provides powerful mapping settings for configuring the synchronization operation.  It supports data splitting - mapping a single table to several related tables/objects and vice versa (one-to-many). Skyvia synchronization does not limit you to simple column-to-column mapping. Skyvia allows using powerful mathematical and string expressions when mapping data.

How Synchronization Works

A Synchronization package synchronizes data between a source and a target in both directions. When synchronization is performed for the first time, it does not check whether the records in sources are identical and simply copies data from one side to another and vice versa, and "maps" the original records to their copies in another source. During subsequent synchronizations, if a record is modified or deleted in one source, Skyvia modifies or deletes the data, mapped to this record in another source, and vice versa.

Skyvia builds the id map when inserting data, and remembers it, and when performing next synchronization, Skyvia knows how the records correspond to each other. You don't need to add custom external ID fields to cloud application objects or use textual IDs in your database.

When performing synchronization repeatedly, Skyvia synchronizes only data that was changed since the previous synchronization. It uses the fields storing information about when a record was created and modified in cloud applications and creates special tracking tables and triggers in relational databases for data modification tracking. In some cloud applications, certain objects don't have such fields, and synchronization is not supported for these objects.

Synchronization Mapping Specificities

Note that when specifying synchronization mapping, you must specify mapping for both directions. Column mapping is reflected automatically; however, more complex mapping kinds aren't.

Additionally, the Constant mapping has a special feature for synchronization: ability to map a field to a constant for synchronizing data in one direction, and use this constant for filtering data when synchronizing the data in another direction. You can see more information in the Constant Mapping topic.

Requirements and Recommendations

For synchronizing database data, the primary key columns of the database tables must be autogenerated.

Synchronized cloud objects must have fields, storing information when an object was created and last modified.

For synchronizing cloud CRM data (except for Zoho CRM), it is recommended to use a dedicated cloud CRM account, that is not used for any other data update operations.

Resolving Change Conflicts

When a record is modified both in source and target, Skyvia will simply apply source changes to target, and all target changes are lost. They are lost even when different fields were changed in source and target. Skyvia does not track changes on per-field level.

Synchronization Tutorials

Skyvia provides the following tutorials on data synchronization:

Synchronizing Product Data - describes how to create a synchronization package that synchronizes a modified Products table from the Microsoft standard Northwind database on SQL Azure with Salesforce Product2 and PricebookEntry objects. Also demonstrates creating an Export package.
Synchronizing Zoho CRM Contacts with MailChimp Subscribers - describes how to create a Synchronization package that will keep MailChimp subscribers in a list and Zoho CRM contacts in sync.