Connector System — Overview
The Connector system lets your Association App platform pull data from external systems — such as your existing WordPress site — and keep it in sync automatically. It is the bridge between your old system and your new platform.
What a Connector Does
A connector is a configured link between your platform organisation and an external data source. Once set up, it can:
- Import all your existing data in a one-time bulk migration
- Keep data in sync on a schedule (e.g. every 15 minutes) or on demand
- Track every change with a full audit trail
- Show you exactly what happened with per-record sync logs
Supported Connectors
| Connector | Category | Sync Entities |
|---|---|---|
| WordPress | CMS / Data Sync | Articles, Members, Events, Conferences, Documents, Companies, Notifications |
| HubSpot | CRM | Contacts (coming soon) |
| Salesforce | CRM | Contacts (coming soon) |
| Microsoft Dynamics 365 | CRM | Members / Financials (coming soon) |
| Mailchimp | Marketing | Subscriber lists (coming soon) |
| Slack | Notifications | Announcements (coming soon) |
If you are migrating from a WordPress site with the Association App WordPress Plugin installed, see the WordPress Connector guide and the Migration Guide.
Architecture
┌─────────────────────────┐ PULL (INBOUND) ┌─────────────────────────┐
│ WordPress Site │ ◄──────────────────────── │ Association App │
│ (with plugin) │ │ Backend │
│ │ GET /api/v1/sync/articles │ │
│ Sync REST API │ GET /api/v1/sync/members │ ConnectorService │
│ - /sync/articles │ GET /api/v1/sync/events │ WordPressSyncService │
│ - /sync/members │ GET /api/v1/sync/documents │ ArticleSyncer │
│ - /sync/events │ GET /api/v1/sync/companies │ MemberSyncer ... │
│ - /sync/documents │ X-Association-Sync-Key │ │
│ - /sync/conferences │ │ Scheduler (auto-sync) │
│ - /sync/companies │ │ │
│ - /sync/notifications │ └────────────┬────────────┘
│ - /sync/ping │ │
└─────────────────────────┘ │
▼
┌─────────────────────────┐
│ Admin Dashboard │
│ │
│ Connectors → Setup │
│ Connectors → Monitor │
│ Connectors → Logs │
└─────────────────────────┘
How sync works (step by step)
- Trigger — A sync is triggered manually by an admin clicking Run Sync, or automatically by the scheduler at the configured interval
- Job created — A
SyncJobrecord is created with statusPENDING→RUNNING - Ping — The backend calls
/api/v1/sync/pingon your WordPress site to verify connectivity - Entity phases — Each entity type is fetched in pages of up to 200 records using
?page=1&per_page=50 - Incremental filtering — For scheduled syncs, the
?since=<ISO-8601>parameter is added so only changed records are fetched - Upsert — Each record is matched by its
externalId(WordPress post/user ID). New records are created; existing records are updated if changed - Per-record logs — Every record results in a
SyncLogentry:CREATE,UPDATE,SKIP, orCONFLICT - Job complete — The job is marked
COMPLETED(orFAILEDif a critical error occurred), andnextSyncAtis calculated based on your sync interval
Sync Job Types
| Type | When used | What it does |
|---|---|---|
INITIAL_IMPORT | One-time, first run | Fetches ALL records regardless of date; marks connector as initialised |
FULL_SYNC | Manual trigger | Fetches ALL records; overwrites if changed |
INCREMENTAL | Scheduled runs | Fetches only records modified since the last sync |
REAL_TIME | Webhook-based (future) | Event-driven per-record update |
Connector Status
| Status | Meaning |
|---|---|
ACTIVE | Connector is running normally; scheduled syncs are enabled |
PAUSED | Connector exists but scheduled syncs are disabled |
ERROR | Last sync failed; manual intervention needed |
DISABLED | Connector is turned off |
Key Concepts
External ID
Every record synced from WordPress keeps its original WordPress ID stored as an externalId. This is how the platform knows whether to create or update a record on subsequent syncs. It also means sync is idempotent — running it twice will not create duplicates.
Sync Direction
The WordPress connector is INBOUND — data flows from WordPress into the platform. The platform does not write back to WordPress except for a limited set of fields (member profile updates and event fields via PUT /sync/members/{id} and PUT /sync/events/{id}).
Sync Interval
Set the interval in minutes when creating the connector. Common values:
15— near-real-time for active sites60— hourly, suitable for most associations1440— once per day (low-activity sites)
Set to 0 or leave blank to disable auto-sync (manual only).
Where to Find Connectors in the Dashboard
Organisation admins:
- Log in to the Admin Dashboard
- In the left sidebar, click Connectors
- The Integration Hub shows all available and connected integrations
Platform admins (super admin):
- Go to Platform → Connectors
- View and manage connectors across all organisations