Only-dirty loads
By default a load only pushes records that have pending changes — records that were just transformed, or that previously failed to load. The only-dirty toggle in the Start run modal controls this.
| Toggle | Behavior |
|---|---|
| On (default) | Skip records that haven’t changed since their last successful load. The fast path. |
| Off | Re-push every record regardless. Forces a re-send for the whole catalog. |
When to keep it on
Almost always. Re-runs after a partial failure, scheduled syncs after a fresh extract, and small mapping fixes all benefit from skipping the records whose payload didn’t change.
When to turn it off
- You changed the conflict strategy and want to apply the new decision to every existing record.
- You suspect Shopify state drifted (someone edited records by hand in admin) and want Graftport’s view to win across the board.
- You’re rolling back to a prior mapping version and want every record to reflect that version’s output.
Re-pushing the whole catalog is rate-limited by Shopify and proportional to size — for large catalogs this can be slow. Plan accordingly.
Field filter (advanced)
In the Start run modal, the field filter lets you push only a subset of fields per resource (e.g. only re-push prices on products). This is independent of only-dirty: even with only-dirty on, the field filter narrows which fields get sent on each updated record.
The existing field filter retains some identity-related fields from the migration, including product titles, handles and options. These may overwrite later Shopify edits. It also creates new records with their full mapped values.
For strict metafield updates after a migration, use Metafields in Update only the fields I pick. Select only Metafields to update existing Shopify records without sending other mapped fields. An optional key list narrows which mapped metafields are updated.