Appearance
Fresh 2026
Data Sync Flow
How Merge keeps normalized Common Model data current and how you consume changes incrementally.
Merge syncs data from the third-party platform on a schedule, normalizes it into Common Models, and exposes it through list endpoints. You pull changes incrementally with modified_after and react in real time with webhooks.
flowchart TD
A[Linked Account connected] --> B[Initial full sync]
B --> C[Common Models populated]
C --> D{New change at source?}
D -- Scheduled sync --> E[Merge re-syncs on cadence]
E --> F[Data normalized + diffed]
F --> G[Webhook fired: changed data]
G --> H[Your app: GET with modified_after]
H --> I[Process only changed records]
I --> D
D -- Force needed --> J[POST /sync-status/resync]
J --> EPatterns
- Incremental syncing. Store the timestamp of your last successful pull. On the next pull pass
modified_after=<timestamp>so you only receive records changed since then, instead of re-fetching everything. See Syncing Best Practices. - Webhooks. Subscribe to change events so your app is notified the moment Merge detects new or updated records, rather than polling. See Webhooks.
- Sync frequency. How often Merge re-syncs depends on the integration and your plan tier. See Sync Frequency.
- Force a resync. Trigger an on-demand sync with the resync endpoint when an end user expects immediate freshness.
Why incremental matters
| Approach | Cost | Freshness | Use when |
|---|---|---|---|
| Full re-fetch | High | Snapshot | First load only |
modified_after polling | Low | Near real time | Default |
| Webhooks | Lowest | Real time | Event-driven apps |