Synchronization Overview
Skyvia synchronization operation is used to synchronize data between cloud applications and relational databases in both directions. It allows configuring a synchronization operation as a package only 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 or not the records in sources are identical — it 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 do not 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 were 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 do not 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. Columns with the same names and data types in source and target are mapped automatically.
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 about when the object was created and last modified.
For synchronizing cloud CRM data (Salesforce, Dynamics 365, SugarCRM, or 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 will be 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: