2026-05-18-api-errors-and-live-activity
See exactly which API errors broke a sync and what to do about them
Sync runs that hit destination API errors now show a dedicated "API Errors" tab on the run detail page. Errors are grouped by code, so a hundred "unauthorized" responses collapse into a single entry with the right next step instead of a flat log to scroll. Each group tells you whether the failure needs you (expired credentials, missing scopes, plan limits) or is being retried automatically, and links straight to the integration, billing, or sync settings page where you can fix it.
New "API Errors" tab appears when a run has any destination errors, with a count badge so you spot it without opening the run
Errors carry a human-readable message instead of a raw status code, plus first-and-last occurrence times so you can correlate with destination outages
Action-required errors surface a "Go to integration settings" or "Go to billing" link inline — no hunting through nav
Transient errors (rate limits, timeouts) are marked as retrying and don't get treated as failures unless they exhaust attempts
Watch profiles flow through a sync as it runs
The run detail page now has a live activity feed that streams each profile result as it lands, with a colored chip per operation (added, updated, deleted, rejected, failed). Click any row to expand and see the exact field changes the sync wrote to the destination. The feed pulses while a run is in progress and stops on its own when the run finishes.
New row animation when a result arrives, so you can tell at a glance that the sync is moving
Inline field-change view shows old and new values per property, not just "updated"
Operation totals update live next to the feed, so you don't have to refresh to see counts climb
Works on every sync, regardless of source or destination
Create a record type without leaving the sync wizard
Setting up a new sync from your unified profile no longer dead-ends if the record type you need doesn't exist yet. A dropdown at the source-record-type step now lets you create a new record type inline, and the wizard remembers the choice so you don't lose the rest of your setup. If the new type isn't person-like or company-like, the settings page now follows up with a prompt to link it to an existing record type so it shows up on profile pages.
Inline record type creation lives in the same dropdown you were already using
Plan limits are checked before the create, so you don't hit an error after filling out the form
A post-creation prompt offers to set up a relation field to Person or Company for non-merging types
Form state survives the create, so a wrong dropdown click no longer means starting over
Launch a sync from any segment or profile view
The Segments page and the Unified Profiles page now have a "Create Sync" entry point. Pick a segment, open the action menu, and the sync wizard opens prefilled with your unified profile as the source, the matching record type, and the segment already attached as a filter. The Segments table also shows the destinations a segment is already syncing to, with icons for each connected tool.
Action menu on each segment offers "Create Sync" with the segment ID, record type, and source preselected
"Create Sync" button on the Unified Profiles page picks up your current record type and segment filter
Disabled with a tooltip when you have no destination integration connected, so the call-to-action stays honest
New Destinations column on the Segments table shows which integrations a segment already feeds
Richer sync progress with sub-operations and an ETA
The step tracker on a running sync now breaks out a "Writing to Destination" step with a progress bar and an estimated time remaining. Each step also surfaces its sub-operations as you go, so you can see what the sync is actually doing inside a step instead of staring at a spinner.
Progress bar fills during the writing step and shows a rough ETA in seconds or minutes
Sub-operation lines appear under the active step (preparing batches, detecting changes, applying writes)
"Writing to Destination" is now its own step in the timeline instead of being folded into "Finalizing"
Works for every sync that touches a destination, not just specific integrations
Smaller improvements
Unified profile lists can now be sorted by number of connected sources, not just last update time
Integration lists in the sync wizard default to most-recently-created first, with your unified profile pinned to the top
Plain integration now supports tenants as a syncable record type, so you can push company-level data into Plain
The row-limit toggle in sync settings switched to a Switch control with a clear input for the cap, replacing the older checkbox-plus-text-field combo