Skip to main content

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

ConnectorCategorySync Entities
WordPressCMS / Data SyncArticles, Members, Events, Conferences, Documents, Companies, Notifications
HubSpotCRMContacts (coming soon)
SalesforceCRMContacts (coming soon)
Microsoft Dynamics 365CRMMembers / Financials (coming soon)
MailchimpMarketingSubscriber lists (coming soon)
SlackNotificationsAnnouncements (coming soon)
Most clients use WordPress

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)

  1. Trigger — A sync is triggered manually by an admin clicking Run Sync, or automatically by the scheduler at the configured interval
  2. Job created — A SyncJob record is created with status PENDINGRUNNING
  3. Ping — The backend calls /api/v1/sync/ping on your WordPress site to verify connectivity
  4. Entity phases — Each entity type is fetched in pages of up to 200 records using ?page=1&per_page=50
  5. Incremental filtering — For scheduled syncs, the ?since=<ISO-8601> parameter is added so only changed records are fetched
  6. Upsert — Each record is matched by its externalId (WordPress post/user ID). New records are created; existing records are updated if changed
  7. Per-record logs — Every record results in a SyncLog entry: CREATE, UPDATE, SKIP, or CONFLICT
  8. Job complete — The job is marked COMPLETED (or FAILED if a critical error occurred), and nextSyncAt is calculated based on your sync interval

Sync Job Types

TypeWhen usedWhat it does
INITIAL_IMPORTOne-time, first runFetches ALL records regardless of date; marks connector as initialised
FULL_SYNCManual triggerFetches ALL records; overwrites if changed
INCREMENTALScheduled runsFetches only records modified since the last sync
REAL_TIMEWebhook-based (future)Event-driven per-record update

Connector Status

StatusMeaning
ACTIVEConnector is running normally; scheduled syncs are enabled
PAUSEDConnector exists but scheduled syncs are disabled
ERRORLast sync failed; manual intervention needed
DISABLEDConnector 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 sites
  • 60 — hourly, suitable for most associations
  • 1440 — 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:

  1. Log in to the Admin Dashboard
  2. In the left sidebar, click Connectors
  3. The Integration Hub shows all available and connected integrations

Platform admins (super admin):

  1. Go to Platform → Connectors
  2. View and manage connectors across all organisations