WP Fusion Lite – Marketing Automation and CRM Integration for WordPress


WP Fusion Lite synchronizes your WordPress users with leading CRMs and marketing automation systems, keeps user profiles in sync with CRM contact records, and lets you protect site content based on CRM tags.


WP Fusion is a critical tool in our toolkit for our clients, and we VERY strongly encourage our clients to use WP Fusion if they have any kind of CRM. The software is top notch, and the support team is fast and friendly. Nothing but love for WP Fusion from my team here at House Trevethan.

Allen Trevethan – House Trevethan

Lite Version

This is a free version of WP Fusion. WP Fusion Lite synchronizes your registered WordPress users with your connected CRM, including their name and email address.

It does not apply tags based on purchases or course activity, sync form entries, sync customers, or detect any data generated by other plugins.

For integration with WooCommerce, LearnDash, Gravity Forms, Elementor and over 100 other popular WordPress plugins, check out one of our paid licenses.


  • ⚡ Replace Zapier, Integromat, and other integration tools. WP Fusion gives you a direct data sync between your site and your CRM, with no delays or limits.

  • 🔒 Create easy to manage membership sites with drip-released content using timers and logic in your CRM.

  • 💎 Personalize your site by displaying data from CRM contact records, and showing / hiding content based on a user’s CRM tags or lists.

WP Fusion allows us to provide tailored customer experiences in WordPress that wow every time.

Hundreds of plugins that used to be one size fits all, can now perform differently for each Ontraport contact. For example, a low scoring Ontraport contact can be presented with a winback customer journey in WordPress.

This has allowed our clients to increase customer engagement and retention. It’s the only solution that should be considered for any WordPress integration.

Josh Schleifer – Triple Canopy

Docs and Tutorials

WP Fusion builds a critical bridge between our WooCommerce powered ecommerce site and LifterLMS powered training site to our CRM ActiveCampaign. It was easy to set up. The technical support is above and beyond anything I’ve ever seen. What it does is clearly intelligently designed and well built.

Chris Badgett – LifterLMS

Supported CRMs and marketing automation platforms

  • ActiveCampaign
  • AgileCRM
  • Autopilot
  • Autonami
  • Bento
  • BirdSend
  • Capsule
  • Constant Contact
  • ConvertKit
  • Copper
  • Customerly
  • Customer.io
  • Drift
  • Drip
  • EmailOctopus
  • Engage
  • EngageBay
  • Flexie
  • FluentCRM (same site or REST API)
  • GetResponse
  • Gist
  • Groundhogg (same site or REST API)
  • Growmatik
  • HighLevel
  • HubSpot
  • Infusionsoft
  • Intercom
  • Jetpack CRM
  • Kartra
  • Klaviyo
  • Klick-Tipp
  • Loopify
  • MailChimp
  • MailEngine
  • MailerLite
  • Mailjet
  • MailPoet
  • Maropost
  • Mautic
  • Microsoft Dynamics 365
  • MooSend
  • NationBuilder
  • Omnisend
  • Ontraport
  • Ortto
  • Pipedrive
  • Platform.ly
  • PulseTechnologyCRM
  • Quentn
  • Salesflare
  • Salesforce
  • SendFox
  • SendinBlue
  • Sendlane
  • Tubular
  • UserEngage
  • WP ERP
  • Zoho

For more info on CRM compatibility, check out the compatibility table.

WP Fusion is one of my secret weapons for getting WordPress to keep our member’s data synced with our CRM. This makes everything work so much better when you don’t have to worry about your members having issues logging into the member’s area.

If you have or are considering having a membership website using WordPress this plugin is a must-have. It will save you hours of time and frustration.

Greg Russell – SuccessTeam Marketing


  • Sync any WordPress user fields with contact records in your CRM
  • View and manage contact tags within WordPress
  • Restrict access to content based on a contact's tags
  • Use the Gutenberg block to show and hide content within a page based on a contact's CRM tags


This plugin provides 3 blocks.

  • Inner
  • Unsecure
  • WP Fusion


Upload and activate the plugin, then go to Settings >> WP Fusion. Select your desired CRM, enter your API credentials and click “Connect” to verify the connection.

For CRM-specific setup information, see our Installation Guide.


Who is it for?

WP Fusion is built for anyone using a CRM or marketing automation platform, and running their website with WordPress.

CRMs empower businesses to track leads, send email broadcasts, manage contact data, track sales, delegate client relationships between employees, and more.

WordPress handles the public facing side of your business: your sales pages, ecommerce platform, support forums, photos and videos, and anything else you want the world to see.

But your CRM and WordPress don’t talk to each other.

This is where WP Fusion comes in.

WP Fusion acts as a bridge between your WordPress data and CRM data— it allows you to use data from WordPress to power your marketing campaigns, and data from your CRM to personalize the customer experience in WordPress.

How is it different from Zapier?

While WP Fusion and Zapier are both integration tools, they work quite differently.

Zapier is a SaaS (Software as a Service) solution that acts as a middleman between your site and your CRM (as well as many other platforms).

When something is updated in WordPress, it is synced to Zapier’s website, and then Zapier syncs the data on to your desired platform. Depending on your plan there is a delay before the data is synced, and/or limit on how many “tasks” you can run each month.

WP Fusion connects your site directly to your CRM or marketing automation platform over the API (nothing goes through our website). Because of this the sync of data is instant, secure, and there are no monthly limits.

In addition to syncing data with your CRM, WP Fusion also includes many options for protecting your WordPress content based on CRM tags, and triggering changes in membership level or course enrollments based on CRM automations. This generally isn’t possible with Zapier because Zapier is configured via zapier.com, not inside your WordPress dashboard.

Why are your version numbers so funny?

WP Fusion Lite is a copy of the Pro WP Fusion plugin, with support for third-party plugins removed. Each time we release a Lite update, it brings it up to date with the latest version of the Pro plugin. For the full details see the changelog on our site.

Can I disable the upgrade nags?

WP Fusion Lite has a few banners on the settings pages with additional info about the features available in the Pro version.

If you’d prefer not to see these you can disable them with the filter:

add_filter( 'wp_fusion_hide_upgrade_nags', '__return_true' );

Do you have more FAQs?

Of course, see our Frequently Asked Questions.


Gatonnya 12, 2024 1 reply
I didn't know I needed this a year ago. Now it is one of the most important plugins in my stack, for the extra functions it lets me do, and for what it replaces with lower overhead. The support is insanely good, especially considering how many integrations (on the paid version) they need to keep track of, going above and beyond... solving problems that really are CRM issues not theirs.
Gatonnya 9, 2024 1 reply
This set of plugins is extremely powerful and versatile. The support is fantastic: itr does not only support you but enhances the functionalities for you.This promises to be a critical piece of our efforts to sync things as swiftly as possible.
Sseeboaseka 6, 2023 1 reply
WP Fusion may seem pricey at first blush but its functionality and ease of use are significant. I've tried replicating some of the work I need this plugin to do with Make and Zapier and there's just no comparison in terms of getting the end result in a timely and hassle free manner. On top of that the support is on a different level altogether. The other two services have non-intuitive interfaces and tracking down failures at any point in the chain can take a while (Zapier) or be basically impossible without a very deep dive into unfamiliar territory (Make). When I ran into a problem with my WP Fusion install I got high level support that resolved the problem quickly. Highly recommend WP Fusion. You'll save so much time over other options.
Mugulansigo 8, 2023 1 reply
Everything I've experienced so far of this plugin leaves me really impressed. It seems like the team has thought this through really comprehensively, and they are super responsive to every question and support request... literally had multiple cases of my unique weekend issue becoming solved in the Monday plugin update. Top marks guys!
Mugulansigo 3, 2023 1 reply
Not only is this plugin a life-saver when integrating my CRM with the various other tools on WordPress, but the support is second to none! I should also mention that I love how the plugin's settings are humbly hidden in my site settings, not intrusively adding another item to the main admin bar.
Read all 60 reviews

Contributors & Developers

“WP Fusion Lite – Marketing Automation and CRM Integration for WordPress” is open source software. The following people have contributed to this plugin.



3.42.10 – 2/5/2024

Tech Stuff

  • Tested for WordPress 6.5.0


New Features


  • The “Enable API Queue” setting will be hidden when connected to Groundhogg (Same site), as it’s unnecessary when not sending API calls
  • New custom field created in Groundhogg (same site) will now appear immediately in WP Fusion (no Resync Fields required)
  • The HighLevel integration will now also attempt to refresh the access token when it encounters a 401 response
  • Improved tags select UI when using the block editor— now supports typing in new tags, tag groups, refreshing tags via an API call, and creating tags via an API call
  • With Brevo, the keys name and id will now show as reserved and can’t be used for event tracking
  • Improved CRM error logging
  • Improved performance when looking up a user ID from a contact ID
  • Updated the ‘add’, ‘update’, and ‘load’ contact methods with ActiveCampaign to use the new v3 API (should be faster)
  • Fixed missing Reset Deep Data checkbox on the advanced tab (with ActiveCampaign)
  • Improved duplicate record error handling for ActiveCampaign and Kaviyo
  • You can now use “less” and “greater” instead of < and > in the ‘user_meta_if’ shortcode attributes
  • If a user registers with a missing ‘first_name’ and ‘last_name’ but their ‘display_name’ is set, the Display Name will be used for the first and last names
  • If you try to sync multiselect or array-formatted data to a text field in HighLevel, WP Fusion will automatically combine the items to prevent an API error
  • If you add ‘define( ‘WPF_STAGING_MODE’, false );’ to wp-config.php, this will disable automatic staging site detection
  • Improved performance with checking permissions on a post based on access rules configured on a taxonomy term
  • If staging mode is enabled via wp-config.php (‘WPF_STAGING_MODE’) the “It looks like this site has moved or is a duplicate” notice will not be displayed
  • Extended the timeout with ActiveCampaign to 15 seconds
  • Post content restricted by WP Fusion will no longer be accessible over the REST API to unauthorized users
  • Fixed a fatal error and custom fields not syncing with Jetpack CRM
  • With Brevo, select and multiselect fields will now automatically be synced to their numeric values required by the Brevo API (requires a one-time Refresh Available Tags and Fields via the settings)
  • The background worker will now return instead of exit when the queue is empty, to prevent the worker from blocking subsequent cron tasks
  • Improved HubSpot error handling
  • Updated Omnisend event tracking to use new ‘/customer-events’ endpoint
  • Multi-key FluentCRM events will now be sent JSON-encoded
  • Improved WP Fusion settings
  • The JavaScript-based lead source tracking method no longer requires jQuery

