Sync monitoring
Diagnose and manage OutboundSync Sync Monitoring Webhooks and events with the sync-monitoring Agent Skill — read-only by default, writes only after confirmation.
When to use: OutboundSync-emitted Sync Monitoring Webhooks —
sync.failed/sync.recovered, deliveries, replay, register an endpoint, rotate a signing secret. Not for SEP → OutboundSync Sources paste URLs (use Preflight). Product how-to: OutboundSync webhooks.
What it does
Section titled “What it does”sync-monitoring calls /api/v1/webhooks and /api/v1/events to diagnose Sync Monitoring health. Default is read-only. Creating, updating, deleting, rotating secrets, testing, or replaying requires an explicit confirmation of a one-line plan (method, path, effect). Vague asks like “set up webhooks” are not confirmation.
Requires an account-scoped API key for /webhooks* routes. Mutations also need the write scope. Prefer API for vocabulary/bootstrap and Preflight for launch Sources wiring.
Try saying this
Section titled “Try saying this”Are my OutboundSync Sync Monitoring webhooks delivering sync.failed events?
I’ll run a read-only health gauge across endpoints, deliveries, events, and the last 7 days of CRM sync errors. If something needs a register, re-enable, or replay, I’ll show a Proposed change and wait for your yes.
What you’ll get
Section titled “What you’ll get”- A healthy / needs attention / unverified verdict
- A status gauge across access, endpoints, deliveries, events, and CRM sync errors (last 7 days)
- One card per area — auto-disabled endpoints, undelivered events, and failed deliveries called out
- A Next list, and a stop-for-confirm Proposed change before any write
- Signing secret shown once on create/rotate (store immediately; never re-logged)
Sample output
Section titled “Sample output”The endpoint carrying sync.failed auto-disabled, so alerts stopped while CRM sync errors piled up. Illustrative data — more states in examples.md.
## Sync Monitoring needs attention
```textOverall ████████░░░░░░░░░░░░ 2/5 · needs attention
Access ████████████████████ ✓ readyEndpoints ░░░░░░░░░░░░░░░░░░░░ ✗ none healthy cover sync.failedDeliveries ████████████████████ ✓ 25/25 okEvents ██████████████░░░░░░ ✗ 18/25 deliveredCRM syncs ███████████████████░ ✗ 1,216/1,277 ok · 7 days```
### Access`account-scoped · read+write`
- ✓ Account-scoped key with platform webhooks on
### Endpoints`2 of 20 registered`
- ✗ oswhk_7Qm2… · hooks.example.com · sync.failed, sync.recovered · auto-disabled 2026-09-24- ✓ oswhk_Lp90… · alerts.example.org · sync.recovered · active
### Deliveries`last 25 attempts per active endpoint`
- ✓ oswhk_Lp90… · 25/25 ok · last SUCCEEDED 204 3h ago
### Events`last 25 events`
- ✗ 7 undelivered — newest osevt_c81f… sync.failed 40m ago
### CRM syncs`2026-09-21 → 2026-09-28`
- ✗ 61 errors — sync.failed fires on the first auth/billing error, else after 3 in a row per source × connection · 12 benign skips
### Next1. Fix the receiver at hooks.example.com (it returned 5xx before auto-disabling), then re-enable it `update_webhook oswhk_7Qm2… isActive=true`2. Replay the 7 undelivered sync.failed events once it is back (7 `replay_webhook_delivery` calls, proposed one by one)3. Inspect the failing CRM syncs with the api skill: `list_syncs status=error` for the same windowGet started
Section titled “Get started”- Account-scoped
$OUTBOUNDSYNC_API_KEY(Creating API keys), or connect OutboundSync MCP with that same key (webhook tools still 403 on connection-scoped keys). Ask support forwriteif you need mutations. - Install:
npx skills add outboundsync/skills --skill sync-monitoring -gSecurity and confirm protocol: skills/sync-monitoring/ · SECURITY.md.