Enable change tracking on the target Dataverse table in the Power Apps maker portal (Table settings > Auditing/Change tracking toggle) — this is a prerequisite for the API to return delta links.
Issue the initial request with the Prefer: odata.track-changes header: GET https://<org>.crm.dynamics.com/api/data/v9.2/<entitySetName>?$select=<fields> with the Prefer header; the response returns all current records plus an @odata.deltaLink in the last page of results.
Store the @odata.deltaLink value (which contains a $deltatoken query parameter); use it for all subsequent change-polling requests.
On each polling cycle, GET the full deltaLink URL; the response contains only records that were created, updated, or deleted since the token was generated.
Deleted records are identified by the @odata.context annotation containing #deleted and a record body with the primary key and a reason field ('deleted' or 'changed').
After processing each delta response, capture the new @odata.deltaLink from the response to use in the next cycle; do not reuse old tokens.
Known gotchas
Delta tokens do not expire on a fixed schedule but can become invalid if the underlying Dataverse database undergoes maintenance or a full re-index — handle the 410 Gone response by falling back to a full initial sync and generating a new delta link.
Change tracking only surfaces changes to the fields selected at the time of the initial request; adding a new $select field to a delta request mid-cycle may not capture changes to that field that occurred before the change was tracked.
The Prefer: odata.track-changes header must be included on the initial full-data request to get the first delta link — subsequent requests using the deltaLink URL do not need to re-add this header as it is embedded in the token.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp