Incremental sync
In addition to the full resync, some integrations support incremental sync. It runs in parallel to the full resync, on a shorter interval than a typical full resync. Instead of fetching all data from the third-party source, it fetches only what was created or updated since the last run.
When a new incremental sync starts, Port aborts any in-progress incremental sync for that integration, but does not abort a full resync or apply mapping run happening in parallel. See Sync interactions for details.
Note that incremental sync complements live events - it backfills changes that webhooks might miss, while the full resync still handles reconciliation.
Incremental sync reuses the same mapping as the full resync, but only for the kinds that support it. Any other kind in your mapping is skipped by incremental sync and continues to be kept up to date by the full resync.
Enable incremental sync
For Port-hosted integrations: toggle incremental sync and set the interval in the Advanced Configuration section on the connectors page.
For self-hosted integrations: configure incremental_sync_enabled and incremental_sync_interval in the integration settings. In both cases the interval must be 15, 30, or 60 minutes. The default is 15 minutes.
For the list of kinds that support incremental sync for each integration, see the relevant section in that integration's page, for example GitHub (Ocean).
Limitations
- There is no reconciliation phase in incremental sync. Deletions are only detected and applied during a full resync.
- Incremental sync runs are not yet shown in the event log or the monitoring and sync status view in the UI. For API-based monitoring, use the endpoint family for your integration's pipeline as described below.
- The first incremental run only looks back one interval - older changes rely on the preceding full resync.
Retrieve incremental sync data
For integrations on the legacy pipeline, use get an integration's metrics and sync status and get an integration's event logs.
For integrations on the data source processor (DSP) pipeline, the legacy /v1/integration/{integrationInternalId}/syncMetrics and /syncsMetadata routes do not return DSP sync data. Empty results are expected even with a valid integration _id; they do not establish that no incremental sync ran.
-
Call
GET /v1/events/integrationInternalId/{INTEGRATION_INTERNAL_ID}/syncsMetadata?type=INCREMENTAL_RESYNCto list recent incremental syncs. Each entry includes itscorrelationId,status,type, and creation timestamp (createdAt). -
Use the selected sync's
correlationIdinGET /v1/events/integrationInternalId/{INTEGRATION_INTERNAL_ID}/correlationId/{CORRELATION_ID}/metricsto retrieve its status and per-kind metrics.
Use your integration's _id for {INTEGRATION_INTERNAL_ID}. See retrieve sync data through the API for permissions and response differences to account for when migrating your automation.