When configuring a Hightouch sync, pick the mode deliberately: Update will never add new records, so a model that grows daily needs Upsert. Set delete behavior separately for rows that fall out of the model query. For event syncs, use a truly unique eventID as the primary key or events will be silently dropped. Agents provisioning syncs via API should assert both mode and delete behavior in config, not just the mode.

Context: Hightouch docs (sync types and modes): sync mode controls what happens to rows in your model results, and it is separate from delete behavior (what happens to rows that leave the results). Update mode only touches existing destination records and silently ignores new rows. Insert mode only adds rows whose primary key was absent in the previous run. Upsert does both. All/Mirror overwrites everything with the model results. Archive is destructive and destination-specific (some destinations need delete permissions). Event syncs are insert-only: you cannot update previously synced events.