Changelog

New features, improvements, and fixes.

A live sync dashboard, the Clay integration, and broader sync coverage

See your entire sync operation on one screen

The dashboard is now a live view of how your data is moving. The top strip answers the questions you actually ask: how many profiles synced, what share of runs succeeded, how many errors landed, what is running right now, and how fresh your data is from the last successful sync. Pick a record type and a time range, and everything below updates to match.

  • Track profiles synced, success rate, total errors, and live runs at a glance

  • Read a data-freshness indicator built from the last completed run across every sync

  • Chart sync activity and run health over time instead of guessing from a list

Spot failing syncs and group errors by cause

Below the headline numbers, the dashboard ranks your syncs by error count and breaks down every error by type across the whole organization. You see which sync is hurting and why in the same place, so you can go straight to the run that needs attention.

  • Find your top failing syncs ranked by error count for the period

  • Group org-wide errors by code to see whether one cause is behind most failures

  • Review recent runs, upcoming runs, and active alerts without leaving the page

Watch identity resolution and segments in context

The dashboard now surfaces how many duplicate profiles were merged and resolved in the period you are viewing, alongside a segments overview for the record type you picked. You can see the cleanup work happening on your data, not just the raw sync counts.

  • See recent merges and duplicates resolved for any record type

  • Check per-integration sync health in one table to compare your sources side by side

Sync records into Clay

You can now connect Clay as a destination and push records straight into a Clay table through its webhook source. Set up the webhook in Clay, paste the URL and auth token into the connection settings, and your synced records flow into the table you chose.

  • Send contacts and any other record type into a Clay table

  • Authenticate with a per-table webhook token so each table stays isolated

Broader sync coverage across your integrations

We extended what several integrations can do during a sync. Google Sheets now supports upsert with both replace and patch modes, so an existing row updates instead of duplicating. Auth0 can list organizations with filters, Autopilot can delete records, and product-analytics sources like PostHog expose group properties for mapping.

  • Upsert Google Sheets rows in replace or patch mode

  • Sync Auth0 organizations, not just users

  • Map group-level properties from product-analytics sources

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

Integration health checks, profile drill-downs, and list-property segments

Know when an integration breaks before your data does

Every integration now reports its own health. We check the connection on a schedule and surface the result as a status dot right in your integration list, so an expired API key or a revoked token shows up as a red dot instead of a string of silently failing syncs. Open any integration to see its full check history, or run a check on demand when you want an answer right now.

  • See healthy, warning, or error status at a glance across all your integrations

  • Read the exact error from the last failed check on the integration's Health tab

  • Trigger a manual health check anytime instead of waiting for the next scheduled run

  • Get alerted the moment a check fails with the new "Integration Health Check Failed" alert condition

Click any stat to see the profiles behind it

Dashboard and sync run numbers are now live links. Click "Total Profiles Synced" or "Total Errors" and you land on the matching sync runs, already filtered to the same date range. Hover a created or updated count on a run and you get a preview of the actual records, so you can confirm what moved without opening anything.

  • Jump from a dashboard stat straight to the runs that produced it

  • Filter sync runs by completion date and by error state

  • Preview the primary keys of created, updated, or failed records on hover

Build segments on list and multi-value fields

Segment conditions now understand properties that hold lists, not just single values. You can match profiles where a tags or roles field contains a specific value, or filter on whether a field has any value at all.

  • New operators: contains, not contains, is empty, is not empty

  • Target profiles by what's inside a multi-value property, like a tag or a role list

Sync your Chargebee subscription data

Chargebee is now a connected integration. Pull your subscription and customer data into unified profiles alongside everything else, with step-by-step setup for your site name and API key.

  • Connect Chargebee with a Full-Access API key

  • Expanded sync options across existing integrations, including list-based filtering, update jobs, and custom property creation on several connectors