Bug Fixes

  • Fixed tags not applying via AJAX for auto-login users since 3.41.22
  • Fixed Groundhogg (REST API) and Groundhogg (same site) bugs
  • Fixed Email not enabled for sync by default and tagging not working when using the Staging CRM
  • Fixed unhandled error when looking up a contact by email address failed during a guest checkout or registration
  • Fixed duplicate Phone Number field in HighLevel integration
  • Fixed Mailchimp bugs
  • Fixed ActiveCampaign bugs and fatal errors
  • Fixed FluentCRM (REST API) and FluentCRM (same site) bugs
  • Fixed a bug with MailerLite, and HubSpot whereby auto-login links were not being properly detected on the initial page load (only on the second page load)
  • Fixed inverted timezone offset for syncing date fields with HubSpot
  • Fixed shortcode attributes added to the block editor getting saved with curly quotes
  • Fixed PHP errors with Brevo
  • Fixed deprecated JavaScript console messages
  • Fixed Pipedrive error “Name must be given” when updating a contact and the name field was not present
  • Fixed WP Fusion fatal errors and bugs
  • Fixed PHP error ‘Parse error: syntax error, unexpected ‘)” when gathering the user metadata for a user in PHP < 7.3
  • Fixed users who registered without a first name getting their first name synced to the CRM as their username
  • Fixed ‘wpf_get_user_id( $contact_id )’ returning the IDs of temporary auto-login users
  • Fixed PHP warning ‘foreach() argument must be of type array|object, bool given’ after deleting all taxonomy-based access rules
  • Fixed special characters in tag names breaking If-Menu tag condition dropdowns
  • Fixed lead source data for new user registrations being synced even if there was an existing contact in the CRM
  • Fixed PHP warnings when no custom fields are available for Omnisend and Drip
  • Fixed security vulnerability in the ‘user_meta_if’ shortcode, an editor could potentially execute arbitrary PHP code by passing a function name to the ‘field_format’ parameter


  • Added filter ‘wpf_hubspot_redirect_uri’
  • Deprecated filter ‘learndash_settings_fields_wpf’ in favor of ‘learndash_course_settings_fields_wpf’ and ‘learndash_quiz_settings_fields_wpf’
  • The ‘wp_fusion_init’ hook has been moved from ‘init’ priority 0 to priority 6 so that ‘wp_fusion()->crm->init()” has finished
  • Removed an ‘array_filter()’ from the ‘WPF_User::get_user_meta()’ function (was preventing exporting empty values to the CRM)
  • Extended the ActiveCampaign API timeout to 20 seconds for loading, applying and removing tags
  • The wpf_get_user_id filter can now return 0, and only runs before the database query

3.41.24 – 8/10/2023

Tech stuff

  • Tested for WordPress 6.3.0

New CRMs

New Features


  • Improved – Force killing the background worker will now also unlock the process lock so a new operation can be started
  • Improved – If a post type or category/term is protected and configured with a redirect, any redirect on the underlying post will now take priority
  • Improved support for detecting email address changes from non-supported plugins (i.e. JetEngine Forms)
  • Improved – CRMs that use OAuth will now have the refresh token and access token fields disabled in the settings to prevent browsers from accidentally filling the fields
  • Improved – Exported logs will now include the error level string instead of numeric ID
  • Improved – When updating a user profile in the admin, the log source will say user-profile instead of unknown
  • Improved styling of the WP Fusion metabox when using the Gutenberg editor
  • Improved “Redirect if access is denied” dropdown in admin – Will now only search for pages by title, not content, and will validate external URLs
  • Improved – The View in CRM links in the logs and elsewhere now work when using custom object types (with CRMs that support custom object types)

  • Improved – Shortened ActiveCampaign API timeout to 10 seconds instead of 20

  • Improved – With WordPress 6.3+ the Bento tracking script will now be loaded async by default
  • Improved – The Bento tracking script will now wait for the bento:ready event
  • Updated Sendinblue integration to Brevo
  • Improved performance for applying and removing lists with Brevo (aka Sendinblue)
  • Improved – Brevo integration will now use numeric contact IDs instead of email addresses as unique identifiers (backwards compatible with users who are still linked via email)
  • Improved error handling for failed access token refreshes with Constant Contact
  • Improved – With Dynamics 365, dynamic marketing lists will now show as Read Only in the WP Fusion UI, and won’t be selectable for “Assign Lists”
  • Improved – The GetResponse integration can now trigger autoresponders when a contact is added to a list
  • Improved – The GetResponse integration can now remove tags
  • Updated HighLevel integration to use the 2.0 API (allows us to add Enhanced Ecommerce and UTM tracking)
  • Improved HighLevel error reporting for duplicate contact errors
  • Improved HubSpot error handling
  • Improved API performance while applying groups with MailerLite
  • Improved Maropost error handling
  • Improved – Updated Sendlane integration to use the v2 API (requires generating a new access token)
  • Improved – Contacts synced to Ontraport with bulk_sms set to no will also be synced with force_sms_opt_out set to true, to ensure they are opted out of bulk SMS

Bug Fixes

  • Fixed an infinite redirect if a guest tried to access a piece of protected content and “Refresh tags if access is denied” was enabled on that content
  • Fixed “Exclude Administrators” setting not being respected for the site lockout feature
  • Fixed View in CRM links in the logs not working correctly with Dynamics 365
  • Fixed a fatal error if the WP Fusion settings were reset in the middle of a batch operation
  • Fixed background worker not working on sites protected by HTTP Basic Authentication
  • Fixed fatal error in the Custom Code section of the main settings page when a static class method had been attached to a wpf_* filter
  • Fixed Filter Queries – Advanced not working with Search & Filter Pro (changed priority from 10 to 100)
  • Fixed a fatal error calling wp_fusion()->user->push_user_meta() on an invalid user ID
  • Fixed a fatal error trying to access the CRM PHP API before it was loaded

  • Fixed event tracking not sending the value (i.e. details) to Brevo

  • Fixed Constant Contact integration not loading more than 50 tags
  • Fixed unhandled error refreshing access token with Constant Contact
  • Fixed Constant Contact refresh token expiring after two refreshes
  • Fixed empty dates syncing to ConvertKit as 1/1/1970
  • Fixed ConvertKit integration removing times from date + time fields
  • Fixed dynamic lists showing as options for import with Dynamics 365
  • Fixed import tool not working with Dynamics 365
  • Fixed fatal error connecting to EmailOctopus when there were no lists or tags in the account
  • Fixed FluentCRM (same site) processing tags modified by automations before tags edited on the subscriber record, causing the WP user’s tag cache to lose the tags applied by the automation
  • Fixed a fatal error with FluentCRM when a user changed their email address to the email address of an existing (other) subscriber in FluentCRM (same site)
  • Fixed typo “susbcribed” in default optin status for FluentCRM (REST API)
  • Fixed bug in HighLevel error handling, errors with a meta parameter were triggering a fatal error when logged
  • Fixed empty dates synced to HighLevel getting converted to 1-1-1970
  • Fixed first API call after refreshing a HighLevel access token being treated as an error
  • Fixed Klaviyo integration not loading more than ten lists
  • Fixed MailerLite (Classic) integration giving an Unauthorized error when applying groups via a batch operation
  • Fixed custom fields not loading with Maropost
  • Misc Maropost bugfixes
  • Fixed import tool not working with Pipedrive
  • Fixed read-only fields being synced back to Salesforce and causing API errors
  • Fixed Zoho integration linking users with contact records who had a matching email address on Secondary Email or other email fields than the primary Email field


  • Added function wpf_validate_phone_number()
  • Added filter wpf_dynamics_365_lookup_field
  • Improved – The AJAX endpoint for applying tags can now accept form-encoded or JSON encoded data
  • Improved – the WP Fusion section on the admin user profile will now require the edit_users capability instead of manage_options
  • Improved – CRMs with an init() method will now run on the init action at priority 5, instead of plugins_loaded. This makes it easier for custom code added to the theme’s functions.php to modify CRM parameters such as the API URL or object type
  • Improved – Removed redundant check for wpf_is_user_logged_in() in the WP Fusion secure block access logic
  • Fixed – the wpf_admin_override filter did not apply to the core user_can_access() function
  • Fixed custom args passed to wp_fusion()->batch->batch_init() being ignored

3.41.2 – 3/27/2023

Tech stuff

  • Tested for WordPress 6.2.0

New CRMs

New Features


  • Improved – With CRMs that support identifying a visitor to a tracking script via JavaScript, a visitor can now be identified in the same page load as a form submission (instead of requiring a redirect or refresh)
  • Improved – The “Select a redirect” box in the main WP Fusion metabox can now accept a page or a URL
  • Improved – The API Queue will now run on the shutdown hook at priority -1 instead of 1, to try and get ahead of any potential redirects in WooCommerce payment gateways
  • Improved – You can now set the WPF_MULTISITE_PREFIX_KEYS in wp-config.php to turn on blog ID prefixes for usermeta keys
  • Improved – When an auto-login session loads the tags for someone who has a user account on the site, those tags will also be saved to their local cache
  • Improved – Clicking Cancel on a batch operation / export operation will now cancel the next operation in the queue, even if the key is unknown
  • Improved status output for batch operations in the console: will now count items processed in the last batch, and available memory is human-readable
  • Improved – Some plugins sloppily trigger wp_login twice during a single login. WP Fusion will now only run on the first instance
  • Improved notifications when an error was encountered saving or validating an option in the WP Fusion settings
  • Improved: the wpf_update_meta and wpf_update_tags shortcodes will now output an HTML comment to help locating them within a page
  • Improved – Using the date-format parameter in the user_meta shortcode will now output the date in the site’s language (as opposed to English)
  • Improved – If a user’s contact record is deleted, their cached tags will be deleted as well (previously these were left behind and could clutter up the database)
  • Improved – If a contact was created in staging mode, deactvating staging mode will also remove the user’s staging_xxxx contact ID
  • Improved lead source tracking — tracking data will now be stored JSON-encoded inside of a single cookie, instead of across multiple cookies
  • Improved – Set a max-height on the debug output for HTTP API logging in the logs
  • Improved – With CRMs which require an email address for some API calls, WP Fusion will now check to see if the email can be retrieved from a WooCommerce order before making an API call to load the contact (improves performance)

  • Improved – ActiveCampaign event tracking API calls updated to use wp_remote_post() instead of wp_safe_remote_post() to fix occasional A valid URL was not provided errors

  • Improved – The Bento tracking script will now be registered via wp_enqueue_script() instead of inline, to play better with caching and optimization plugins
  • Improved – The cookie to track Bento guest form submissions will only be set for one hour (instead of one year). This is plenty of time for the Bento tracking script to pick it up, and will make it easier to cache pages for identified guests
  • Improved – Guest form submissions and checkouts will now pass the guest’s email address to the Bento tracking script
  • Improved – Removed redundant name and email custom fields with Bento
  • Improved error handling with Dynamics 365
  • Improved – Updated Klaviyo integration to use the new v2022-10-17 API, which will greatly improve performance
  • Improved MailerLite error handling
  • Improved – When changing the tag type with Salesforce, all users will automatically have their tags resynced from the CRM
  • Improved – When using a Picklist for Salesforce tags, if an unknown is loaded for a user, it will be added to the dropdown of available options

