post-connection-surface-sync-statuslisted
Install: claude install-skill merge-api/merge-unified-skills
# Surface Sync Status to End Users
After a user connects, Merge runs an initial sync that can take minutes to hours depending on company size and the third-party's API rate limits. Without status visibility, users assume the integration is broken — this skill adds clear progress messaging and sets accurate expectations from the moment they connect.
## Prerequisites
`post-connection-build-settings-page` complete — a settings page must exist to render these banners.
## Before Proceeding
Three pieces of information are needed before generating any UI or backend code.
If invoked from `implementing-post-connection`, the first two were answered in Step 1 — use that context. Otherwise, gather them now:
- **Categories**: Which Merge categories will surface sync status? (`hris`, `ats`, `crm`, `accounting`, `ticketing`, `filestorage`, `knowledgebase`) — needed for the per-category `/sync-status` calls.
- **Frontend framework**: React, Vue, Svelte, or vanilla? Drives the banner component pattern.
- **`linked_accounts.initial_sync_complete` column**: present or missing? Required for the in-progress vs. complete branching. If missing, add it via migration before continuing.
Also briefly scan the frontend for an existing notification or banner system (look for `Banner`, `Notification`, `Alert`, `Toast` components) — if one exists, render the sync-status messages through it rather than introducing a new banner pattern.
## Implementation
Build three sync status UI states on the set