CiviCRM Profile Sync


WordPress Integration

At its simplest, the CiviCRM Profile Sync plugin keeps the “First Name”, “Last Name”, “Nickname”, “Email Address” and “Website” fields of a WordPress User Profile in sync with their corresponding fields in a CiviCRM Contact. The synchronisation takes place regardless of whether the changes are made in WordPress or CiviCRM.

BuddyPress Integration

The plugin also supports syncing the “First Name” and “Last Name” fields of the WordPress User and CiviCRM Contact with BuddyPress when using the BP xProfile WordPress User Sync plugin. Further integration with BuddyPress is in the pipeline.

ACF Integration

CiviCRM Profile Sync enables integration between CiviCRM Entities and WordPress Entities with data synced via Advanced Custom Fields.

Whilst ACF integration is not complete in its coverage of the CiviCRM Entities that can be linked, it is fairly comprehensive in its mapping of the built-in CiviCRM Custom Field Types with their corresponding ACF Field Types.

So if, for example, you want to display (or create) a Contact Type on your WordPress site with ACF Fields that contain synced CiviCRM data, this feature could work for you.

Please refer to the ACF Integration Documentation for details.

Form-building with ACF Extended

CiviCRM Profile Sync enables Forms to be built for the front-end of your website with the UI provided by the ACF Extended plugin. These Forms can send their data directly to CiviCRM in a similar (though more limited) way to Caldera Forms CiviCRM.

Form building with ACF Extended is at an early stage of development and is currently limited to submitting data for Contacts, Participants, Activities and Cases. This does, however, provide enough functionality to build some fairly powerful and useful Forms.

Please refer to the ACFE Form-building Documentation for details.


This plugin recommends a minimum of WordPress 4.9 and CiviCRM 5.23. It also requires BuddyPress 3.0 and the BP XProfile WordPress User Sync plugin for syncing “First Name” and “Last Name” with BuddyPress profiles.

Plugin Development

This plugin is in active development. For feature requests and bug reports (or if you’re a plugin author and want to contribute) please visit the plugin’s GitHub repository.


  1. Extract the plugin archive
  2. Upload plugin files to your /wp-content/plugins/ directory
  3. Activate the plugin through the ‘Plugins’ menu in WordPress


CiviCRM Profile Sync has some particular requirements when it comes to how it is activated. These correspond to the different types of WordPress install:

Single Site

Easy – just activate the plugin and you are done!


Since Users and User metadata are stored in a single place for all sites, CiviCRM Profile Sync’s User Profile settings cannot be configured on a per-site basis. This means that (whether CiviCRM Profile Sync is network-activated or not) whichever settings page you go to, you will see CiviCRM Profile Sync settings that are held in common for all sites.

It is, of course, possible to activate CiviCRM in many different ways in Multisite – it could be network-activated, activated on the main site, and/or activated on one or more sub-sites. CiviCRM could also be in Multi-Domain mode or each instance could have its own database. It is recommended that you activate CiviCRM Profile Sync in the same way that CiviCRM is activated.

If CiviCRM is not in Multi-Domain mode, you may have to write some custom code to propagate changed User details to other CiviCRM instances because (depending on the site on which a particular User’s details are changed) only the Contact on the CiviCRM instance linked to that site will be updated.

Test early, test often and – above all – test on a development site first.


In Multi-Network, Users and User metadata are stored in one place for all Networks but site_options are stored on a per-Network basis. As a result, it is not simple for CiviCRM Profile Sync to store a single collection of User Profile settings for all Networks. You will have to make sure that they are the same across all the Networks where both CiviCRM and this plugin are activated.

A consequence of this architecture is that (depending on how you have set up CiviCRM across the Networks) there may be mismatches between the User data in WordPress and the Contact data in your CiviCRM instances. If CiviCRM is not in Multi-Domain mode, you will have to write some custom code to keep the data synced between WordPress and your CiviCRM instances.

I’ll say it again: test early, test often and – above all – test on a development site first.


February 13, 2022 1 reply
This what I needed, can sync records into custom posts without giving everyone permissions on CiviCrm itself 🙂
Read all 3 reviews

Contributors & Developers

“CiviCRM Profile Sync” is open source software. The following people have contributed to this plugin.


Translate “CiviCRM Profile Sync” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fixes Custom Field sync from CiviCRM to ACF
  • Improves PHP8.1+ compatibility


  • Improves caching for Form Actions
  • Improves performance in CiviCRM admin


  • Implements a “Use cache” setting for Form Actions
  • Adds placeholder setting to fields


  • Enable template tags in the Contact ID field for ACFE forms


  • Fixes spurious Website error log entries


  • Better compatibility with Integrate CiviCRM with WooCommerce
  • Fixes creation of empty Website records


  • Fixes potential fatal error on CiviCRM 5.62.x.
  • Enable Registration Receipts in ACFE Form Participants action.


  • Allow ACF integration to be disabled.
  • Enable “Remove from Group” in ACFE Form Contact action.


  • Fixes missing fields in Form Actions for ACF Extended Forms.


  • Refines deduping in Contact Action for ACF Extended Forms.
  • Fixes fatal error in Event Action for ACF Extended Forms.


  • Fixes PHP 8 notices
  • Fixes Contact Image uploads
  • Enables basic support for “Advanced Filter” in Contact Ref Fields


  • Fixes error on versions of CiviCRM prior to 5.47.


  • Maintenance release.


  • Improves handling of Contact Relationships in ACF Extended Forms.
  • Fixes a bug when syncing Attachments.


  • Introduces CiviCRM Activity Attachments Field.
  • Introduces CiviCRM Event Action.
  • Fixes CiviCRM Settings not showing in ACF Field settings.


  • Fixes error on CiviCRM Activity Action.


  • Improves handling of CiviCRM Websites.
  • Improves handling of CiviCRM Contact Images.
  • Misc bug fixes.


  • Improves building forms with ACF Extended.
  • Misc bug fixes.


  • Enables building forms with ACF Extended.
  • Introduces Participant Post Type sync via Advanced Custom Fields.


  • Skips sync when CiviCRM creates a User.


  • Introduces a Settings Page to set Website Type and Email sync options.
  • Enables integration between CiviCRM Entities and WordPress Entities with data synced via Advanced Custom Fields.


  • Sync First Name and Last Name when bulk creating WordPress users.


  • Fix broken method reference


  • Explicitly suspend CiviCRM’s callbacks when updating a WordPress user


  • Introduces a set of “should_be_synced” filters


  • “Bulk Add” functionality rewritten


  • Introduces “civicrm_wp_profile_sync_primary_email_pre_update” action


  • Allows plugin constants to be pre-defined
  • Allow plugins to provide a unique username
  • Provides new filters to customise bulk import process


  • Makes synced usernames URL-friendly


  • Adds hooks before and after sync operations
  • Updates hook references for CiviCRM 4.7.x instances


  • Further fixes to bulk operations logic


  • Minor fixes to bulk operations logic


  • Initial WordPress plugin directory release


  • Added two-way Website sync
  • Fixed unpredictable detection of sync direction


  • Initial release