Bug Fixes

  • Fixed “Action Failed” error when flushing the logs when WooCommmerce’s logging was active in database mode
  • Fixed fatal error with Push All when other plugins updated user meta fields before WP Fusion had loaded
  • Fixed HTML in custom field names being displayed in the Contact Fields list
  • Fixed JavaScript based lead source tracking not working with WP Rocket
  • Fixed warning “Attempt to read cap_key on bool” when adding or removing roles with a deleted user ID
  • Fixed the wpf_update_meta shortcode triggering a pull from the CRM multiple times per page load (if used with multiple blank fields)
  • Fixed WP Fusion not running on multiple user registrations in the same request
  • Fixed timezone-offset parameter in the user_meta shortcode being treated as minutes, not hours
  • Fixed batch operations started on a single multisite showing the status bar on all other sites in the network
  • Fixed fatal error displaying a user’s tags on the All Users list when a user’s tags were stored as a string, with PHP 8
  • Fixed PHP error Cannot use string offset as array when importing users with PHP 8
  • Fixed being unable to clear out the User dropdown filter in the logs once a user was selected

  • Fixed Event Tracking not working with a recent ActiveCampaign API update (not sure exactly when it started)

  • Fixed the ActiveCampaign integration intercepting API errors from other CRMs during the initial connection process
  • Fixed fatal error syncing string-formatted date timestamps to ActiveCampaign with PHP 8.1
  • Fixed link to edit subscriber in Bento not available immediately after creating a new subscriber
  • Fixed Bento integration returning false when a contact had no tags, instead of an empty array. Sometimes caused errors with other integrations.
  • Fixed: Removed Drip site tracking code (Drip no longer supports site tracking)
  • Fixed date fields not syncing to FluentCRM (REST API)
  • Fixed API errors syncing multiselect or array data with Gist
  • Fixed Event Tracking not working with Groundhogg (This Site)
  • Fixed custom properties created with the core Groundhogg plugin (not the Better Meta extension) not being available for sync
  • Fixed error resyncing available fields when the Groundhogg Better Meta plugin was active
  • Fixed logs warning with Groundhogg when a user updated their email address to have capital letters in it
  • Fixed Event Tracking updating the most recent event instead of creating a new one with Groundhogg (REST API)
  • Fixed Groundhogg (REST API) integration not loading more than 100 available tags
  • Fixed all phone numbers getting synced to HighLevel with a +1 country code
  • Fixed HubSpot integration using a 120 second timeout
  • Fixed redirect URI mismatch error with HubSpot (since HubSpot scopes were updated on March 24th)
  • Fixed GMT calculation with HubSpot dates adding the GMT offset when it should have been subtracing it
  • Fixed error Failed to parse XML-RPC request when syncing HTML in text fields to Infusionsoft / Keap
  • Fixed warnings Return type of X should be compatible with Y warnings with PHP 8.1 and the XMLRPC library (Infusionsoft/Keap)
  • Fixed Klaviyo integration sometimes loading “Unknown List” entries from subscribers in cases of deleted or system lists
  • Fixed groups not applying for anonymous subscribers when using the new MailerLite API
  • Fixed updating a user profile in WordPress marking MailerLite subscribers as Active even if they hadn’t been confirmed yet
  • Fixed MailPoet integration listing a user’s segments as “unknown lists”
  • Fixed an unhandled error refreshing the Mautic access token when the user’s API credentials had changed
  • Fixed – Pipedrive integration will now use a private app instead of a public app, which will allow setup to complete (previously we were pending a public app review for several months)
  • Fixed Quentn integration treating a Contact Not Found as a serious error
  • Fixed import tool not working with Salesforce picklist-based segmentation
  • Fixed Salesforce integration not loading more than 2000 available topics
  • Fixed Import Users tool with Sendinblue not loading more than 500 subscribers
  • Fixed PHP warning Undefined variable $code in Zoho integration when handling an API error


3.40.36 – 11/1/2022

Tech stuff

  • Tested for WordPress 6.1.0
  • Tested for PHP 8.1.9

New CRMs

New Features

  • Added Refresh Available Tags & Fields button to the admin toolbar
  • Added “Add to CRM” checkbox on admin Add New User form
  • Added as-you-type filter to Preview With Tags admin bar dropdown when there are more than 20 available tags
  • Added support for the Groundhogg White Label Branding extension
  • Addded Avatar URL for sync with FluentCRM (can update the contact’s photo by syncing a URL to an image)
  • Added County, Availability, Support Level, Latitude, Longitude, Voting District, Inferred Support Level, Priority Level, Do Not Call, Mobile Opt-In, Recruiter ID, and Do Not Contact fields for sync with NationBuilder
  • Added Status field for sync with JetPack CRM


  • Improved – The tags list in the All Users list now has a max height set, and can be clicked to expand
  • Improved support for syncing user capabilities when using a custom table prefix
  • Improved – Dates will be force to UTC for timestamp conversion before beng synced (fixes issues with other plugins calling date_default_timezone_set() and messing up the conversion)
  • Improved – Filter Queries Advanced will now take into account any post__in arguments when building up the array of post IDs to exclude (improves performance)
  • Improved performance when using Filter Queries in Advanced mode and a query is for multiple post types
  • Improved – Exporting the activity logs will now automatically unserialize any serialized data
  • Improved – The HTTP API logs will now be associated with the user who initiaited the API call, instead of “system”
  • Improved – If the logs are disabled, the logs database table will be dropped
  • Improved staging site automatic detection on hosts that find/replace the site URL throughout the database when copying from live to staging
  • Improved and simplified duplicate site and staging site notices in the admin
  • Improved – Made WP Fusion menu item and settings page title able to be white labelled via the gettext filter
  • Improved Return After Login feature, will also run on the login_redirect filter for cases where another plugin takes priority over the login redirect on wp_login
  • Updated Autonami to FunnelKit Automations
  • Improved – If Autonami is running on the same site, tag changes will be synced across to WP Fusion immediately, without requiring an API call
  • Improved – The Bento integration will force all email addresses to lowercase, both for syncing and for contact ID lookups
  • Warning – Bento users – Note that this change will cause WordPress users to become disconnected from their Bento subscriber records if their email addresses in Bento contain capital letters. To fix this, it’s recommended to run a Push User Meta operation one time, and WP Fusion will update all your subscriber records in Bento to use lowercase email addresses
  • Improved – Groundhogg integration will now log an error when updating a contact’s email to an address that is already in use by another contact

Bug Fixes

  • Fixed – All links to CRM contact records in the logs will now open in a new browser window
  • Fixed Staging Mode checkbox not un-checkable when the site was in staging mode due to detecting a change in the site’s URL
  • Fixed the TipTip JS file getting enqueued twice with WooCommerce (made tooltips not automatically close)
  • Fixed staging mode only auto-activating in the admin of the staging site
  • Fixed Preview With Tag not working with tags with apostrophes in the tag name
  • Fixed Filter Queries – Advanced not working on post post type when not speficied as the post_type in the WP_Query arguments
  • Fixed ?wpf-end-auto-login=true query parameter not working
  • Fixed memory leak when using [the_excerpt] shortcode inside a post’s main content area
  • Fixed PHP warning during auto-login session when a Return After Login redirect was attempted
  • Fixed Apply Tags on View functionality not working when “Restrict Content” was disabled in the General settings
  • Fixed connection settings getting overwritten when calling wp_fusion()->settings->set() after having switched to another multisite blog
  • Fixed fatal error trying to delete import groups that contained WP_Errors
  • Fixed disabling the API queue also disabling staging mode
  • Fixed JavaScript lead source tracking not working on some hosts (cookie components were being URI-encoded)
  • Fixed removing a user role syncing the user’s role as the name of the role that was just removed
  • Fixed fatal error on WP Fusion settings page when connected to Jetpack CRM and the Jetpack CRM plugin was deactivated
  • Fixed Groundhogg syncing new user registrations to Groundhogg before WP Fusion
  • Fixed PHP warnings in Maropost integration
  • Fixed lists not loading with Dynamics Marketing 365
  • Fixed fatal error starting an auto login session with Dynamics 365 when the contact wasn’t on any lists
  • Fixed the MailerLite integration logging an error when a subscriber record isn’t found for an email address (should just be an info message)
  • Fixed custom fields not loading with Autonami 2.2.0
  • Fixed PHP warning loading usermeta fields from Autonami (same site)
  • Fixed unhandled fatal error when a HubSpot access token refresh failed
  • Fixed un-selected checkboxes not being loaded from HubSpot
  • Fixed address and phone fields not updating with Groundhogg (REST API)
  • Fixed error The entity "ccedil" was referenced, but not declared. when syncing a country value of Curaçao to Infusionsoft
  • Fixed missing use_utm_names flag with Ontraport when updating existing contacts (prevented lead sources from being set)
  • Fixed tags not loading with MooSend
  • Fixed PHP warnings in MooSend integration
  • Fixed Mautic ignoring empty fields


  • Added error handling for the Sendinblue Sales CRM API
  • Developers: When a user’s tags are modified, the memory cache at WPF_Access_Control::$can_access_posts will be cleared
  • Developers: wpf_crm_loaded action will now pass the active CRM as a parameter
  • Developers: Fixed wpf_get_setting_{$id} filter not updating the option inputs on the settings page
  • Developers – Improved: The validate_field_ filters in the settings will now only run when an option value has changed instead of on every save

3.40.12 – 7/13/2022

New CRMs

New Features


  • Improved – If a tag is set for a post (or the More block is used), and the Restricted Content Message is being displayed, the post excerpt (above the tag) will be displayed
  • Improved – When searching in the Redirect if Access is Denied dropdown in the main WP Fusion meta box, results will by grouped by post type
  • Improved – The tooltip for restricted content in the admin post list table will now show if a redirect has been configured on the post
  • Improved – If an auto login link is visited, the Return After Login process will be triggered (if enabled)
  • Improved – Auto login sessions will now be ended on the set_logged_in_cookie action instead of wp_login and wp_authenticate (fixes conflict with Gravity Perks Auto Login)
  • Improved – If a user registers and has an existing Lead record in Gist, the Lead will be converted to a User
  • Improved – If a timestamp being synced to HubSpot is already a whole date (midnight UTC), it won’t be recalculated using the site’s timezone offset
  • Improved – Mobile phone numbers synced to NationBuilder will be set to opted in for SMS by default
  • Improved – If a contact has been deleted or merged in ActiveCampaign and a “not found” error is triggered, WP Fusion will try to look up the contact again by email address and retry the API call
  • Improved – If an invalid timestamp is being synced to HubSpot (+/- 1000 years from today) it will be removed from the payload to avoid an API error
  • Improved – Updated NationBuilder add contact API endpoint to /people/push instead of /people to better handle merging duplicate records
  • Improved – Bento event tracking can now accept an array for $event_data
  • Improved – Shortened the URL length when filtering data in the activity logs
  • Improved – Updated Mailchimp add_contact() API call to PUT instead of POST to better handle duplicates
  • Improved logging when syncing dates with invalid formats
  • Improved HubSpot error handling
  • Improved Sendinblue error handling for failed contact record creation
  • Improved error handling with ActiveCampaign (403 errors are now properly handled)

Bug Fixes

  • Fixed Return After Login feature not working since WordPress 6.0
  • Fixed Mautic ignoring empty fields
  • Fixed the “Require Admin Permissions” setting (Advanced settings tab) not working
  • Fixed conflict with “WooCommerce Fattureincloud Premium” when loading the available WooCommerce checkout fields in the admin
  • Fixed some HTML and escaping glitches on the WooCommerce product panel upgrade nag with WP Fusion Lite
  • Fixed incorrect format when syncing dates to Bento
  • Fixed conflict (Uncaught ArgumentCountError) with the auto-register functionality in FluentCRM v2.5.9
  • Fixed slashes in Mautic API passwords not getting unslashed before saving, and breaking the API connection
  • Fixed bulk editing access rules not working since WordPress 6.0
  • Fixed date fields not syncing to NationBuilder
  • Fixed UI saying “Add Topics” instead of “Add Tags” when using a picklist field for tags with Salesforce
  • Fixed PHP warning Expected parameter 2 to be array, null given when bulk editing WP Fusion access rules and the Merge Changes box was checked
  • Fixed fatal error Class 'WPF_Staging' not found when trying to sync data to the CRM on a multisite install after calling switch_to_blog()
  • Fixed the Drip integration not loading custom fields with capital letters in the field keys
  • Fixed conflict with Premmerce Permalink Manager for WooCommerce (WP Fusion settings page not saving)
  • Fixed logs not properly displaying the results of a value modified by the wpf_format_field_value when the input variable was empty
  • Fixed empty dates getting synced to Mailchimp as Jan 1st 1970
  • Fixed PHP warning in WPF_CRM_Base when viewing an admin user profile before WP Fusion had been set up
  • Fixed admin users list showing No Contact ID for users who had a contact ID but no tags
  • Fixed updates to existing leads not working with Intercom and Gist
  • Fixed PHP warning trying to apply tags via AJAX when an invalid tag name was provided
  • Fixed Gist integration not loading more than 50 available tags
  • Fixed user passwords getting recorded in the logs when registering a new user during an active auto-login session
  • Fixed broken “Reauthorize with NationBuilder” link on the setup panel
  • Fixed (Lite) – Integrations settings tab will now be hidden in WP Fusion Lite
  • Fixed Capsule integration not returning the contact ID of newly created contacts
  • Fixed filtering in the logs not working if headers were already sent by another plugin
  • Fixed 401 / unauthorized errors not being correctly handled with Bento
  • Fixed dismissing notices on the WPF settings page not being remembered
  • Fixed adding a new list in HubSpot via WP Fusion causing the existing Select A List dropdown to only show (array) for each list option
  • Fixed unhandled exception when updating a contact’s email address to an email address already in use by another contact, with FluentCRM (same site)
  • Fixed import by tag not working with MailChimp and numeric tag IDs
  • Fixed unclosed


table> tag on the Setup tab when connected to NationBuilder
* Fixed first and last name fields not syncing to Bento
* Fixed capabilities being saved to the database with wp_ as the prefix instead of the current blog prefix
* Fixed some unclosed HTML tags in the single taxonomy term settings table
* Fixed un-checked checkboxes not syncing with Sendinblue boolean fields
* Fixed FluentCRM (same site) custom fields not being erased when a null value was synced
* Fixed logs not indicating a value was modified by the wpf_format_field_value filter when only the type had changed (fixed != to !==)
* Fixed dates syncing to HubSpot in UTC not local time
* Fixed custom fields not syncing to Autonami
* Fixed Import Tool not working with Mailchimp since 3.38.35
* Fixed date filter in the logs not working


  • Refactored and simplified CRM class structure: removed calls to wp_fusion()->crm_base, removed class WPF_CRM_Queue, removed redundancies in calling WPF_Staging CRM
  • Refactored and simplified lead source tracking
  • Removed parameter $map_meta_fields in CRM classes. Field mapping is now handled in __call() magic method in WPF_CRM_Base (i.e. wp_fusion()->crm)
  • Developers: Improved – WP Fusion will not save the main settings if you are currently switched to another blog on a multisite install. This prevents settings from the original site overwriting the site you’ve switched to.
  • Developers: Added filter wpf_loaded_tags when tags are loaded from the CRM for a user
  • Developers: added action wpf_crm_loaded
  • Developers: Added function wpf_is_staging_mode()
  • Developers: Fixed the wp_fusion_init_crm action running too early for code added to functions.php (moved from plugins_loaded to init)
  • Fixed missing second parameter $force in wpf_get_tags() function
  • Fixed fatal error calling wpf_get_current_user() before the API was initialized

3.38.44 – 2/24/2022

New CRMs

New Features

  • Added – With FluentCRM, Groundhogg, HubSpot, Infusionsoft, and Ontraport you can now type new tag names into the Select Tag(s) dropdown, and if the tag doesn’t exist WP Fusion can send an API call to create the new tag
  • Added links to the logs to go directly to the CRM contact record for each user
  • Added IN and NOT IN comparisons to the user_meta_if shortcode
  • Added timezone-offset attribute to user_meta shortcode
  • Added IP Address field to Contact Fields list
  • Added View In CRM link to the user action links on the All Users list in the admin
  • Added Status section to WP Fusion settings with status and debug information about the plugin
  • Added link to admin user profile to view the logs for that user
  • Added Export to CSV button to Activity Logs
  • Added user search field to the logs table
  • Added option to prefix usermeta keys with the current blog prefix to avoid sharing contact IDs and tags across sub-sites on multisite installs (can be enabled from the Advanced settings tab)
  • Added logging for when a date failed to sync to the CRM because the input date format couldn’t be converted to a timestamp

  • Added Emercury site tracking

  • Added support for custom objects with HubSpot
  • Added notice to HubSpot integration about enabling marketing contacts for the WP Fusion app
  • Added Phone 1 Extension, Phone 1 Type, Phone 2, Phone 2 Extension, Phone 2 Type fields for sync with Infusionsoft
  • Added social fields for sync with Infusionsoft / Keap (click Refresh Available Fields to load them)
  • Added support for syncing to Date/Time fields with Keap and Infusionsoft
  • Added dynamic tagging support to Mailchimp integration (requires resetting the settings for existing installs)
  • Added Salesforce OAuth integration – Salesforce users will need to go to the WP Fusion settings page one time and grant OAuth permissions to use the new API


  • Tested for WordPress 5.9
  • Improved – Staging site detection will now prompt you whether to recognize the new site URL as the main site vs. staying in staging mode (similar to WooCommerce Subscriptions)
  • Improved – Filter Queries will now be bypassed when DOING_CRON is set to true
  • Improved – When using Filter Queries – Advanced, posts protected by taxonomy terms will be properly excluded
  • Improved performance with checking post access against taxonomy term restrictions
  • Improved – Logs will now show “user-login” as the source when data was synced due to Login Meta Sync or Login Tags Sync
  • Improved – Auto login will set a cookie wordpress_logged_in_wpfusioncachebuster which should bypass caching on most configurations
  • Improved – If the full WP Fusion is activated, the WP Fusion Lite plugin will be automatically deactivated
  • Improved – Removed some redundant data in the logs when HTTP API logging is enabled
  • Improved – HTTP API logging will now show JSON-decoded request and response bodies where applicable
  • Improved – HTML tags will be removed when exporting the activity logs to .csv
  • Improved – When resetting the main settings page, the cached contact IDs and tags will be deleted for all users (this fixes “Invalid contact ID” errors when switching between CRM accounts)
  • Improved – Stopped ending auto-login sessions on registration (user_register hook)
  • Improved – Select Tags boxes in Appearance >> Menus editor will now lazy load their tags, for improved menu editing performance
  • Improved – If a field type is set to “raw” an empty value loaded over the CRM will erase the value saved in WordPress
  • Improved – If a field type is set to multiselect and it is stored as a comma-separated text value, the value will be synced as an array with supported CRMs
  • Improved – If a page using an auto-login query string (?cid=) is refreshed, for example due to a form submission, this will no longer force reload the contact’s tags from the CRM
  • Improved – Dates displayed with the [[user_meta]] shortcode will now use the site’s current timezone

  • Improved – ActiveCampaign integration now fully uses the WordPress HTTP API instead of the ActiveCampaign PHP SDK

  • Improved ActiveCampaign error handling so that it now looks at the response code instead of message (some errors were not being caught properly with non-English accounts)
  • Improved – ActiveCampaign HTTP timeout extended to 20 seconds (instead of 15)
  • Improved Autonami error handling
  • Improved – Added a notice to the logs when a new ConvertKit subscriber is being created with a random tag due to no default tag being set
  • Added support for loading multiselect data from Copper
  • Improved logging with Drip, when an email address is changed to an address that already has a subscriber record
  • Improved – A successful API response from Drip for a subscriber will remove the Inactive badge in the admin
  • Improved – Stopped syncing user ID when updating Gist subscribers (should cause records to get merged less often)
  • Improved HubSpot error handling
  • Improved – Read-only tags and lists (i.e. with HubSpot) will no longer show up in Apply Tags dropdowns (only Required Tags dropdowns)
  • Improved – HubSpot’s site tracking script is now disabled on the WooCommerce My Account page, to prevent the script from trying to sync account edits with the CRM
  • Improved – When creating a new lead in Kartra, the user’s IP address will be sent by default
  • Improved Mailchimp API performance for applying and removing tags
  • Improved Mailchimp API performance when loading available tags
  • Improved Mailchimp contact ID lookup — will now only return exact matches (fixes an issue where tags would be applied to the wrong contact when using sub-inboxes with Gmail)
  • Improved – Mailchimp Audience select box is moved to the Setup tab and fields and tags can be loaded for a new audience without having to save the settings first
  • Improved – Mailchimp setup will now show a warning if you try to connect and there are no audiences in your account
  • Improved logging of authentication errors with Salesforce
  • Improved Zoho error handling and made error messages clearer

Bug Fixes

  • Fixed – Outgoing API calls to remove and apply the same tag in the same request will be ignored (fixes issue of tag changes getting processed out of order in the CRM)
  • Fixed PHP warning calling wp_fusion()->user->get_user_meta() when not logged in
  • Fixed fatal error loading the role field with an array value (now the first array value will be used as the role)
  • Fixed the Prevent Reapplying Tags setting not working if at least one of the tags to be applied was new
  • Fixed PHP notice “wpdb::prepare was called incorrectly” when checking taxonomy term access rules on posts
  • Fixed HTML not saving in the Default Restricted Content Message since 3.38.0
  • Fixed special characters getting synced to the CRM HTML encoded since 3.38.0
  • Fixed apply tags via AJAX endpoints resulting in a 403 error since 3.38.0
  • Fixed empty date fields being synced as 0 which could evaluate to January 1st 1970 in some CRMs
  • Fixed date values before 1970 not being synced correctly
  • Fixed access checks sometimes failing when using tag names with HTML special characters in them
  • Fixed tags with > and < symbols getting loaded from the CRM HTML-encoded
  • Fixed PHP warning in class WPF_User when registering a new user with no first or last name
  • Fixed PHP warning in the admin when editing a page that has child pages
  • Fixed – Removed wp_kses_post() on restricted content message (was breaking login forms)
  • Fixed http_request_failed errors from the WordPress HTTP API not being logged as errors
  • Fixed JavaScript error with Resync Tags button on admin user profile
  • Fixed serialized data not being unserialized during a Push User Meta operation
  • Fixed links not displaying in the activity logs since 3.38.0

  • Fixed import by tag with ActiveCampaign sometimes importing contacts with the wrong tag ID when the search string matched multiple tags

  • Fixed ActiveCampaign multiselect fields loaded as text being prepended/appended by ||
  • Fixed Fatal error: Cannot declare class AC_Connector since 3.38.0
  • Fixed updated Copper API URL
  • Fixed multiselect data not syncing to Copper
  • Fixed checkbox data not syncing to Copper
  • Fixed 422 error with Drip when trying to sync data into a field that had a dash or space in the field ID
  • Fixed an empty API response from Drip marking users as Inactive
  • Fixed import tool with Drip not importing unsubscribed subscribers
  • Fixed import tool with Drip not importing more than 1000 subscribers
  • Fixed issue syncing tags with Emercury for subscribers that had upper case letters in their email address
  • Fixed PHP warning in Emercury integration
  • Fixed update contact method not working with FluentCRM (REST API)
  • Fixed Import Users tool not working with FluentCRM (same site)
  • Fixed initial REST authentication (Groundhogg, FluentCRM, Autonami) sometimes breaking if there was a trailing slash at the end of the REST URL
  • Fixed “contact data not found” error receiving Groundhogg REST webhooks
  • Fixed “The tags must be an array.” error message with HighLevel when using Create Tag(s) from Value
  • Fixed checkbox fields not syncing with HubSpot
  • Fixed fatal error in HubSpot integration when using site tracking and an API error was encountered trying to get the tracking ID
  • Fixed wpf_infusionsoft_safe_tags filter not stripping invalid characters out of tag category names
  • Fixed – Infusionsoft integration will force all numeric values to sync as text to get around “java.lang.Integer cannot be cast to java.lang.String” errors
  • Fixed countries with e-acute symbol in their name not syncing to the Country field with Infusionsoft
  • Fixed Infusionsoft not loading more than 1000 available tags per category
  • Fixed Intercom rejecting new subscribers without a last name
  • Fixed PHP warning loading subscriber with no tags from Intercom
  • Fixed updates to existing contacts not working with Klaviyo
  • Fixed deleted tags in Mailchimp not being removed from the dropdowns in WP Fusion
  • Fixed Incomplete Address error with Mailchimp when syncing United States of America as the country, but not specifying a state
  • Fixed 5 second timeout loading a contact with Maropost (increased to 20s)
  • Maropost bugfixes
  • Fixed – Updated Maropost API calls to use SSL API endpoint
  • Fixed Ontraport integration not creating new contacts with missing emails (even though Ontraport allows contacts to not have an email address)
  • Fixed – Salesforce dates will now be formatted using gmdate() instead of date() (fixes some time zone issues)
  • Fixed error syncing array values with Sendinblue
  • Fixed Sendinblue error “attributes should be an object” when syncing data without any custom fields


  • Developers – The active CRM object is now passed by reference via the wp_fusion_init_crm action and can be operated on
  • Developers – The process lock time for the background worker will now respect the site’s PHP max_execution_time. The lock time will be the max time + 30 seconds.
  • Developers: Data loaded from the CRM will now be passed through wp_kses_post() instead of sanitize_text_field() (since 3.38), to permit syncing HTML inside of custom fields
  • Developers – Added filter wpf_query_filter_cache_time
  • Developers – Added filter wpf_restricted_terms_for_user
  • Developers – Added filter wpf_taxonomy_rules
  • Developers: Added filter wpf_wp_kses_allowed_html
  • Developers – Added constants WPF_CONTACT_ID_META_KEY and WPF_TAGS_META_KEY
  • Developers – Added function wpf_get_current_user_email()
  • Developers – Added function wpf_clean_tags() (same as wpf_clean() but allows special characters)
  • Developers – Fixed missing second argument $force_update in wpf_get_contact_id()
  • Developers: Fixed wpf_get_contact_id() sometimes returning an empty string instead of false when a contact record wasn’t found

3.38.2 – 8/18/2021

  • Fixed error Call to undefined function get_current_screen() since 3.38.0 when performing some admin actions
  • Fixed auto-login links not working since 3.38.0
  • Fixed initial default field mapping not being stored after setup until the settings were saved the first time
  • Developers: Removed WPF_* prefix from 3rd party CRM SDK classes (to comply with wordpress.org plugin guidelines)

3.38.0 – 8/13/2021

  • Big cleanup and refactoring with improvements for security, internationalization, and documentation
  • Added View in CRM URL for Jetpack CRM
  • Fixed user profile updates overwriting Jetpack CRM contacts
  • Fixed logs getting flushed when hitting Enter in the pagination box
  • Deleted unused XMLRPC modules in the Infusionsoft iSDK
  • Developers: Added function wpf_get_option() (alternative for wp_fusion()->settings->get())
  • Developers: Added function wpf_clean()
  • Developers: Deprecated wp_fusion()->settings->get_all()
  • Developers: Changed wp_fusion()->settings->set_all( $options ) to wp_fusion()->settings->set_multiple( $options )

3.37.31 – 8/7/2021

  • Fixed XSS vulnerability on logs table in the admin.

3.37.30 – 8/6/2021

New CRMs

New Features

  • Added View In CRM links (direct link to the contact record) for all CRMs that support it
  • Added a Send Welcome Email option in the Imported Users settings
  • Added Picture URL field for sync with CapsuleCRM
  • Added Job Title field for sync with Capsule CRM
  • Added unique_id field for sync with Ontraport
  • Added Owner ID field for sync with Intercom
  • Added Google Analytics fields for sync with Intercom


  • Improved – Wildcards * can now be used in the Allowed URLs setting for Site Lockout
  • Improved – Added warning for admins when viewing a post that has access rules enabled, but no redirect specified
  • Improved – If the Limit User Roles setting is in use, and a user without a CRM contact record has their role changed to a valid role, a new contact record will be created in the CRM
  • Improved – Return after login cookies will now be set if access is denied and the restricted content message is shown (previously it only worked after a redirect)
  • Improved – Comments forms will be pre-filled with the temporary user’s details during an auto-login session
  • Improved – If a field type is set to text then arrays will be converted to comma-separated strings for syncing
  • Improved – Stopped “Unknown Lists” from being loaded from HubSpot
  • Improved – Custom leadsource tracking variables registered via the wpf_leadsource_vars filter will show up on the Contact Fields list automatically
  • Improved – Contact fields settings will default to suggested usermeta / CRM field pairings
  • Improved – If you have more than 1,000 tags, they will be loaded in the admin via AJAX when you focus on the dropdown (improves admin performance)
  • Improved site tracking with EngageBay (logged-in users will now be identified to the tracking script by email address)
  • Improved site tracking with Mautic after guest form submission
  • Added indicator in the logs when a pseudo field or read only field (i.e. user_registered) has been loaded from the CRM
  • Added notification badge on WP Fusion Logs admin menu item to indicate when there are unseen API errors in the logs
  • Added logging when a site tracking session has been started for a guest, for ActiveCampaign, HubSpot, and EngageBay
  • Added error message when connecting to FluentCRM (REST API) and pretty permalinks aren’t enabled on the CRM site

Bug Fixes

  • Fixed console errors in the Widgets editor since WP 5.8
  • Fixed auto-login loading the user’s tags on every page load
  • Fixed fatal error with Drip SDK and PHP 8
  • Added nonce verification to Flush All Logs button (improved security)
  • Fixed custom fields not syncing with Maropost
  • Fixed PHP warning updating contacts with Intercom
  • Fixed Capsule CRM not loading more than 100 tags
  • Fixed undefined index PHP warning loading data from ActiveCampaign
  • Fixed “Invalid email address” error with Mailerlite when Email Changes setting was set to Duplicate
  • Fixed error syncing array formatted data to Intercom
  • Fixed fatal error with Klick-Tip when making API calls using expired credentials
  • Fixed datetime fields being synced to ActiveCampaign in 12h format (fixed to 24h format)
  • Fixed fatal error trying to sync multidimensional arrays to the CRM
  • Fixed default fields not being enabled for sync in the settings after first setting up the plugin
  • Fixed the default owner for new Zoho contacts overriding a custom owner
  • Fixed fatal error when enabling ActiveCampaign site tracking while WP Fusion is in staging mode
  • Fixed PHP warning syncing array values with HighLevel
  • Fixed PHP notices in Groundhogg integration


  • Added wpf_get_users_with_contact_ids() function
  • Developers: wp_fusion_init action will now only fire if WP Fusion is connected to a CRM
  • Developers: Added wpf_get_lookup_field() function for getting the API name of the CRM field used for contact lookups (usually Email)
  • Developers: Added wpf_infusionsoft_safe_fields filter (strips out Asian characters loaded over the API in field names to prevent XML parse errors)
  • Developers – added wpf_get_users_with_tag( $tag ) function
  • Developers – added wpf_get_datetime_format() function and wpf_datetime_format filter
  • Developers – Added wpf_get_tags() function
  • Developers – Added action wpf_meta_box_content_{$post->post_type}
  • Developers – Refactored user_can_access() function for better performance and readability
  • Developers: Added wpf_disable_crm_field_select4 and wpf_disable_tag_select4 filters
  • Developers: removed register_shutdown_function() in API queue in favor of the “shutdown” WordPress action

3.37.18 – 5/18/2021

New CRMs

New Features


  • Added notice to the logs when Filter Queries is running on more than 200 posts of a post type in a single request
  • Added warning during HubSpot setup if site isn’t SSL secured
  • Added additional context to the “Can not operate manually on a dynamic list.” error with HubSpot
  • Improved performance with taxonomy term access rules
  • Improved – Active HubSpot lists will now show as “read only” when selected
  • Improved – User-entered fields on the Contact Fields list will now show under their own heading
  • Improved support for syncing phone numbers with HighLevel
  • Improved – user_email and user_pass will no longer be loaded from the CRM during login if Login Meta Sync is enabled
  • Improved error handing with HubSpot
  • Improved Filter Queries performance
  • Improved – Filter Queries / Advanced will now limit the post query to the first 200 posts of each post type (for improved performance)
  • Improved – Filter Queries will be bypassed while WP Fusion is processing a webhook
  • Improved – user_registered will now be synced back to the CRM after a user is imported via webhook (if enabled)
  • Improved – Edits to fields on contact records in FluentCRM will now be synced back to the user record automatically
  • Improved – Disabled the “API Queue” with FluentCRM and Groundhogg
  • Improved upgrade nags with WP Fusion Lite

Bug Fixes

  • Fixed Resync Tags batch operation getting hung up with Ontraport trying to load the tags from a deleted contact
  • EngageBay bugfixes
  • Fixed Filter Queries – Standard not working on search results
  • Fixed Export Users batch operation not respecting Limit User Roles setting
  • Fixed fatal error error handling error-level HTTP response code with NationBuilder
  • Fixed Capsule not loading more than 50 tags
  • Fixed an empty last_name field at registration defaulting to last_updated (with FluentCRM)
  • Fixed unwanted user meta getting synced back to the CRM when importing users if Push All was enabled
  • Fixed PHP warning trying to apply tags on view for deleted taxonomy terms
  • Fixed fatal error trying to apply tags to a deleted FluentCRM contact
  • Fixed HTTP API logging not working with MailJet
  • Fixed MailJet treating Contact Not Found errors as irrecoverable
  • Fixed duplicate State field with HighLevel
  • Fixed tag changes not being synced back properly from FluentCRM
  • Fixed being unable to disable First Name and Last Name fields from sync
  • Fixed fatal error on frontend if you selected Mautic as the CRM in the initial setup and saved the settings without entering API credentials
  • Fixed PHP warning ‘WPF_Lead_Source_Tracking’ does not have a method ‘prepare_meta_fields’ warning saving the settings
  • Fixed “Warning: Illegal string offset ‘crm_field'”


  • Added action wp_fusion_init
  • Added action wp_fusion_init_crm
  • Added wp_fusion_hide_upgrade_nags filter
  • Added wpf_query_filter_get_posts_args filter
  • Added wpf_is_post_type_eligible_for_query_filtering filter
  • Added wpf_should_filter_query filter
  • Added filter wpf_get_user_id
  • Added filter wpf_restricted_content_message
  • Added wpf_leadsource_cookie_name filter
  • Added wpf_referral_cookie_name filter
  • Added wpf_get_current_user() function
  • Added wp_fusion()->access->can_access_posts cache
  • Added wp_fusion()->access->can_access_terms cache
  • Added “wpf_filtering_query” property to WP_Query objects that are being affected by Filter Queries – Advanced
  • Improved – Third parameter ($post_id) to wpf_user_can_access filter will now be false if the item being checked is not a post

3.37 – 3/16/2021

New CRMs

  • Growmatik
  • HighLevel

New Features

  • Added “Default Not Logged-In Redirect” setting
  • Added [[user_meta_if]] shortcode (thanks @igorbenic!)
  • Added automatic detection for first_name and last_name fields during registration
  • Added View In CRM link to admin user profile for ActiveCampaign and Infusionsoft
  • Added option to set default format for usernames for imported users
  • Added option to limit Filter Queries to specific post types
  • Added user_nicename field for sync
  • Added “Apply registration tags” batch operation
  • Added Read Only indicator on non-writeable Salesforce fields
  • Added support for Datetime fields with ActiveCampaign
  • Added track_event function to ActiveCampaign integration
  • Added “ignoreSendingWebhook” parameter to EngageBay API calls
  • Added warning when curly quotes are detected in shortcode parameters
  • Added First Name and Last Name fields for sync with Intercom
  • Added support for loading picklist / multiselect fields from Salesforce
  • Added logging for when an API call to apply a tag isn’t sent because the user already has that tag
  • Added 1 second sleep time to Quentn batch operations to get around API throttling
  • Added additional Standard Fields for sync with Autopilot
  • Added Work Address fields for sync with NationBuilder
  • Added debugging message to logs page for when the site runs out of memory building the Users dropdown
  • Added Flush All Logs button at top of logs page
  • Added Start Date and End Date filters to the activity logs
  • Added admin notice when logs are set to Only Errors mode
  • Added link back to main settings page from the logs page


  • Tested and updated for WordPress 5.7

  • Removed AWeber integration

  • Improved – Parentheses can now be used in shortcode attributes to match tags with square brackets in the name
  • Improved – Added note about .csv imports to Import settings tab for Salesforce
  • Improved – Role slug or name can be loaded from the CRM and used to set a user’s role
  • Improved – Added notice in the logs when a user’s role or capabilities were changed via loading a new role from the CRM
  • Improved – Login Tags Sync and Login Meta Sync features will now give up after 5 seconds if the CRM API is offline
  • Improved – Added search filter to select boxes in the admin
  • Improved – Significantly reduced the amount of memory required for the main settings storage
  • Improved – Admin notices from other plugins will be hidden on the WPF settings page
  • Improved – Available tags and available fields have been moved to their own wp_options keys for improved performance
  • Improved – The wpf_options options key is now set to autoload, for improved performance
  • Improved – AJAX’ified the page redirect select in the meta box for improved admin performance
  • Improved performance with Filter Queries – Advanced, query results for the same post type will now be cached with wp_cache_set()
  • Improved performance – wpf-settings postmeta key will now be deleted on post save if there are no WPF settings configured for the post
  • Improved – If Staging Mode is enabled, site tracking scripts will be turned off with supported CRMs
  • Improved – Log messages will now use the correct custom object type (instead of “contact”) when a custom object is being edited
  • Improved – If FirstnameLastname or Firstname12345 are selected for the user import username format, and a user already exists with that username, the username will be randomized further
  • Improved – Test Connection / Refresh Available Tags errors will now be shown on the top of the settings page (instead of the Setup tab)
  • Improved – Logs will now show when an entry was recorded as a part of a batch operation
  • Improved admin style for consistency with the rest of WP
  • Improved – Data will no longer be synced to Salesforce for read-only fields
  • Improved – ConvertKit API timeout is now extended to 15 seconds
  • Improved support for multiselect fields with EngageBay
  • Improved NationBuilder error handling
  • Improved Mailchimp error handling
  • Improved EngageBay error handling
  • Improved Zoho error handling
  • Improved HubSpot error logging
  • Improved error handling with Groundhogg and FluentCRM when those plugins are deactivated

Bug Fixes

  • Fixed roles or capabilities loaded from the CRM being able to remove roles and/or capabilities from administrators
  • Fixed wp_capabilities field not saved in correct format when loaded from the CRM
  • Fixed Add New Field on Contact Fields list not saving when no CRM field was selected
  • Fixed Prevent Reapplying Tags setting not saving when un-checked
  • Fixed menu visibility controls sometimes getting output twice
  • Fixed Gutenberg block visibility not respecting auto login sessions
  • Fixed the logs getting flushed if the filter form was submitted using the enter key
  • Fixed imported users not respecting “role” field loaded in user meta
  • Fixed fatal error loading admin user profile when WP Fusion was not connected to a CRM
  • Fixed apostrophes getting escaped with slashes before being synced
  • Fixed header resync button on settings page not resyncing CRM lists
  • Fixed the No Tags filter in the users list showing all users
  • Fixed Create Tags from Value on user_role conflicting with Limit User Roles setting
  • Fixed post type rules taking priority over single post access rules for query filtering
  • Fixed some post types registered by other plugins not showing as options for Filter Queries – Post Types
  • Fixed menu items being hidden when Filter Queries was used in Standard mode and limited to specific post types
  • Fixed query filtering not working on queries that used post__in
  • Fixed auto-login session setting user to logged in when the contact ID was invalid
  • Fixed tag changes in FluentCRM not being synced back to WP Fusion
  • Fixed date-format fields sometimes not syncing correctly to Kartra
  • Fixed bug applying and removing tags with Growmatik
  • Fixed Mautic not loading more than 30 tags on some sites
  • Fixed dates loaded from HubSpot being loaded as milliseconds not seconds since the epoch
  • Fixed ActiveCampaign not loading more than 100 lists
  • Fixed ActiveCampaign integration not treating 429 status code as an error
  • Fixed Create Tag(s) from Value creating errors with NationBuilder
  • Fixed WP Fusion trying to handle API error responses from ontraport.com that originated with other plugins
  • Fixed Autopilot integration creating new contacts when email address wasn’t specified in update data
  • Fixed standard fields not being loaded from Autopilot
  • Fixed JavaScript error on settings page when connected to ConvertKit
  • Fixed HTTP API logging not showing up for ConvertKit
  • Fixed error when trying to add an entry to the logs before the CRM connection was configured
  • Fixed “Invalid argument” warning listing custom fields with some CRMs
  • Fixed PHP warning loading available users from Zoho
  • Fixed PHP warning trying to get tag ID from tag label when no tags exist in the CRM
  • Fixed PHP warning when force-ending an auto login session
  • Fixed PHP warning during login when Login Tags Sync is enabled
  • Fixed PHP notice “Constant DOING_WPF_BATCH_TASK already defined”
  • Fixed PHP warning in Salesforce integration
  • Fixed PHP notices in Mailjet integration


  • Added add_object() update_object() and load_object() methods to Salesforce, HubSpot, and Zoho
  • Added wpf_get_contact_id() function
  • Added wpf_bypass_query_filtering filter
  • Added wpf_query_filtering_mode filter
  • Added wpf_configure_setting_{$setting_id} filter
  • Added wpf_hubspot_auth_url filter
  • Added wpf_zoho_auth_url filter
  • Added wpf_api_preflight_check filter
  • Added third parameter $searchfield to wpf_salesforce_query_args filter
  • Improved – wpf_format_field_value in WPF_CRM_Base will stop imploding arrays (fixes issue syncing picklists options with commas in them to Salesforce and HubSpot)
  • Improved – the available CRMs are now loaded on plugins_loaded to better support custom CRMs modules in other plugins
  • Improved – Added second argument $user_meta to wpf_map_meta_fields filter

3.35 – 12/8/2020

New CRMs

  • FluentCRM

New Features

  • Added additional logging to show when meta values have been modified by wpf_format_field_value before being sent to the CRM
  • Added “Additional Actions” to admin user profile (Push User Meta, Pull User Meta, and Show User Meta) for debugging purposes
  • Added Re-Authorize With Hubspot button to re-connect via OAuth
  • Added option to disable admin menu editor interfaces
  • Added support for Mautic v3
  • Added support for new background_request flag with the Ontraport API
  • Added a Default Account setting for Salesforce

  • Added datetime field support to Zoho integration

  • Added support for dropdown and checkbox fields with Kartra
  • Added Work Address fields for sync with NationBuilder
  • Added Owner ID field for sync with Groundhogg
  • Added Profile Picture field for sync with Groundhogg
  • Added support for custom address fields with Mailchimp
  • Added Avatar field for sync with Jetpack CRM
  • Added Phone 3 through Phone 5 fields for syncing with Infusionsoft


  • Tested and updated for WordPress 5.6

  • Added warning when user_pass field is enabled for sync

  • Added logging for WP Fusion plugin updates
  • Added logging for when an invalid role slug was loaded from the CRM

  • Improved Hide From Menus setting – will now attempt to get a post ID out of a custom link

  • Improved (No Tags) and (No Contact ID) filters in the All Users list
  • Improved – Multiselect values loaded from ActiveCampaign will now be loaded as arrays instead of strings
  • Improved support for syncing First Name and Last Name with Gist
  • Improved – Post type archives will now respect wpf_post_type_rules access rules
  • Improved handling for merged / changed contact IDs to Ontraport
  • Improved – Moved ActiveCampaign tracking scripts to the footer

  • Improved error handling for MailPoet

  • Improved error handling with Drip
  • Improved error handling with MailJet
  • Improved error handling for NationBuilder

  • Updated ZeroBS CRM to Jetpack CRM

  • Removed Groundhogg < 2.x compatibility code

  • Removed dynamic tagging support from Groundhogg
  • Removed AWeber integration

Bug Fixes

  • Fixed custom fields not updating with Kartra
  • Fixed importer getting hung up on more than 100 contacts with HubSpot
  • Fixed importer with EngageBay
  • Fixed import tool with MailerLite
  • Fixed MailerLite integration using a case-sensitive comparison for email address changes
  • Fixed user_registered getting loaded from the CRM when a user was imported
  • Fixed Mailjet integration not loading more than 10 custom fields
  • Fixed ActiveCampaign not loading more than 100 custom fields
  • Fixed dates not formatted correctly with Mailjet
  • Fixed PHP warning loading contact data with ActiveCampaign
  • Fixed some issues with Sendinblue and email addresses that had capital letters
  • Fixed syncing empty multiselects to EngageBay not erasing the selected values in the CRM
  • Fixed multiselect fields not loading from EngageBay
  • Fixed PHP warning in EngageBay integration when loading a contact with no custom properties
  • Fixed users having to log in twice if they tried to log in during an auto-login session
  • Fixed taxonomy term settings not saving when trying to remove protection from a term
  • Fixed error adding new Zoho Leads without a last name
  • Fixed JS bug when editing taxonomy terms
  • Fixed settings page requiring an extra refresh after resetting before changing to a new CRM
  • Fixed “Wrong custom field format” error adding contacts to Kartra
  • Fixed loading dropdown and multi-checkbox type fields from Kartra
  • Fixed Salesforce not connecting when the password has a slash character in it
  • Fixed date fields not syncing properly with Groundhogg
  • Fixed applying tags on pageview in AJAX request during an auto login session not working on WP Engine
  • Fixed JSON formatting error applying tags with AgileCRM
  • Fixed – user_id will no longer be loaded during user imports
  • Fixed – Renamed class WPF_Options to WP_Fusion_Options to prevent conflict with WooCommerce Product Filter
  • Fixed MailEngine SOAP warning when MailEngine wasn’t the active CRM
  • Fixed user_meta shortcode not displaying field if value was 0
  • Fixed Lead Source Tracking not working for guests


  • Added “raw” field type
  • Added functions wpf_get_crm_field(), wpf_is_field_active(), and wpf_get_field_type()
  • Added wpf_set_user_meta filter
  • Added wpf_render_tag_multiselect_args filter
  • Added gettext support to wpf-admin.js and wpf-options.js strings
  • Added doing_wpf_webhook() function
  • Added pre_user_{$field} filter on user data being synced to the CRM

3.34 – 8/12/2020

New CRMs

  • Loopify
  • WP ERP
  • EngageBay

New Features

  • Added Set Current User option to auto-login system
  • Added Send Confirmation Emails setting for MailPoet
  • Added Status field for syncing with Drip
  • Added Time Zone and Language fields for Infusionsoft
  • Added Double Optin setting to Mailchimp integration
  • Added Username for sync with Kartra
  • Added priority option for Return After Login
  • Added option to set a default owner for new contacts with Zoho
  • Split Mautic site tracking into two modes (Standard vs. Advanced)
  • Added “Resync contact IDs for every user” batch operation
  • Added [[wpf_user_can_access]] shortcode
  • Added support for Groundhogg Advanced Custom Meta Fields
  • Added support for multiselect fields with Mautic
  • Added ability to create new tags in Groundhogg via WP Fusion
  • Added setting for additional allowed URLs to Site Lockout feature


  • WordPress 5.5 compatibility updates
  • If the user_meta shortcode is used for a field that has never been loaded from the CRM, WP Fusion will make an API call to load the field value one time
  • Improved support for Mautic site tracking
  • Improved support for syncing phone numbers with Sendinblue
  • If API call to get user tags fails or times out, the local tag cache won’t be erased
  • Intercom integration will now force the v1.4 API
  • Added compatibility notices in the admin when potential plugin conflicts are detected
  • Added validation to custom meta keys registered for sync on the Contact Fields list
  • Facebook OG scraper will now bypass access rules if SEO Show Excerpts is on
  • Improved error handling for Salesforce access token refresh process
  • Salesforce will now default to the field configured for sync with the user_email field as the lookup field for records
  • Improved filtering tool on the All Users list
  • Reduced the amount of data saved by the background worker to help with max_allowed_packet issues
  • Added staging mode notice on the settings page
  • Users added to a multisite blog will now be tagged with the Assign Tags setting for that site
  • Added notice if an auto-login link is visited by a logged-in admin
  • Added Refresh Tags & Fields button to top of WPF settings page
  • Improved support for syncing wp_capabilities and role fields

Bug Fixes

  • Fixed email address changes not getting synced after confirmation via the admin user profile
  • Fixed optin_status getting saved to contact meta with Groundhogg
  • Fixed Groundhogg custom fields updated over the REST API not being synced back to the user record
  • Fixed address fields not being synced back to WordPress after an admin contact save in Groundhogg
  • Fixed Mautic not importing more than 30 contacts using import tool
  • Fixed MailerLite subscriber IDs not loading properly on servers with PHP_INT_MAX set to 32
  • Fixed Infusionsoft form submissions starting auto-login sessions even if the setting was turned off
  • Fixed Spanish characters not showing in Infusionsoft tag names
  • Fixed SSL error connecting to Zoho’s Indian data servers
  • Fixed ActiveCampaign list Auto Responder campaigns not running on contacts added over the API
  • Fixed import tool not loading more than 10 contacts with Mailchimp
  • Fixed import tool not loading more than 100 contacts with MailerLite
  • Fixed import tool not loading more than 1,000 contacts with AgileCRM

  • Fixed Hide From Menus filter treating a taxonomy term as a post ID for access control

  • Fixed Filter Queries not working on the blog index page
  • Fixed Filter Queries not working on search results in Advanced mode
  • Fixed Filter Queries (Advanced) hiding restricted posts in the admin
  • Fixed archive restrictions not working if no required tags were specified
  • Fixed deletion tags not being applied on multisite sites when a user was deleted from a blog
  • Fixed Preview With Tag not working if the user doesn’t have a CRM contact record
  • Fixed restricted post category redirects not working if no tags was specified
  • Fixed Hide Term on post categories hiding terms in the admin when Exclude Administrators was off
  • Fixed restricted posts triggering redirects on a homepage set to Your Latest Posts in Settings >> Reading
  • Fixed Required Tags (All) tags not showing on lock icon tooltip in post tables

  • Updated User.com integration for new API endpoint

  • Klaviyo bugfixes
  • Maropost bugfixes


  • Added wpf_user_can_access() function
  • Added wpf_disable_tag_multiselect filter
  • Added wpf_salesforce_lookup_field filter
  • Added wpf_get_contact_id_email filter
  • Added wpf_batch_objects filter
  • Added X-Redirect-By headers when WP Fusion performs a redirect
  • Added HTTP API logging option
  • Added PHP error handling to logger
  • Added fallback method for background worker in case it gets blocked
  • Added setting for Prevent Reapplying Tags (Advanced)
  • Improved – Updated has_tag() function to accept an array or a string
  • Updated some ActiveCampaign API calls to v3 API

3.31 – 3/30/2020

New CRMs

  • ZeroBS CRM
  • MailEngine
  • Klick-Tipp
  • Quentn
  • SendFox

