Monitoring & Managing Syncs
This page explains how to watch, control, and understand sync operations from the Admin Dashboard.
Connector Detail Page
Navigate to Connectors → [your connector name] to open the detail page. It has three tabs:
| Tab | What it shows |
|---|---|
| Overview | Status, statistics, last/next sync, action buttons |
| Sync History | Table of all sync jobs |
| Settings | Edit connector configuration |
Running a Sync Manually
From the Overview tab:
| Button | What it does |
|---|---|
| Run Full Sync | Fetches ALL records from WordPress (no date filter) |
| Run Initial Import | One-time bulk import (only available before the first import) |
| Test Connection | Runs the 5-step diagnostic without syncing |
The page auto-refreshes every 4 seconds while a job is PENDING or RUNNING.
Sync Job Statuses
| Status | Meaning |
|---|---|
PENDING | Job is queued, waiting to start |
RUNNING | Actively fetching and importing records |
COMPLETED | All entity phases finished (some records may have had errors — check logs) |
FAILED | A critical error stopped the job before completion |
CANCELLED | Manually stopped |
A job marked COMPLETED does not mean every record succeeded. Always check the per-entity logs for individual failures.
Reading Sync Job Logs
Click any sync job row in the Sync History table to open the per-entity logs. Each row shows:
| Column | Description |
|---|---|
| Entity type | article, member, event, document, conference, company, notification |
| External ID | The WordPress post ID or user ID |
| Internal ID | The platform UUID assigned to this record |
| Operation | CREATE (new), UPDATE (changed), SKIP (unchanged), SYNC (push to source) |
| Status | SUCCESS, FAILED, SKIPPED, CONFLICT |
| Error details | Full error message if status is FAILED |
| Processed at | Timestamp |
Common log statuses
SKIPPED — The record exists in the platform and the content hash matches WordPress — no update was needed. This is expected and normal for incremental syncs.
FAILED — The record could not be imported. Common reasons:
- Required field is missing (e.g. article with no title)
- Duplicate slug conflict
- Invalid date format in event start/end times
- Image download failed (if image mirroring is enabled)
CONFLICT — The platform record has been modified more recently than the WordPress record. By default, the platform record wins (WordPress data is not overwritten).
Activity Log
The Activity panel shows a unified feed of all sync events across all jobs, ordered newest first. Use this for a quick overview of what has changed recently.
Audit Log
The Audit Log panel tracks who made changes to the connector configuration itself:
| Action | When recorded |
|---|---|
CREATED | Connector was first created |
UPDATED | Connector settings changed (shows field-level diff) |
DELETED | Connector was deleted |
PAUSED | Connector was paused |
RESUMED | Connector was resumed |
SYNC_TRIGGERED | A sync was manually triggered (shows who triggered it) |
Schedule Information
The Overview tab shows:
- Last sync at — When the most recent sync completed
- Next sync at — When the scheduler will run next
- Seconds until next sync — Live countdown
The scheduler checks for due connectors at regular intervals and automatically triggers an INCREMENTAL sync when nextSyncAt is in the past.
Connection Diagnostics
Click Test Connection to run a 5-step diagnostic without syncing:
| Step | What is checked |
|---|---|
| 1. HTTP reachable | Platform can open a TCP connection to your WordPress URL |
| 2. REST API root | /wp-json returns a valid WordPress REST API response |
| 3. Plugin installed | The Association App plugin endpoints are registered |
| 4. API key valid | GET /api/v1/sync/ping returns 200 with the correct key |
| 5. Data available | At least one entity endpoint returns records |
Results are shown as green ticks (pass) or red crosses (fail) with a descriptive message for each step.
Mapping Diagnostics
The Diagnostic Panel also includes a Mapping Diagnostics check. It:
- Fetches one sample record from each enabled entity type
- Dry-runs the field mappings
- Reports field status for each field:
| Status | Meaning |
|---|---|
PRESENT | Field was found and mapped successfully |
MISSING | Field was expected but not present in the WordPress response |
DEFAULT_USED | Field was missing but a default value was applied |
INVALID | Field was present but could not be parsed (e.g. bad date format) |
Use this to catch mapping issues before running a full sync.
Pausing and Resuming
To temporarily stop scheduled syncs without deleting the connector:
- Pause: Connector → ⋯ menu → Pause Sync
- Resume: Connector → ⋯ menu → Resume Sync
When paused, status changes to PAUSED and the scheduler skips this connector. Manual syncs still work while paused.
Platform Admin View
Super admins can see all connectors across all organisations at Platform → Connectors.
The platform view shows:
- Total connectors (all orgs)
- Active / error / paused counts
- Unique organisations with connectors
- Filterable table: search by name, filter by status or connector type
- Click any row to drill into the connector detail (with org context)