2026-05-28-prevent-broken-sync-mappings

Field mapping warns you before a sync silently misfires

Field mapping warns you before a sync silently misfires

Coverage warnings on your identity field

Pick the wrong identity field and the destination ends up with duplicate records or empty profiles. The sync form now checks the fill rate of whatever source field you mapped to your identity. If too many source records leave that field blank, you get an inline warning that explains the impact, suggests a better-covered alternative from your source schema, and asks for an explicit confirmation before you save. The same hint shows up on the fill-rate badge so it stays visible after the sync is created.

  • Identity field coverage is evaluated against the source's actual field stats, not just type metadata

  • Low-coverage warnings recommend a specific replacement field when one exists

  • The create and edit forms both block on confirmation, so a low-coverage identity choice is always an intentional one

Read-only destination fields are now disabled in the mapping

When you pick a destination field that the target system marks as read-only, the dropdown now grays it out and the row shows a warning border. You stop wasting a run discovering that HubSpot, Stripe, or your CRM was never going to accept writes into that column. Read-only fields that the destination still allows as identity matchers stay selectable.

  • Read-only destination fields appear disabled, with a label explaining why

  • Mappings that already exist on a read-only field surface a warning so you can fix them

  • Identity matching against read-only fields still works where the destination supports it

Picking syncs for a schedule got faster

The schedule form replaced its single autocomplete with a grouped picker. Syncs are organized by source integration, each group can be collapsed or selected as a whole, and a search box filters across names and integration types. Schedules with five or more source integrations auto-collapse groups that have nothing selected, so a hundred-sync account stays scannable.

  • Toggle all syncs from one source with a single group checkbox

  • Selected syncs persist visibly at the top while you filter the rest

  • The picker prefetches integration metadata for every sync you might select, so labels and icons load instantly

Jump from a sync's health stats to the run that broke

The last-run chip on the sync health card is now a link to that exact run's detail page. When a sync goes yellow or red, one click takes you to the run that failed instead of the runs list. Healthy chips stay visual-only.

  • The chip routes to /sync/{id}/runs/{runId} for the most recent run

  • Color and status text remain identical, so existing scanning patterns still work