Synchronization Overview
Synchronization integration performs bi-directional synchronization between two data sources: cloud applications or relational databases.
Skyvia allows you to synchronize data with different structures while preserving all data relationships. It provides advanced mapping settings to configure the synchronization process and supports data splitting, allowing you to map a single table to multiple related tables or objects and vice versa (one-to-many). Skyvia goes beyond basic column-to-column mapping by offering powerful mathematical and string expressions for advanced data transformation during synchronization.
How Synchronization Works
Synchronization keeps data between two data sources consistent by applying changes in both directions. It works best when records in the data sources don’t overlap or when one of them is empty before the first synchronization.
If you only need to sync data in one direction, use Import instead.
First Synchronization
When you run Synchronization for the first time, Skyvia copies data from Source to Target and vice versa, without checking if the data is identical. After copying, Skyvia creates an ID map and links the original records to their copies, and will be able to detect changes between both data sources in the next runs.
To avoid creating duplicates, we recommend leaving one of the data sources empty for the first Synchronization.
Next Synchronizations
If a record is added, modified, or deleted in one of the data sources, Skyvia will sync these changes to other data sources in the next run. You don’t need to add custom external ID fields or use textual IDs for Synchronization to work: ID map remembers how data corresponds between sources.
When performing synchronization repeatedly, Skyvia synchronizes only the data that has changed since the previous synchronization. It uses timestamp fields in cloud applications to track when records are created or modified and creates special tracking tables and triggers in relational databases to monitor data changes. However, certain objects in some cloud applications do not have these timestamp fields, so synchronization is not supported for those objects.
Synchronization Mapping Specifics
In Synchronization integrations, you must configure mapping for both directions: Source to Target, and Target to Source. Columns with the same names and data types in Source and Target are mapped automatically.
You can assign a сonstant value to a field for one-way synchronization and use the same constant to filter data in the opposite direction. You can see more information in the Constant Mapping topic.
Requirements and Recommendations
- To synchronize database data, the primary key columns in the database tables must be autogenerated.
- Cloud objects must support the INSERT and UPDATE operations and have the UpdatedDate or CreatedDate fields.
- If you want to synchronize cloud CRM data (Salesforce, Dynamics 365, SugarCRM, or Zoho CRM), we recommend to create a dedicated CRM account exclusively for synchronization, that will not be used for any other actions. Check out the Dedicated Account section here to learn more.
Change Conflicts
When a record is modified both in Source and Target, Skyvia will 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.
For example, we have a Contact record with the following values:
Field | Value |
---|---|
First Name | John |
Last Name | Doe |
john.doe@example.com | |
Phone | 123-456-7890 |
- Source Change: The Email field is updated to
john.new@example.com
. - Target Change: The Phone field is updated to
987-654-3210
.
During the next synchronization run:
- Source changes to the Email field are synced to the target.
- Target changes to the Phone field are completely discarded.
After synchronization, the record will be as follows in both systems:
Field | Value |
---|---|
First Name | John |
Last Name | Doe |
john.new@example.com | |
Phone | 123-456-7890 |
Synchronization Tutorials
See our tutorials to learn more about data synchronization: