Skip to main content

WordPress Connector — Setup Guide

This guide walks you through connecting your WordPress site (with the Association App WordPress Plugin installed) to the new platform. By the end you will have a working sync that imports your existing content automatically.


Before You Begin

Make sure the following are in place:

RequirementHow to check
WordPress Plugin v1.2.0+ is installed and activeWordPress Admin → Plugins
Your WordPress site is publicly accessible over HTTPSVisit your site URL in a browser
Permalinks are set to Post nameWordPress Admin → Settings → Permalinks
You have the Sync API Key from the plugin settingsWordPress Admin → Settings → Association App

Get your Sync API Key

  1. Go to WordPress Admin → Settings → Association App
  2. Open the Sync tab
  3. Copy the Sync API Key — you will paste this into the connector wizard
  4. If no key exists, click Generate Key and save the page

Verify the plugin is accessible

Open your browser and visit (replace your-site.com with your domain):

https://your-site.com/api/v1/sync/ping

You should receive a 401 Unauthorized response. That is correct — it means the endpoint exists and is waiting for a valid API key. If you get a 404, go to Settings → Permalinks → Save Changes in WordPress Admin to flush the rewrite rules.


Step 1 — Open the Connector Wizard

  1. Log in to the Association App Dashboard
  2. In the left sidebar, click Connectors
  3. On the Integration Hub page, find WordPress in the available integrations list
  4. Click Connect on the WordPress card

This opens the 5-step setup wizard.


Step 2 — Basic Information

FieldWhat to enter
Connector NameA friendly name, e.g. My Association WordPress
OrganisationPre-filled with your current organisation

Click Next.


Step 3 — Authentication

FieldWhat to enter
WordPress Site URLFull URL of your site, e.g. https://your-association.com.au — no trailing slash
Sync API KeyThe key you copied from WordPress Admin → Settings → Association App
URL format

Use the exact URL your WordPress site is served from. Include https://. Do not add /wp-admin or any path suffix.

Click Test Connection to verify before continuing. You will see a 5-step diagnostic:

CheckWhat it verifies
HTTP reachableThe platform can reach your WordPress URL
REST API root/wp-json responds correctly
Plugin installedThe Association App plugin is active
API key validThe key matches what is stored in WordPress
Data availableAt least one sync endpoint returns data

All five checks must pass (green tick). Fix any failures before proceeding.

Click Next.


Step 4 — Sync Settings

Choose which entity types to import. All are enabled by default:

EntityWhat it imports
ArticlesWordPress posts (blog articles / news)
MembersWordPress users (all roles)
EventsCustom post type: event
DocumentsCustom post types: document, policy, recall
ConferencesCustom post type: conference
CompaniesCustom post type: company
NotificationsCustom post type: notification

Sync direction: WordPress → Platform (INBOUND). Data flows one way from WordPress into the platform.

Sync interval: How often the scheduler automatically checks for new/changed records. Recommended: 60 minutes. Set to blank to disable automatic syncing (manual only).

Image mirroring: If enabled, featured images are downloaded from WordPress and stored in your platform's cloud storage. Recommended for a clean migration.

Document file copying: If enabled, document files (PDFs etc.) are downloaded from WordPress URLs and stored in platform storage. Recommended — otherwise only metadata is imported.

Click Next.


Step 5 — Field Mapping

The platform maps WordPress fields to platform fields. Default mappings are pre-filled and work for the standard plugin setup. You only need to change these if your WordPress site uses custom meta field names.

Article field mappings

WordPress fieldPlatform fieldNotes
post_titletitle
post_contentcontentHTML is parsed into content blocks
post_excerptsummaryFalls back to first 30 words of content
post_name (slug)slugURL-friendly identifier
Featured image URLfeaturedImageUrl
post_date_gmtsourceCreatedAtOriginal WP publish date preserved
post_modified_gmtsourceUpdatedAt
wp_get_post_categoriescategoryFirst category name is used
wp_get_post_tagstagsAll tag names as array
display_nameauthorName

Member field mappings

WordPress meta keyPlatform fieldNotes
user_emailemail
first_namefirstName
last_namelastName
display_namedisplayName
mobile_numberphoneNumber
job_titlejobTitle
company_organizationcompany
birthdaydateOfBirth
street_addressaddressLine1
citycity
zippostalCode
is_certifiedisCertifiedBoolean
renewal_datemembershipRenewalDate
is_exclude_listingisExcludedFromListingBoolean
WordPress rolemembershipStatusSee mapping table below

WordPress role → membership status:

WordPress rolePlatform status
association-memberACTIVE
pending-reviewPENDING
administratorADMIN
Any other roleINACTIVE

Event field mappings

WordPress meta keyPlatform fieldNotes
post_titletitle
post_contentdescription
post_excerptexcerpt
_event_date_time_startstartDateUnix timestamp (ms) → ISO-8601
_event_date_time_endendDateUnix timestamp (ms) → ISO-8601
_event_all_dayisAllDayBoolean
_event_is_virtualisVirtualBoolean
_event_costcost
_event_urlregistrationUrl
_location_addresslocation.address
_location_citylocation.city
_location_statelocation.state
_location_zip_codelocation.postalCode
Featured imagefeaturedImageUrl
_event_attending_countattendingCount

Document field mappings

Covers three WordPress post types: document, policy, recall

WordPress fieldPlatform fieldNotes
post_titletitle
_document_file / _policy_file / _recall_filefileUrlFile attachment URL
File extensionmimeTypeDetected from URL
Taxonomy termfolderdocument_folder, policy_folder, recall_folder
post_statusstatuspublishPUBLISHED

Conference field mappings

Same structure as events, with eventType: 'CONFERENCE' added automatically.

Company field mappings

WordPress meta keyPlatform field
post_titlecompanyName
post_contentdescription
_company_urlwebsite
_company_phonecontactPhone
_company_emailcontactEmail
Featured imagelogoUrl

Click Next when mappings look correct.


Step 6 — Review & Connect

Review the summary of your configuration:

  • Connector name
  • WordPress URL
  • Entities to sync
  • Sync schedule

Click Connect to save the connector. The connector is now created with status ACTIVE.


Run the Initial Import

After creating the connector, you must run the Initial Import once to pull all existing data.

Do not skip the Initial Import

The scheduled sync only fetches records changed since the last sync. Without an Initial Import, historical data will not be imported.

  1. Go to Connectors → [your WordPress connector]
  2. Click Run Initial Import
  3. Confirm in the dialog

The initial import will:

  • Set job type to INITIAL_IMPORT
  • Fetch ALL records from ALL enabled entity types (no date filter)
  • Create or update every record in the platform
  • Mark the connector as is_initial_migration_done = true (you can only run it once)

Monitor progress in the Sync Jobs tab. The live panel updates every 2 seconds with the current entity being processed and progress counts.


Monitoring Sync Progress

Sync Jobs tab

Shows a table of all sync jobs with:

  • Date and time started
  • Job type (INITIAL_IMPORT, FULL_SYNC, INCREMENTAL)
  • Status (PENDING, RUNNING, COMPLETED, FAILED)
  • Records processed / succeeded / failed / skipped
  • Duration

Click a job row to see per-entity logs.

Per-entity logs

For each record processed, a log entry shows:

  • Entity type (article, member, event, etc.)
  • External ID (WordPress post/user ID)
  • Operation (CREATE, UPDATE, SKIP)
  • Status (SUCCESS, FAILED, SKIPPED)
  • Error details (if failed)

Live sync panel

While a sync is running, the Live panel streams real-time updates (Server-Sent Events) showing the current phase and counts as records are processed.

Statistics tab

Shows aggregate stats:

  • Total jobs run
  • Successful jobs
  • Total records synced
  • Last sync time
  • Next scheduled sync time

After the Initial Import

Once the initial import completes:

  1. Verify your data — Go to Articles, Members, Events, Documents and spot-check that records look correct
  2. Check sync logs — Open the sync job and look for any FAILED or SKIPPED records
  3. Enable scheduled sync — If you set a sync interval, auto-sync is already active
  4. Run diagnostics — Use the Diagnostic Panel to validate field mappings are working as expected

Editing a Connector

You can update connector settings at any time:

  1. Go to Connectors → [your connector] → Settings tab
  2. Edit any field — URL, API key, sync interval, enabled entities
  3. Click Save
Changing the Sync API Key

If you regenerate the key in WordPress, update it in the connector settings before the next sync runs, or the sync will fail with a 401 error.


Deleting a Connector

Deleting a connector removes the connector configuration and all sync job history. It does not delete the data that was already imported — your articles, members, events etc. remain in the platform.

To delete: Connectors → [your connector] → ⋯ menu → Delete Connector