# What is a Two-Way Sync?
# What is it?
Two-way synchronization (or bi-directional sync) is all about mirroring the data between two business tools. It means all newly created records in one app should be instantly (or near-instantly) created in the other one, and all updates of already existing records should be reflected in the records of the other app.
An ideal two-way sync maps common fields in a way that ensures the maximum amount of data is synced and avoids any loop updates between the tools or duplicate records being created.
# Why don't you just keep the data in one place?
Nowadays, taking advantage of modern cloud tools has become essential for any fast-developing business. CRM and ERP systems, accounting and email marketing tools, eCommerce platforms comprise only a small part of business inventory used by a regular company daily. And very often, you have to use multiple tools to achieve your daily tasks as efficiently as possible.
This is where data synchronization comes in. It reduces manual work that goes along with supporting multiple business tools and makes sure your data is always reliable and up to date.
A simple example of two-way synchronization is a very popular Google Calendar and Office 365 (Outlook) meetings sync.
For example, you might have a work calendar on Office 365 could, while your private calendar is on Google, and you'd like to see all meetings in both calendars.
The simplest version of two-way synchronization would map some basic meeting record fields like the subject, start time, end time, location, etc. In a more complex situation, it could include HTML descriptions, meeting attendees, custom fields, etc. And the ideal sync would also take into consideration recurring meetings, as well as exceptions to recurring meetings, modified or deleted occurrences, etc.
# Field mapping
Field mapping is the heart of any synchronization.
It defines what fields of data records should be taken into consideration, and in what way should they be mapped between each other.
In a simple field mapping you just select a number of common fields that represent exactly the same information and simply copy data between the two. That works fine until there's a slight difference between the fields. For example, the fields might have different limits on the text size. Or they might have different formats or time zones. Or one field might represent a price in dollars, and another in euros. Or they can perform some modifications to the data before being stored.
And those are just very simple examples. Often, to achieve a proper synchronization you might need to transforms records that are in quite different formats. That's why you need to make sure you have the proper tools to perform data transformation in a reliable way that covers all corner cases.
Any error or ambiguity in field mapping can lead to unpredictable results. It could also lead to a loop in synchronization, which is a situation where data records jump back and forth between apps because of updates applied to it. So having a proper field mapping is essential to a useful and reliable two-way sync.
# Sync architecture
Apart from field mapping, an important part of any synchronization is the architecture, i. e., how sync process is designed.
There are two popular ways to perform synchronizations:
- Data polling. A data source (e. g. Google Calendar meetings API) is periodically polled for any updates. Those updates usually describe what records have been created or updated since the previous sync. In some cases, you can also get the list of records that have been removed, so you can sync removals as well.
- Web-hooks. It is very similar to the previous type, but you don't check for updates every certain amount of time. Instead, you get notified by the apps of new updates, and then the sync is performed. It's a more effective way of doing synchronizations but, unfortunately, not too many tools support web-hooks.
We'll describe more about sync architecture and API access in a separate article soon.
# Why SyncPenguin?
SyncPenguin is a cloud service that does exactly that - provides two-way synchronizations between apps and their data, be it contacts, meetings, products, taks, etc.
We have a library of pre-built synchronizations that you can use right away. Those include some of the most popular business apps like CRMs, ERPs, eCommerce, marketing automation, etc. This library is constantly updated with new apps and synchronizations to make sure all the most popular connections are covered.
But for sure we haven't yet covered all cases. We also understand each customer might have their own idea of how synchronization should work so that it fits their business needs. That's why we've built a whole infrastructure around building and running synchronizations. This infrastructure allows us (or our customers) to build the most complex field mappings in no time, and then run and monitor them on our platform.
You can also integrate with SyncPenguin through our API to get native white-label integrations in your app, without any hassle.
Please contact us if you'd like to learn more about two-way synchronizations or request your custom sync to be built by SyncPenguin.