How do I know when a sync is complete?
We recommend using the sync-status
endpoint to check when your sync has finished. By creating a set of functions in your backend that are responsible for syncing data you ensure you are getting complete data and don't hit rate-limits! An example workflow could involve:
Sync periodically (aka polling)
Configure your backend to call your sync functions periodically, such as every 24 hours.
Sync when Merge emits a Sync Notification Webhook
Merge offers a variety of webhooks for real-time events. To be alerted to when Merge may have data updates, configure Merge to notify you via webhook when Merge has completed syncing with a third-party platform for a linked account. Whenever you receive a Sync Notification Webhook, initiate the logic you configured in Step 1. We recommend using a combination of our "First Sync Notification" and "Any Sync Notification" webhooks to help you manage your sync activities at scale.
When you set up the linking flow, make sure to configure sync-status
to set up a trigger so you don't make any API calls before the sync is finished.
The list of sync statuses can be found below!
DONE — Merge has successfully completed syncing data for all fields in this model
PARTIALLY_SYNCED* — Merge has failed to sync at least 1 field in this model
SYNCING — Merge is actively syncing data, or syncs are queued up for this model
FAILED — Merge has failed to sync ALL fields in this model
PAUSED — Syncing for this account has been paused
DISABLED — Disabled due to scopes
*Merge will try to sync these missing fields on the subsequent sync
How frequent are Merge syncs to third-parties?
You can find our sync frequencies for specific integrations on our docs page! Select an integration (for example BambooHR) and then select "Common Model Sync Frequencies"!
How long does a sync take?
The length of time an integration can take to sync varies across platforms.
Some integrations return a list of IDs, requiring us to make N requests for all objects, resulting in a longer sync time. Data can be pulled through a list endpoint for other platforms, so the sync time is significantly shorter!
Another factor that affects sync duration is the volume of data being pulled from the platform. Some integrations will have millions of rows of data, while others will have only a few hundred. If you're linking an account you know has a large amount of data, you should expect longer sync times.
Additionally, the type of sync will also change sync times dramatically:
Initial Syncs - All initial syncs (i.e., when the account is first connected) will take significantly longer than subsequent syncs because Merge pulls all data available in a platform
Subsequent Syncs - For most third-party platforms, all subsequent syncs only pull changes since the last sync. This means sync times will be dramatically lower than an initial sync and usually just a few seconds long.
What does the "Next Sync Start" mean?
You may have noticed a "Next Sync Start" column on the linked account page on our dashboard! This is an estimate of when the next sync will begin for that specific linked account based on a variety of factors including your sync frequency schedule!
The Next Sync Start does not always get updated in real-time and may show a date/time in the past. Merge will always complete the current sync before starting the next one so there will never be a situation where the next sync will cause the current sync to fail or start over!