Synchronization Package

Synchronization package is a specific kind of a package, which performs bi-directional data synchronization between cloud applications and relational databases.

Creating Package

To create a Synchronization package, perform the following actions:

1.Navigate to the Integration Packages page by clicking Integration in the menu on the left side of the page.
2.Click the New button.
3.Click Synchronization on the opened menu.
4.Optionally click the btn-edit-name Edit name button near the automatically generated package name (on this step it's "Sync Package") and specify the package name.
5.In the Source header click Select and specify the type of the source data storage. Then repeat the same with the Target header.
 
target-type-selection
 
Note: In Synchronization package the difference between the Source and Target is the following: in case of conflicts, source data changes have priority over the target data changes. If the same records was modified in both source and target between synchronizations, the source values are applied to the corresponding records in the target.
6.Select the Source Connection for the package. If you haven't created the source connection yet, click the New button and create a new connection (learn how).
 
select-source-salesforce-connection
7.Select the Target Connection
 
select-target-connection-sync-sql
8.If the source or target are cloud CRMs, and synchronization use a CRM account that is not used for any other data update operations, select the Dedicated [CRM] account for synchronization check box (where [CRM] can be Salesforce, Dynamics CRM, or SugarCRM). This check box means that this account is used only for the synchronization package, and changes, that are made by this account, are ignored by the synchronization.
 
If this check box is selected:
 
a) The first synchronization synchronizes all the data.
b) If users, other than the user specified in the synchronization package connection, make changes to application data during the synchronization operation or after it, these changes are synchronized in the next synchronization operation.
c) Any changes, performed by the user specified in the synchronization package connection are ignored. Skyvia assumes that this application user account is dedicated for the synchronization operation and does not perform any other data changes.
 
If this check box is not selected:
 
a) The first synchronization synchronizes all the data.
b) Any changes to CRM data performed during the synchronization operation are ignored. If other side is a relational database, all the changes to it performed during the synchronization operation are also ignored. It's highly recommended not to edit the data being synchronized during the synchronization operation.
c) Any changes, performed by the user specified in the synchronization package connection or any other user between the synchronization operations, are synchronized.
 
We recommend creating a dedicated cloud application account for the synchronization operation and selecting the Dedicated [CRM] account for synchronization check box.
 
 
dedicated-account
9.Click + Add task, and create a new Synchronization task (learn how).
10. Repeat the previous step until you create all the necessary Synchronization tasks.
11. Click the Save button.

If one of the data sources to synchronize is a relational database, Skyvia creates auxiliary tracking tables and triggers when you run synchronization for the first time. These tables and triggers are used for tracking data changes.

 

Synchronization Package Parameters

In Skyvia, Synchronization packages have the following two parameters.

 

Parameter

 

Description

LastSyncTime

The time since the last synchronization. When synchronization is executed, Skyvia sets this parameter to the current time, and the next package execution  will synchronize the changes made since the time, specified in this parameter. You can reset this parameter in order to reload all the data.

InitTrackingObjects

A Boolean value, determining whether to create tracking tables and triggers in the synchronized database. It is true before the first package run, when they are not created yet. Package execution sets it to false. You can reset it when you need to re-create the tracking tables and triggers in the database.

sync-parameters