WP Fusion Lite – Marketing Automation and CRM Integration for WordPress Plugin
WP Fusion Lite synchronizes your WordPress users with contact records in your CRM or marketing automation system.
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.
⚡ 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.
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.
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
Installation
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.
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:
You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. Report a security vulnerability.
Improved – With Ontraport lead source tracking, the any enabled lead source fields will be synced to the corresponding Last Referrer fields when a contact is updated
Fixed custom properties with Klaviyo being treated as system properties if they are prefixed with a dollar sign
Removed the “Source” field from the Klaviyo integration (was not a system field)
Developers: Added filter wpf_background_process_memory_utilization_percentage to allow customizing the memory utilization percentage for the background process
3.43.16 – 7/1/2024
Added Source field for sync with Klaviyo
Improved – New contacts added to Pipedrive will be automatically have their marketing status set to “subscribed”
3.43.15 – 6/24/2024
Fixed fatal error when tracking events with FluentCRM and the event value is empty
Fixed HTTP API logging option not showing with Customer.io
Developers: added filter wpf_user_has_tag to allow filtering the tags passed in to an access check against a user
Developers: added property wp_fusion()->access->filter_queries_priorty to allow setting Advanced query filtering to a custom priority
3.43.14 – 6/17/2024
Added support for lists with Constant Contact (can be configured for new user registrations in the General settings)
Added support for Drip site tracking (was removed at the end of 2022 but Drip has re-enabled it)
Fixed – If Push All was enabled, adding a user from the admin could log a notice “no metadata found for user” if individual usermeta keys were updated before user_register was triggered
Fixed tags not being applied to new ActiveCampaign contacts when the “Account Name” field was enabled for sync
Fixed tags showing up twice in the Select Tags dropdowns with Encharge
3.43.10 – 5/20/2024
Added an Encharge CRM integration
Fixed users loaded twice by the import tool (i.e. from two different contact records with a matching email) counting twice in the import history table
Fixed HubSpot access token getting set to blank if there was a timeout or gateway error while connecting to HubSpot to refresh the token
Fixed date fields in Groundhogg being synced in GMT, not local time, which sometimes caused dates with times to sync as the wrong day
Fixed – If the user’s tags were saved to usermeta as a boolean true or false instead of an array, this could cause that value to be returned from wpf_get_tags(), and cause errors with array_intersect() and other array functions
Developers: Updated Klaviyo API to the 2024-02-15 revision
3.43.9 – 5/13/2024
Updated Constant Contact API token to use new API limits of 250,000 calls per day (was previously 10,000 calls per day) – Requires re-authorizing the connection via the prompt
3.43.8 – 5/6/2024
Fixed errors pertaining to adding and removing subscribers from Klaviyo lists
Fixed fatal error handling updating a contact in ActiveCampaign when a “Email address already exists in the system.” error is encountered while creating a contact
Fixed – Log entries will now be saved using gmdate() instead of date() to avoid timezone conversion shenanigans
3.43.7 – 4/29/2024
Improved – If wpf_get_contact_id() is called with $force_update, and there is an API error, the existing cached contact ID (if any) will be returned instead of false
Fixed infinite loop when using the “Refresh if access is denied” setting and the API call to look up the user’s contact ID fails
3.43.6.2 – 4/25/2024
Fixed HighLevel tags not being converted to lowercase for the remove_tags() API call
Improved – If a duplicate error is returned from the ActiveCampaign API, the contact will be looked up again by email address
Fixed dynamic tags (“Create tag(s) from value”) not applying with guest registrations
Fixed event tracking with Klaviyo
Fixed HighLevel integration treating the error “The token does not have access to this location” as an expired access token and requiring a refresh
Fixed errors not being logged when an invalid contact ID was used as an auto-login URL parameter
Fixed Save Changes button in the setup not being clickable when using the Staging CRM
Fixed Groundhogg integration syncing empty dates as 1/1/1970
Developers: added function wpf_get_iso8601_date()
3.43.5 – 4/15/2024
Improved – The Bento webhook handler will now use the email field from the payload for lookups of existing users
Fixed notice Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated when other plugins called __() without a text domain
3.43.4.1 – 4/9/2024
Fixed fatal error calling methods that aren’t in the WPF_Staging class, while in staging mode (i.e. Argument #1 ($callback) must be a valid callback, class WPF_Staging does not have a method "get_connection_id")
Fixed fatal error Argument #1 ($array) must be of type array, string given in the admin post list table with PHP 8.2 when a required tag on a post was saved with invalid data
3.43.3 – 4/2/2024
Added support for importing all contacts from the CRM via the import tool (rather than a specific segment), with selected platforms
Improved – While in staging mode you can now resync the lists of available tags and fields from the CRM
Improved – Added a warning indicator when an unknown tag (from a previous CRM) is saved to a Select Tag(s) dropdown
Improved – If staging mode is enabled in wp-config.php, the Staging Mode checkbox will be disabled in the settings
Fixed API calls before the init hook not getting logged with HTTP API logging
Fixed Account Name not syncing with ActiveCampaign since the switch to the v3 API in v3.41.36
Fixed tags created by WP Fusion in FluentCRM (same site) using the tag label as the slug (instead of the sanitized title)
Developers – wp_fusion()->user->apply_tags() and wp_fusion()->user->remove_tags() will now attempt to convert tag labels to IDs if the CRM doesn’t support adding tags (helps with switching CRMs)
3.43.2 – 3/25/2024
Improved – Query parameters will now be removed from the “Current Page” and “Landing Page” URLs before being synced to the CRM
3.43.1 – 3/19/2024
Improved – When using HTTP API logging, the amount of time to perform the API call will be recorded to the logs
Improved – When an API error is encountered, the full API call and response will be logged
Improved – When debugging the admin settings page using the &debug URL parameter, the contents of wpf_import_groups will now be output with the rest of the debug data
Fixed Klavio bugs when adding contacts and syncing fields
Fixed the import tool tracking failed user imports as successful for purposes of the table of historical imports
Fixed user IDs getting tracked multiple times in the settings table listing user import history, artifically inflating import counts
3.43.0 – 3/18/2024
New Features
The Great Date Update
Added an option with Klaviyo to subscribe contacts to lists with marketing consent
Added support for the Canadian data center with Zoho
Added support for loading and displaying read-only fields with HubSpot
Improvements
Improved Zoho integration
Errors during the initial OAuth connection with Dynamics 365 will now be displayed as a banner on the setup screen
Updated expired Microsoft Dynamics 365 app secret
With Klaviyo, the country code will now be prepended to phone numbers if it’s missing during a WooCommerce checkout or profile update
Improved WP Fusion’s admin settings and performance
Bug Fixes
Fixed deprecated utf8_encode() warnings in the Infusionsoft/Keap XMLRPC library
Fixed fatal error Unsupported operand types: null + array with syncing lead source data without any other contact data present since 3.42.10
Fixed for HighLevel API update of Feb 8th (now sending 403 status codes when access tokens expire, was previously 401)
Fixed filters added on wpf_format_field_value before init being un-hooked with Zoho
Fixed error Timestamp must be of type int when syncing string timestamps with Groundhogg (same site)
Fixed notice not being logged when an update webhook was received but no matching user was found
Fixed missing nonce check on search log users AJAX handler
Developer
updated the Klaviyo API version to 2023-12-15
added function wpf_phone_number_to_e164() to convert phone numbers to E.164 format
If a user has a contact ID and no tags, the tags meta will now be deleted from the usermeta table for that user (reduces database size for users with no tags)
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
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
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
Developer
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
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
Developer
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
Added option with FluentCRM (REST API and same site) to set the default status for new contacts to either Subscribed or Pending (and trigger a double opt-in email)
Added link to edit the contact in the CRM for HighLevel (requires a Resync Contact IDs operation to load the edit URLs)
Added new scopes to HubSpot integration: timeline, crm.objects.custom.read, and crm.objects.custom.write
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 – 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