New Features

  • Added option to restrict access to individual menu items
  • Added Apply Tags on View option for taxonomy terms
  • Added Required Tags (not) setting to access control meta box
  • contactId can now be used as a URL parameter for auto-login with Infusionsoft
  • Added automatic data conversion for dropdown fields with Ontraport
  • Added data-remove-tags option to link click tracking
  • Added option to send welcome email to new users imported from ConvertKit
  • Added Default Optin Status option and optin_status syncing with Groundhogg
  • Added an alert to the status bar of the background worker if API errors were encountered during data export
  • Added Entries Per Page to Screen Options in logs
  • Added logging for API throttling with ConvertKit
  • Added support for dropdown-type fields with Copper
  • Added additional built in Gist fields for syncing


  • Removed extra column in admin list table and moved lock symbol to after the post title
  • Contacts will no longer be created in Ontraport without an email address
  • Removed non-editable fields from Ontraport fields dropdowns
  • Stopped loading meta for new user registrations with existing contact records
  • Leads will now be created in Gist instead of Users if the subscriber doesn’t have a user account
  • Logged in users and form submissions will now be identified to the Gist tracking script
  • Logged in users and guest form submissions will now be identified to the Autopilot tracking script
  • Slowed down batch operations with ConvertKit to get around API throttling
  • Improved debugging tools for background worker
  • Improvements to applying tags with Kartra using the new Kartra API endpoints
  • Gutenberg block will no longer output HTML if there’s nothing to display

Bug Fixes

  • Fixed duplicate content in Gutenberg block
  • Fixed messed up formatting of foreign characters in Gutenberg block
  • Fixed duplicate contact ID lookup API call for new user registrations with existing contact records
  • Fixed restricted content message not being output when multiple content areas were on a page
  • Fixed user_activation_key getting reset when importing new users and breaking Better Notifications welcome emails
  • Fixed “Return After Login” not working with WooCommerce account login
  • Fixed lead source variables not syncing to Ontraport
  • Stopped converting dates to GMT with Ontraport
  • Fixed Duplicate and Delete tool for MailerLite email address changes
  • Fixed New User Benchmark not firing with Groundhogg
  • Fixed changed email addresses not syncing to Sendinblue
  • Fixed bug in Import Tool with Sendinblue
  • Fixed Mautic not listing more than 30 custom fields
  • Fixed Mailchimp not loading more than 200 tags
  • Fixed underscores not loading in Infusionsoft tag labels
  • Fixed Invalid Data errors when syncing a number to a text field in Zoho
  • Fixed ActiveCampaign contact ID lookups returning error message when connected to non-English ActiveCampaign accounts
  • Gist compatibility updates for changed API methods
  • Fixed missing email addresses causing BirdSend API calls to fail
  • Fixed BirdSend only loading 15 available tags


  • Added wpf_get_current_user_id() function
  • Added wpf_is_user_logged_in() function
  • Auto login system no longer sets $current_user global
  • Removed admin authentication cookies from background worker
  • Added wpf_auto_login_cookie_expiration filter
  • Added wpf_salesforce_query_args filter
  • Added wpf_aweber_key and wpf_aweber_secret filters

3.27 – 11/27/2019

New CRMs

  • BirdSend
  • Klaviyo

New Features

  • Added Site Lockout feature
  • Added Company, GDPR Consent, and Agreed to Terms fields for sync with Groundhogg
  • Added signup_type field to NationBuilder
  • Added Australia and India data server support to Zoho integration
  • Added “capabilties” format for syncing capability fields
  • Added “ucwords” formatting option to user_meta shortcode
  • Added option to hide WPF meta boxes from non admins


  • Style compatibility updates for WP 5.3
  • Improved Mautic site tracking
  • Improved handling of merged contacts with Mautic
  • Improved site tracking with HubSpot for guests
  • Updated ActiveCampaign site tracking scripts
  • Updated Intercom integration to use API v1.4
  • Enabled Import Users tab for Intercom
  • Improved support for Country field with Groundhogg
  • All site tracking scripts will now recognize auto login sessions
  • Disabled comments during auto login sessions
  • wpf_tags_applied and wpf_tags_removed actions will now run when tags are loaded from the CRM
  • Enabled welcome email in MailPoet when a contact is subscribed to a list

Bug Fixes

  • Sendinblue bugfixes
  • Copper bugfixes
  • Fixed Gist API URL
  • Fixed special characters getting escaped on admin profile updates
  • Fixed NationBuilder not loading more than 100 available tags
  • Fixed fatal error when initializing GetResponse connection
  • Fixes for HubSpot accounts with over 250 lists
  • Fixed Mailchimp contact ID getting disconnected after email address change
  • Fixed NationBuilder Primary address fields not syncing
  • Fixed Mailchimp compatibility with other Mailchimp plugins
  • Fixed tags not being removed with Ontraport
  • Fixed content protection on blog index page
  • Fixed “Create tags from value” option for profile updates
  • Fixed initial connection to Groundhogg on Groundhogg < 2.0
  • Performance improvements and bugfixes for background worker

3.25 – 8/24/2019

New CRMs

  • GetResponse
  • MailPoet

New Features

  • Added option to return people to originally requested content after login
  • Added ability to create new user meta fields from the Contact Fields list
  • Added dynamic tagging based on field values (for supported CRMs)
  • Added ability to modify field data formats via the Contact Fields list
  • Added option to remove tags when a page is viewed
  • Added option to completely hide a taxonomy term based on tags
  • Added option to enable HubSpot site tracking scripts
  • Added auto-login by email address for MailerLite
  • Added “Advanced” mode for Filter Queries setting
  • MailerLite will now re-subscribe subscribers when they submit a form
  • Added additional monitoring tools for background process worker
  • Groundhogg 2.0 compatibility
  • Added social media fields to Kartra
  • Added date_joined field for Kartra
  • Added new default profile fields for Drip
  • Added wpf_salesforce_auth_url filter for Salesforce
  • Added multiselect support for HubSpot
  • Added unsubscribe notifications for ConvertKit
  • Added “wpf_salesforce_auth_url” filter for overriding Salesforce authorization URL
  • Added details about configured tags to protected content in post list table
  • Added Email Changed event for Drip
  • Added Is X? fields for NationBuilder
  • Added option to disable “Preview With Tag” in admin bar
  • Added active lists to list dropdowns with HubSpot
  • Added IP address when adding new contacts with Mautic
  • Added Organisation field for syncing to Capsule
  • Auto login with Mailchimp now works with email address
  • Added Portuguese translation (thanks @João Alexandre)


  • Improved OAuth access token refresh process with Salesforce
  • Access control meta box now requires the manage_options capability
  • Drip site tracking will now auto-identify logged in users
  • Groundhogg will now load tags and meta immediately instead of requiring sync
  • Improved handling for State fields with Ontraport
  • Better handling for missing last names in Salesforce
  • Slowed down HubSpot batch operations to get around API limits
  • Mautic performance improvements
  • Preview With Tag now bypasses Exclude Admins setting
  • Compatibility updates for custom field formatting with Mailerlite

Bug Fixes

  • Fixed typo in NationBuilder fields dropdown
  • Fixed email address changes with Infusionsoft causing opt-outs
  • Fixed notifications going out when using the built in import tool
  • Bugfixes for Preview with Tag feature
  • Fixed Infusionsoft API errors with addWithDupCheck method
  • Fixed ConvertKit contact ID lookup failing
  • Fixed creating a contact in Zoho without a last name
  • Fixed slashes getting added to tags with apostrophes in Mautic
  • Fixed redirect causing multiple API calls with contact ID lookup in Mautic
  • Fixed MailChimp looking up contacts from other lists
  • Fixed empty date type fields sending 1/1/1970 dates
  • Copper bugfixes
  • Capsule bugfixes
  • Platform.ly bugfixes

3.24 – 4/25/2019

New CRMs

  • Sendlane
  • Mailjet

New Features

  • Added option to return people to originally requested content after login
  • Added admin users column showing user tags
  • Added AgileCRM site tracking scripts
  • Added Organization Name field for ActiveCampaign
  • Added merge settings option to bulk edit
  • Added setting to remove “Additional Fields” section from settings
  • Added date-format parameter to user_meta shortcode
  • Added “Required tags (all)” option to post restriction meta box
  • Added option for login meta sync
  • Added additional status triggers for Mailerlite webhooks
  • Added option to embed Mautic site tracking scripts
  • Added Mautic mtc_id cookie tracking for known contacts
  • Improved Ontraport site tracking script integration
  • Improved HubSpot error logging

Bug Fixes

  • Platform.ly bugfixes
  • Mailerlite bugfixes
  • ConvertKit fixes for unconfirmed subscribers
  • Fix for email addresses with + sign in MailChimp
  • Fix for contact ID lookup with HubSpot
  • Updated AWeber subscriber ID lookup to only use selected list
  • Better AWeber exception handling
  • Fix for changing email addresses with Drip
  • Limit logging table to 10,000 rows
  • Fixes for wpf_user_can_access filter
  • Fix for background worker when PHP’s memory_limit is set to -1
  • Comments are now properly hidden when a post is restricted and no redirects are specified
  • Set 1 second sleep time for Drip batch processes to avoid API timeouts
  • Fixes for custom objects with Ontraport

3.22 – 2/2/2019

New CRMs

  • Drift
  • Autopilot
  • Customerly
  • Copper
  • Groundhogg
  • NationBuilder

New Features

  • Added Gutenberg block for content restriction
  • Added support for Salesforce Topics
  • Added import tool for Mautic
  • Added support for updating email addresses in Kartra
  • Added handling for changed contact IDs in Infusionsoft
  • Added user_registered field for syncing
  • Added option for per-post restricted content messages
  • Added Pull User Meta batch operation
  • Added support for picklist / multiselect fields in Zoho
  • Added import by Topic for Salesforce
  • Added support for using tag labels in link click tracking
  • Added Gist (ConvertFox) webhooks support
  • Added custom fields support for Kartra
  • Added webhooks support for Platform.ly

Bug Fixes

  • Capsule bugfixes
  • UserEngage bugfixes
  • Gist (ConvertFox) bugfixes
  • Drift tagging bugfixes
  • Fixed bug where bulk-editing pages would remove WPF access rules
  • Fix for syncing with unsubscribed subscribers in ConvertKit
  • Fix for incomplete address error with MailChimp
  • Fix for error creating contacts in Intercom without any custom fields
  • Fix for wpf_update_tags shortcode in auto-login sessions
  • Fix for imports larger than 50 with Capsule
  • Fix for Sendinblue not creating contacts if custom attributes weren’t present

3.18 – 11/5/2018

  • Added Platform.ly CRM support
  • Added support for Salesforce topics
  • More flexible staging mode
  • Added logged in / logged out shortcode
  • Added option to sync tags on user login
  • Capsule bugfixes
  • Added option to choose contact layout for new contacts with Zoho
  • Added custom fields support for Intercom
  • Fix for “restrict access” checkbox not unlocking inputs correctly
  • Fix for import button not working in admin

3.17.1 – 9/9/2018

  • Additional sanitizing of user input data

3.17 – 9/8/2018

  • Initial release of Lite version

For previous release notes see the changelog.