2026-05-18-api-errors-and-live-activity

Categorized API errors, a live activity feed, and faster sync setup from segments

Categorized API errors, a live activity feed, and faster sync setup from segments

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