=== WP Fusion Lite - Marketing Automation and CRM Integration for WordPress ===
Contributors: verygoodplugins
Tags: crm, marketing automation, sync, integration, membership
Requires at least: 4.6
Requires PHP: 7.4
Tested up to: 6.8.2
Stable tag: 3.46.3.1
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Source Code: https://github.com/verygoodplugins/wp-fusion-lite

WP Fusion Lite synchronizes your WordPress users with contact records in your CRM or marketing automation system.

== Description ==

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.

= Features =

* Automatically [create new contacts in your CRM](https://wpfusion.com/documentation/getting-started/general-settings/?utm_campaign=free-plugin&utm_source=wp-org#automatically-create-contact-records-for-new-users) when users register in WordPress
* [Restrict access to site content](https://wpfusion.com/documentation/getting-started/access-control/?utm_campaign=free-plugin&utm_source=wp-org) using tags and lists in your CRM
* [Synchronize any WordPress user data]((https://wpfusion.com/documentation/getting-started/syncing-contact-fields/?utm_campaign=free-plugin&utm_source=wp-org)) with custom fields in your CRM
* [Apply tags when users register](https://wpfusion.com/documentation/getting-started/general-settings/?utm_campaign=free-plugin&utm_source=wp-org#assign-tags)
* [Import contacts from your CRM](https://wpfusion.com/documentation/tutorials/import-users/?utm_campaign=free-plugin&utm_source=wp-org) as new WordPress users and generate passwords for them
* [Export WordPress users](https://wpfusion.com/documentation/tutorials/batch-operations/?utm_campaign=free-plugin&utm_source=wp-org) to your CRM as contact records
* [Track visitor activity](https://wpfusion.com/documentation/tutorials/site-tracking-scripts/?utm_campaign=free-plugin&utm_source=wp-org) using your CRM's tracking scripts (with supported CRMs)

> 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](https://wpfusion.com/?utm_campaign=free-plugin&utm_source=wp-org). 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](https://wpfusion.com/documentation/integrations/?utm_campaign=free-plugin&utm_source=wp-org), check out [one of our paid licenses](https://wpfusion.com/pricing/?utm_campaign=free-plugin&utm_source=wp-org).

[youtube https://www.youtube.com/watch?v=XolMCxnDMvQ] 

= Benefits =

* ⚡ 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 =

 * 📦 [Installation Guide](https://wpfusion.com/documentation/getting-started/installation-guide/?utm_campaign=free-plugin&utm_source=wp-org)
 * 🔒 [Controlling access to content with CRM tags](https://wpfusion.com/documentation/getting-started/access-control/?utm_campaign=free-plugin&utm_source=wp-org)
 * 📝 [Shortcodes](https://wpfusion.com/documentation/getting-started/shortcodes/?utm_campaign=free-plugin&utm_source=wp-org)
 * 👀 [Displaying CRM data in WordPress](https://wpfusion.com/documentation/tutorials/displaying-crm-data-in-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
 * 🔥 [Sync WordPress users with CRM contact records](https://wpfusion.com/documentation/getting-started/syncing-contact-fields/?utm_campaign=free-plugin&utm_source=wp-org)
 * 🔑 [Import users from your CRM and generate passwords](https://wpfusion.com/documentation/tutorials/import-users/?utm_campaign=free-plugin&utm_source=wp-org)
 * 📤 [Export users and metadata to your CRM](https://wpfusion.com/documentation/tutorials/batch-operations/?utm_campaign=free-plugin&utm_source=wp-org)
 * 📈 [Sync Google Analytics and other leadsource variables with your CRM](https://wpfusion.com/documentation/tutorials/lead-source-tracking/?utm_campaign=free-plugin&utm_source=wp-org)
 * 🏷️ [Track user activity using tags](https://wpfusion.com/documentation/getting-started/tracking-user-activity/?utm_campaign=free-plugin&utm_source=wp-org)
 * 🔮 [Auto login links](https://wpfusion.com/documentation/tutorials/auto-login-links/?utm_campaign=free-plugin&utm_source=wp-org)

> 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

[youtube https://www.youtube.com/watch?v=wzRajxCUxNI]

= Supported CRMs and marketing automation platforms =

* [ActiveCampaign](https://wpfusion.com/documentation/installation-guides/how-to-connect-activecampaign-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [AgileCRM](https://wpfusion.com/documentation/installation-guides/how-to-connect-agiilecrm-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Autopilot](https://wpfusion.com/documentation/installation-guides/how-to-connect-autopilot-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Autonami](https://wpfusion.com/documentation/installation-guides/how-to-connect-autonami-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Bento](https://wpfusion.com/documentation/installation-guides/how-to-connect-bento-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [BirdSend](https://wpfusion.com/documentation/installation-guides/how-to-connect-birdsend-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Capsule](https://wpfusion.com/documentation/installation-guides/how-to-connect-capsule-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Constant Contact](https://wpfusion.com/documentation/installation-guides/how-to-connect-constant-contact-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [ConvertKit](https://wpfusion.com/documentation/installation-guides/how-to-connect-convertkit-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Copper](https://wpfusion.com/documentation/installation-guides/how-to-connect-copper-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Customerly](https://wpfusion.com/documentation/installation-guides/how-to-connect-customerly-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Customer.io](https://wpfusion.com/documentation/installation-guides/how-to-connect-customer-io-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Drift](https://wpfusion.com/documentation/installation-guides/how-to-connect-drift-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Drip](https://wpfusion.com/documentation/installation-guides/how-to-connect-drip-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [EmailOctopus](https://wpfusion.com/documentation/installation-guides/how-to-connect-emailoctopus-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Encharge](https://wpfusion.com/documentation/installation-guides/how-to-connect-encharge-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Engage](https://wpfusion.com/documentation/installation-guides/how-to-connect-engage-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [EngageBay](https://wpfusion.com/documentation/installation-guides/how-to-connect-engagebay-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Flexie](https://wpfusion.com/documentation/installation-guides/how-to-connect-flexie-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [FluentCRM (same site or REST API)](https://wpfusion.com/documentation/installation-guides/how-to-connect-fluentcrm-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [GetResponse](https://wpfusion.com/documentation/installation-guides/how-to-connect-getresponse-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Gist](https://wpfusion.com/documentation/installation-guides/how-to-connect-gist-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Groundhogg (same site or REST API)](https://wpfusion.com/documentation/installation-guides/how-to-connect-groundhogg-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Growmatik](https://wpfusion.com/documentation/installation-guides/how-to-connect-growmatik-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [HighLevel](https://wpfusion.com/documentation/installation-guides/how-to-connect-highlevel-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [HubSpot](https://wpfusion.com/documentation/installation-guides/how-to-connect-hubspot-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Infusionsoft](https://wpfusion.com/documentation/installation-guides/how-to-connect-infusionsoft-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Intercom](https://wpfusion.com/documentation/installation-guides/how-to-connect-intercom-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Jetpack CRM](https://wpfusion.com/documentation/installation-guides/how-to-connect-jetpack-crm-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Kartra](https://wpfusion.com/documentation/installation-guides/how-to-connect-kartra-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Klaviyo](https://wpfusion.com/documentation/installation-guides/how-to-connect-klaviyo-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Klick-Tipp](https://wpfusion.com/documentation/installation-guides/how-to-connect-klick-tipp-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Loopify](https://wpfusion.com/documentation/installation-guides/how-to-connect-loopify-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [MailChimp](https://wpfusion.com/documentation/installation-guides/how-to-connect-mailchimp-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [MailEngine](https://wpfusion.com/documentation/installation-guides/how-to-connect-mailengine-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [MailerLite](https://wpfusion.com/documentation/installation-guides/how-to-connect-mailerlite-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Mailjet](https://wpfusion.com/documentation/installation-guides/how-to-connect-mailjet-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [MailPoet](https://wpfusion.com/documentation/installation-guides/how-to-connect-mailpoet-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Maropost](https://wpfusion.com/documentation/installation-guides/how-to-connect-maropost-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Mautic](https://wpfusion.com/documentation/installation-guides/how-to-connect-mautic-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Microsoft Dynamics 365](https://wpfusion.com/documentation/installation-guides/how-to-connect-microsoft-dynamics-365-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [MooSend](https://wpfusion.com/documentation/installation-guides/how-to-connect-moosend-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [NationBuilder](https://wpfusion.com/documentation/installation-guides/how-to-connect-nationbuilder-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Omnisend](https://wpfusion.com/documentation/installation-guides/how-to-connect-omnisend-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Ontraport](https://wpfusion.com/documentation/installation-guides/how-to-connect-ontraport-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Ortto](https://wpfusion.com/documentation/installation-guides/how-to-connect-ortto-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Pipedrive](https://wpfusion.com/documentation/installation-guides/how-to-connect-pipedrive-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Platform.ly](https://wpfusion.com/documentation/installation-guides/how-to-connect-platform-ly-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [PulseTechnologyCRM](https://wpfusion.com/documentation/installation-guides/how-to-connect-pulsetechnologycrm-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Quentn](https://wpfusion.com/documentation/installation-guides/how-to-connect-quentn-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Salesflare](https://wpfusion.com/documentation/installation-guides/how-to-connect-salesflare-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Salesforce](https://wpfusion.com/documentation/installation-guides/how-to-connect-salesforce-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [SendFox](https://wpfusion.com/documentation/installation-guides/how-to-connect-sendfox-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Sender.net](https://wpfusion.com/documentation/installation-guides/how-to-connect-sender-net-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [SendinBlue](https://wpfusion.com/documentation/installation-guides/how-to-connect-sendinblue-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Sendlane](https://wpfusion.com/documentation/installation-guides/how-to-connect-sendlane-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Tubular](https://wpfusion.com/documentation/installation-guides/how-to-connect-tubular-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [UserEngage](https://wpfusion.com/documentation/installation-guides/how-to-connect-userengage-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [WP ERP](https://wpfusion.com/documentation/installation-guides/how-to-connect-wp-erp-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)
* [Zoho](https://wpfusion.com/documentation/installation-guides/how-to-connect-zoho-to-wordpress/?utm_campaign=free-plugin&utm_source=wp-org)


For more info on CRM compatibility, [check out the compatibility table](https://wpfusion.com/documentation/faq/crm-compatibility-table/?utm_campaign=free-plugin&utm_source=wp-org).

> 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

== Screenshots ==

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

== 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.

For CRM-specific setup information, see our [Installation Guide](https://wpfusion.com/documentation/getting-started/installation-guide/?utm_campaign=free-plugin&utm_source=wp-org).

== Frequently Asked Questions ==

= Who is it for? =

WP Fusion is built for anyone using a [CRM or marketing automation platform](https://wpfusion.com/documentation/faq/crm-compatibility-table/?utm_campaign=free-plugin&utm_source=wp-org), 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](https://wpfusion.com/documentation/getting-started/access-control/?utm_campaign=free-plugin&utm_source=wp-org), 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](https://wpfusion.com/documentation/faq/changelog/?utm_campaign=free-plugin&utm_source=wp-org).

= 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' );`

= How can I report security bugs? =

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.](https://patchstack.com/database/vdp/wp-fusion-lite)

= Where can I find the source code? =

The source code and build files for WP Fusion Lite are available on [GitHub](https://github.com/verygoodplugins/wp-fusion-lite).

= Do you have more FAQs? = 

Of course, see our [Frequently Asked Questions](https://wpfusion.com/documentation/).

== Changelog ==

= 3.46.3.1 - 7/5/2025 =
* Fixed Klaviyo deactivate URL not working in Lite plugin

= 3.46.3 - 7/5/2025 =
* Added dynamic tagging support to Zoho (type new tags into WP Fusion, generate tags based on product names and order statuses)
* Fixed applying and removing tags with Zoho failing with error "Invalid Data error: body" since 3.46.1

= 3.46.2 - 7/1/2025 =
* Added support for importing all contacts from Zoho using the import tool (not just by tag)
* Added support for validating the site for initiating the API connection directly from the Klaviyo and Pipedrive marketplaces
* Added support for revoking Klaviyo OAuth tokens (requirement for the Klaviyo marketplace)
* Fixed initial connection test with Zoho failing since 3.46.1
* Fixed Zoho access token refreshes failing since 3.46.1
* Fixed duplicate tags being applied to Salesforce contacts when applying tags via a multiselect field to guests
* Developers: the `DOING_WPF_WEBHOOK` constant was renamed to `WPF_DOING_WEBHOOK` to meet WordPress.org standards regarding plugin prefixes

= 3.46.1 - 6/24/2025 =
* Improved - The Zoho integration has been updated to use the latest API version (v8) to support the new custom field types
* Improved - When adding a new tag to a HubSpot multiselect field, the tag will now only be added if it doesn't already exist
* Fixed the Return After Login feature not respecting the "Redirect to" setting if the user does not have access to the requested page after logging in
* Fixed fatal error when creating a new WordPress user via a Groundhogg flow (same site)

= 3.46.0 - 6/16/2025 =
* Added support for Klaviyo OAuth 2.0 authorization
* Improved logging for missing or invalid email addresses during user registration
* Developers: Added `wpf_hubspot_add_engagement` filter to allow modifying the HubSpot engagement body before it is sent
* Developers: Updated the HubSpot engagements API to use the new v3 API
* Developers: `wp_fusion()->access->template_redirect()` now accepts an optional `$post_id` parameter to allow redirecting based on a specific post ID
* Developers: Added `wpf_return_after_login_url` filter to allow modifying the URL a user is redirected to after logging in, using the Return After Login feature

= 3.45.12 - 6/3/2025 =
* Improved - Added support for creating new custom fields in the CRM field select dropdowns even if there's an existing field with a partially matching name

= 3.45.11 - 5/28/2025 =
* Added logging when unknown tag names or IDs are passed to `wp_fusion()->user->apply_tags()`
* Fixed WP Fusion syncing empty user meta back to Groundhogg when a new user was created via a Groundhogg flow (same site)
* Fixed PHP warning `Calling key() on an object is deprecated` when creating a new tag with Groundhogg (REST API)

= 3.45.10 - 5/19/2025 =
* Fixed numeric strings being converted to integers when saving the WP Fusion settings, which removed leading zeros from numeric values
* Fixed Salesforce integration the default Record Type ID when creating objects (like Leads) that don't have a Record Type
* Developers: switched to using `wp_remote_request()` for Salesforce API calls, rather than `wp_safe_remote_request()`, to make debugging malformed URLs easier

= 3.45.9.1 - 5/8/2025 =
* Fixed "A valid URL was not provided" error with Zoho when using auto login links

= 3.45.9 - 5/7/2025 =
* Added a [Sender.net CRM integration](https://wpfusion.com/crm/sender/)
* Added `$gclid` field for sync with Zoho
* Improved - The Maropost integration can now load tags from contacts on any list in the account

= 3.45.8 - 4/29/2025 =
* Added ability to export and import the WP Fusion settings as a .csv file
* Added view in CRM links to the Maropost integration
* Fixed HTTP API logging not working with all Maropost API calls
* Fixed notices "Function _load_textdomain_just_in_time was called incorrectly" when loading the WP Fusion settings page in the admin since WordPress 6.8
* Fixed JavaScript error "that is not defined" when adding a new tag in the WP Fusion settings page
* Fixed users' first names being synced as 1 if no name was provided at registration and there was a boolean field in the POSTed data that contained "first"
* Developers: Calling `wp_fusion()->crm->add_tag()` will now add the tag and update the local cache of available tags
* Developers: Added function `wpf_update_option()` for updating options in the WP Fusion settings page

= 3.45.7 - 4/14/2025 =
* Improved - The initial HighLevel authorization flow has been updated to use the gray-labelled LeadConnectorHQ Marketplace
* Improved - If a contact is deleted or merged in HighLevel, WP Fusion will attempt to look up the contact by email address and retry the API call if a match is found
* Improved - If a contact is created or updated in HighLevel, and a "Duplicate Email Address" error is encountered, the existing contact will be updated
* Fixed `get_contact_id()` method with ActiveCampaign returning 403 / unauthorized if called before the `init` hook
* Fixed "Invalid URL provided" error when handling webhooks with Maropost
* Developers: Added `wpf_get_user_id_by_email()` function for getting a WordPress user ID from an email address

= 3.45.6 - 4/8/2025 =
* Added support for typing new segment names into the "Select List(s)" dropdown when [using a multiselect field for segmentation with HubSpot](https://wpfusion.com/documentation/crm-specific-docs/how-lists-work-with-hubspot/#using-a-multiselect-for-segmentation)
* Fixed email address not being synced from the REST API when updating a user
* Fixed custom fields not being synced from the REST API when updating a user

= 3.45.5 - 3/31/2025 =
* Added support for importing contacts with GetResponse
* Added support for syncing multiselect fields to GetResponse
* Fixed `wordpress_logged_in_wpfusioncachebuster` cookie not being cleared on auto-login logout
* Fixed GetResponse integration not validating the API key during setup
* Fixed loading contacts and pull user meta operations not working with GetResponse

= 3.45.4 - 3/24/2025 =
* Fixed Maropost integration not loading more than 200 available tags or custom fields
* Fixed error querying contact IDs or tags with Ortto, "incorrect size 0 of fields, minimum 1 and maximum 100 is required"
* Updated the `WPFSelect` React component to version 1.1.6

= 3.45.2 - 3/10/2025 =
* Improved - All custom fields sections in the Contact Fields list now link to their respective documentation pages
* Improved - Long tag names in the single-option tags select dropdown in the block editor will now break onto multiple lines for readability
* Fixed bugs in the FluentCRM (REST API) integration
* Fixed REST API updates to user profiles not being synced to the CRM

= 3.45.1 - 3/3/2025 =
* Added support for a [backup Service Account Key for Infusionsoft/Keap](https://wpfusion.com/documentation/installation-guides/how-to-connect-infusionsoft-to-wordpress/#backup-service-account-key). If the primary key is throttled, WP Fusion will automatically switch to the backup key until 12am UTC
* Added option to update existing user's tags and metadata when importing users via the [import tool](https://wpfusion.com/documentation/tutorials/import-users/)
* Improved - Salesforce will now retry the API call if a contact is not found, to allow for updates to deleted or merged contacts
* Fixed import tool errors with Groundhogg
* Fixed Keap / Infusionsoft custom fields and field mapping
* Fixed users imported via the import tool without a tag filter showing as "Unknown Tag" in the Import Groups log

= 3.45.0.1 - 2/26/2025 =
* Fixed timestamp conversion bugs and fatal errors in the Hubspot integration

= 3.45.0 - 2/24/2025 =
* Fixed - Removed `@abstract` docblock comment from `WPF_Background_Process` class, since it is not an abstract class, and this was causing validation errors on some servers
* Developers: Added `instructions.md` and `./.cursor/rules` files to aid in development with Cursor IDE
* Developers: Added `addOrderNote()` method to the Infusionsoft integration for adding order notes to orders

= 3.44.27 - 2/17/2025 =
* Improved error handling with Klaviyo - if an invalid field is passed, it will be removed from the request body and the request will be retried once
* Fixed errors with auto-login
* Fixed Secure Block for Gutenberg not working inside of a column block
* Fixed php errors when syncing custom fields to Klaviyo
* Developers: Added `wpf_infusionsoft_query_args` filter to allow overriding the default query arguments for the Infusionsoft contact ID lookup

= 3.44.26 - 2/11/2025 =
* Added (beta) support for authorizing HighLevel at the agency level, and switching between sub-locations within WP Fusion
* Improved - Added WP Fusion status column to the Event Tickets attendees list
* Improved - The KlickTipp integration now uses the WordPress HTTP API instead of the KlickTipp SDK, for improved logging and error handling
* Improved - The KlickTipp integration will now return an error message during setup if the account or account user does not have access to the API
* Improved performance of the WP Fusion tags select component in the block editor
* Improved - If the Klaviyo API returns a `duplicate_profile` error during a contact update for a WordPress user, the correct contact ID will now be saved to the user's record in WordPress
* Improved - If the Klaviyo API returns a `not_found` error during a contact update for a WordPress user, WP Fusion will attempt to look up the contact ID again by email address and retry the request if a match is found
* Fixed restricted posts without redirects appearing as password protected if they had comments
* Fixed: Moved the CRM initialization to `init` priority 1, so it runs before other init actions.
* Developers: Updated the Klaviyo API version to the latest v2025-01-15
* Developers: Added function `wpf_get_name_from_full_name()` to split a full name into first and last name components

= 3.44.25 - 2/3/2025 =
* Added support for [retrying failed API calls in the logs](https://wpfusion.com/documentation/getting-started/activity-logs/#retrying-api-calls)
* Added support for syncing dates and dates with times to Klaviyo
* Improved - The "A valid URL was not provided." HTTP response was not properly logging the request URI since it was being escaped by `esc_url_raw()`. The request URI is now being sanitized with `sanitize_text_field()`
* Improved - WP Fusion will no longer update a user's cached tags if they visit an auto-login link.
* Improved - With FluentCRM, if a 404 error is encountered while updating a contact or applying tags, WP Fusion will attempt to look up the contact ID again by email address and retry the request if a match is found
* Fixed fatal errors in the Klick Tipp integration
* Developers: Added `./cursor/rules` file for Cursor IDE
* Developers: The [Secure Block for Gutenberg](https://wpfusion.com/documentation/page-builders/gutenberg/) has been updated to `apiVersion 3.0`
* Developers: The REST API integrations for FluentCRM, Groundhogg, and FunnelKit will now only use `wp_safe_remote_get()` for the initial connection, rather than all API calls. This helps avoid some legitimate requests occasionally failing `wp_http_validate_url()`

= 3.44.24 - 1/27/2025 =
* Fixed bugs with the CRM field select dropdown
* Fixed fatal error in the Groundhogg integration in PHP 8.2 when syncing array formatted data
* Updated EngageBay integration to new API endpoint at https://api.engagebay.com/
* Developers: Removed the deprecation notice for the `wp_fusion\secure_blocks_for_gutenberg\API` class until we've had time to update all our addons to the new API endpoint
* Developers: Tested for WordPress 6.8

= 3.44.23 - 1/20/2025 =
* Improved - If an HTTP API error is encountered while logging an error-level message to the log, the HTTP API error will be logged as well
* Improved - The `wc_total_spent` and `wc_order_count` fields can now be exported to the CRM for existing users
* Improved - With CRMs that support creating custom properties or attributes via the API, the placeholder text in the CRM field select dropdowns will now show "type to add new" when the field is opened
* Improved - With Customer.io, when looking up a contact ID by email address, any custom properties will be saved into the WP Fusion CRM fields settings
* Improved performance when using the React based tags select component, the tags will be passed to the component rather than loaded over the REST API
* Fixed PHP warning in the logs when filtering by an invalid user ID
* Fixed infinite loop handling HighLevel 401 errors related to missing scopes
* Developers: cleaned up and standardized build processes for React integrations via webpack.config.js

= 3.44.22 - 1/13/2025 =
* Improved - Status icons in entries and orders lists now link to the contact record in the CRM
* Improved error handling for HighLevel authorization
* Fixed HighLevel integration not saving the location ID during initial setup when using the older [API-key based setup method](https://wpfusion.com/documentation/crm-specific-docs/highlevel-white-labelled-accounts/)
* Developers: Added `wpf_status_icon()` function for outputting a status icon in the admin

= 3.44.21 - 1/6/2025 =
* Added support for [creating and updating Accounts along with contacts in ActiveCampaign](https://wpfusion.com/documentation/crm-specific-docs/activecampaign-accounts/)
* Added "Unsubscribed" as a default status option for new FluentCRM contacts (same site and REST API)
* Added option to set new contacts to either Subscribed or Pending in FluentCRM (same site and REST API) when they check the opt-in checkbox on the WooCommerce checkout (default is Subscribed)
* Fixed JavaScript error when clicking the Test Connection button during the initial setup with Mailchimp

= 3.44.20 - 12/31/2024 =
* Fixed "Type to add new" message being appended each time you clicked on the Select Tag(s) dropdown in the WP Fusion settings

= 3.44.19 - 12/17/2024 =
* Improved - When exporting the activity logs to .csv, any current filters will now be applied to the export
* Improved - Settings from non-active CRMs will no longer be saved to the database to reduce the size in the options table
* Improved - When linking to a single entry in the logs, the page will now scroll to the correct entry
* Improved - Infusionsoft will log a more descriptive error message when a 500 error is returned
* Fixed fatal errors in the MailerLite integration

= 3.44.18 - 12/10/2024 =
* Improved - If an invalid attribute is passed to Klaviyo, the request will now be retried without the invalid attribute
* Fixed: PHP classes and objects stored to usermeta will be excluded from sync to fix errors with sanitization via `stripslashes_deep()`

= 3.44.17 - 12/2/2024 =
* Added option to apply tags when a user accepts a retention offer, and sync the offer title to the CRM, with the [WooCommerce Cancellation Surveys plugin](https://wpfusion.com/documentation/ecommerce/cancellation-survey-for-woocommerce-subscriptions/)
* Added support for connecting to Agency HighLevel accounts and switching between locations
* Improved - Updated language in the taxonomy term settings to better indicate that users must be logged in to access content when the "Restrict access" checkboxes are checked

= 3.44.16 - 11/26/2024 =
* Added additional validation on phone numbers for Klaviyo to prevent invalid numbers from blocking the API request
* Fixed HighLevel integration reading tags out of webhooks as a single comma-separated string

= 3.44.15 - 11/18/2024 =
* Improved - Added a warning when changing the FluentCRM tag format, since it requires resyncing tags for every user
* Developers: Added `wpf_phone_number_to_e164` filter to allow overriding the default country code added to phone numbers when converting to E.164 format
* Developers: The apply_tags(), remove_tags(), push_user_meta(), and user_register() PHP methods now return a WP_Error object if there was an error, instead of false, to aid in logging
* Developers: The get_contact_id() method now returns false if there was an API error, to allow integrations to try to create a new contact as a fallback
* Developers: Added `wpf_disable_api_queue()` function to allow bypassing the API queue for a single request
* Developers: Added a basic framework for unit testing, with more tests to follow. See readme.md for more information.

= 3.44.14 - 11/12/2024 =
* Added ability to [set a default Record Type](https://wpfusion.com/documentation/installation-guides/how-to-connect-salesforce-to-wordpress/#record-type) for new Salesforce contacts created by WP Fusion
* Added option to [switch between tag IDs and slugs](https://wpfusion.com/documentation/installation-guides/how-to-connect-fluentcrm-rest-api-to-wordpress/#tag-format) in the FluentCRM (REST API) integration. Tag IDs will be used by default for new installs.
* Added log indicator when user meta was synced due to the Push All setting
* Improved status indicator on the background worker
* Improved - the `wpf_phone_number_to_e164()` function will now remove leading 0s from phone numbers
* Improved - slightly reduced the byte size required to store the CRM field mapping in the database
* Fixed missing third parameter `$lookup_cid` in `wpf_get_tags()`
* Fixed wildcard symbol in the Site Lockout's "Allowed URLs" setting not respecting query parameters

= 3.44.13 - 11/1/2024 =
* Added error handling when an invalid contact ID is passed to wp_fusion()->crm
* Improved error handling for deleted or merged contacts in HubSpot

= 3.44.12 - 10/28/2024 =
* Added translations for German, Dutch, Spanish, and Portuguese
* Improved - If the full version of WP Fusion is installed, the Lite version will now be deactivated and a notice will be displayed
* Fixed a fatal error loading the user's tags when they weren't saved as an array in the database
* Fixed a fatal error calling `wpf_clean_tags()` when the CRM object wasn't loaded
* Translators: Updated .pot file, merged similar strings in the plugin, and fixed dozens of cases where strings were not translatable

= 3.44.11 - 10/21/2024 =
* Improved - Added IPv6 debugging information to the activation error message
* Improved - Batch operations
* Batch operations bugfixes

= 3.44.10 - 10/14/2024 =
* Added support for refunds via the Infusionsoft/Keap XMLRPC API (thanks @GBBourdages!!)
* Added Region and Time Zone fields to the Klaviyo integration

= 3.44.9 - 10/8/2024 =
* Improved - The new Infusionsoft/Keap API
* Fixed Account Name field not being loaded from ActiveCampaign

= 3.44.8 - 9/24/2024 =
* Improved - Numeric states or regions will no longer be synced to Infusionsoft/Keap to prevent an API error

= 3.44.7 - 9/23/2024 =
* Added support (via code snippet) for [syncing lead source data when updating a contact](https://wpfusion.com/documentation/tutorials/lead-source-tracking/#sync-lead-source-data-for-existing-contacts), instead of just when adding a new contact
* Improved - New auto-login sessions will now record the current URL to the logs
* Improved - Added links to CRM-specific setup documentation to the CRM configuration settings section
* Improved - Added note to HighLevel setup about logging in to the HighLevel app before attempting the connection
* Improved - Moved Mautic tracking script from footer to head to fix some console errors when playing mediaelement.js videos
* Improved - Updated the list tags pagination API call with Infusionsoft/Keap to use the new V2 compliant specification
* Developers: Added `wpf_api_{$method_name}` filter to allow [bypassing / overriding API calls in the CRM classes](https://wpfusion.com/documentation/filters/wpf_api_method_name/)
* Fixed `user_meta` shortcode not properly converting dates stores as timestamps
* Fixed lockout redirect URLs saved without a trailing slash causing an infinite redirect when a lockout redirect is triggered
* Fixed the tags array API call with Infusionsoft/Keap not being reindexed before being sent, which would cause "Input could not be converted" errors in cases where invalid tags had been removed from the payload

= 3.44.6 - 9/16/2024 =
* Improved - With CRMs that support typing new tags into the tags dropdown, the placholder will update to say "(type to add new)" when the dropdown is open
* Improved - The legacy Infusionsoft/Keap module at `wp_fusion()->crm->app` is now lazy-loaded, so it will only be loaded when needed instead of on every page load
* Fixed user role changes after a user's initial registration not being synced to the CRM

= 3.44.5 - 9/10/2024 =
* Improved - The Infusionsoft/Keap integration will now convert all two-digit state abbreviations to uppercase
* Improved - With Infusionsoft/Keap, if a US state is supplied for an address, and the country code is not provided, the country code will automatically be set to USA
* Improved - With Infusionsoft/Keap, if a region code is provided for an address, and the country code is not provided, a notice will be recorded to the logs
* Fixed the `wp_fusion_init_crm` hook not changing the CRM name on the Setup tab (when white-labelling)
* Fixed error in the HighLevel integration when removing tags from a deleted contact

= 3.44.4 - 9/3/2024 =
* Added a delay to batch operations with Klaviyo to avoid the 3 requests per second (60 per minute) API limit
* Improved - If you attempt to sync an invlalid country name or code with Infusionsoft/Keap, WP Fusion will remove the data from the API call to avoid an API error
* Improved - If you attempt to sync an invalid Owner ID with Infusionsoft/Keap, this will crash the API (error code 500). We've added a more descriptive error message to the log to indicate when this field is causing the error
* Improved - Extended the API timeout with Infusionsoft/Keap to 20 seconds
* Improved - If an API call to Infusionsoft/Keap fails with a 503 error ("service unavailable"), WP Fusion will now retry the API call after a 2 second delay
* Improved - WP Fusion will no longer apply timezone offsets to dates synced to Groundhogg (same site) that don't have a time component
* Improved Salesforce error logging for failed access token refreshes
* Fixed tags applied in FluentCRM (same site) automations, which were triggered by WP Fusion applying a tag, not syncing back to WordPress
* Fixed the Nickname field not syncing with Infusionsoft/Keap
* Fixed PHP warning "Automatic conversion of false to array is deprecated" when the shutdown hook runs multiple times

= 3.44.3 - 8/26/2024 =
* Improved support for syncing country and region codes with Infusionsoft/Keap
* Improved - With the [`user_meta` shortcode](https://wpfusion.com/documentation/getting-started/shortcodes/#displaying-user-meta), input strings of 8 characters or less will no longer be treated as timestamps (allows for dates like 2024 or 20240101 to be formatted correctly as dates)
* Improvements to the [add_object() method in the CRM base class](https://wpfusion.com/documentation/functions/add_object/)
* Improved logging when a user is synced to the CRM due to a role change
* Fixed errors syncing to Infusionsoft/Keap custom fields with special characters in the CRM field label (like, ?, !, etc)
* Fixed user registration actions running twice when using the Limit User Roles setting
* Fixed warning "Undefined variable $lists" in ActiveCampaign integration when creating a contact without any lists
* Fixed notice "Add to CRM was not checked, the user will not be synced to the CRM." when adding users manually via the WP Admin
* Fixed user role changes on the admin user profile triggering a sync to the CRM even if the role field is not enabled for sync
* Developers: added functions `wpf_country_to_iso3166()` and `wpf_state_to_iso3166()` to convert country and state codes to ISO 3166-1 alpha-3 and alpha-2 codes
* Developers: added filter `wpf_country_to_iso3166` to allow overriding the default country to ISO 3166-1 alpha-3 code conversion
* Developers: `wpf_is_field_active()` can now take an array of field IDs, it will return true if any of the fields are active

= 3.44.2 - 8/19/2024 =
* Added a text search field to the WP Fusion Logs page
* Improved API performance for applying and removing tags with Infusionsoft/Keap
* Improved - If an Infusionsoft/Keap API call is throttled due to too many requests, WP Fusion will now wait 2 seconds and try again
* Improved - The new Keap/Infusionsoft integration will now append to the existing Person Notes field when syncing notes, instead of replacing it
* Improved - With the new Infusionsoft/Keap integration, if a US state is specified for an address, and the country is not provided, the country code will be set to USA
* Improved - With the new Infusionsoft/Keap integration, if an invalid locale code is synced to the Language field, a notice will be logged and the field will be removed to avoid API errors
* Improved KlickTipp error handling

= 3.44.1.1 - 8/15/2024 =
* Added US state name to ISO 3166-2 code conversion for updating billing and shipping addresses with Infusionsoft / Keap
* Improved - Disabled syncing of the "Person Notes" field with Infusionsoft / Keap for existing contacts, since Keap now replaces the notes field when notes are synced, instead of appending to it
* Improved - Custom fields with Infusionsoft / Keap will now be sorted alphabetically in the WP Fusion field dropdowns
* Fixed "date" type fields (like Birthday) being synced to Infusionsoft / Keap as ISO8601 date-time data since 3.44.1, instead of the `Y-m-d` date format
* Fixed date/time fields with Infusionsoft not being formatted into the WordPress date / time format when loaded
* Fixed "Creation of dynamic property" PHP warnings in older CRM integrations with PHP 8.2

= 3.44.1 - 8/12/2024 =
* *Note:* Infusionsoft/Keap have removed the standard "Password" and "Username" fields from the new API, due to security concerns. To avoid errors when syncing passwords and usernames, WP Fusion will log a notice when these fields are detected and remove them from the sync. If you need to sync usernames and passwords, please create new custom text fields to store the data.
* Improved Ontraport error handling for duplicate and not found contacts
* Improved - (Infusionsoft / Keap) Added ISO 3166-1 country name conversion for "United States" to "USA" (previously only matched "United States of America")
* Fixed new Infusionsoft integration swapping the Billing and Shipping addresses
* Fixed new Infusionsoft integration not syncing dates in ISO8601 format
* Fixed new Infusionsoft integration not loading more than 10 available products
* Fixed error "PHP error: Uncaught TypeError: array_flip(): Argument #1 ($array) must be of type array" when syncing new custom fields with the new Infusionsoft REST API integration
* Fixed Groundhogg (same site) integration immediately loading custom fields that were added when creating a new contact
* Fixed date fields syncing to Groundhogg (REST API) as timestamps instead of dates
* Fixed tags that were removed in a FluentCRM automation (same site) that was triggered by WP Fusion applying a tag not triggering a sync back to the user's tags in WordPress
* Developers: `add_contact()` will now return a `WP_Error` if no fields are enabled for sync, instead of `false`
* Developers: The WP Fusion logs are now sorted by log ID instead of timestamp, to avoid confusion when changing the site's timezone

= 3.44.0.2 - 8/6/2024 =
* Fixed custom fields with spaces in the labels not migrating to the new Infusionsoft API field mapping
* Fixed "Unprocessable entity" errors when syncing custom fields with spaces in the label to Infusionsoft/Keap since 3.44.0

= 3.44.0.1 - 8/6/2024 =
* Fixed new Keap / Infusionsoft integration not loading more than 1000 each of tags or tag categories
* Fixed Keap / Infusionsoft integration not importing all contacts if no tag was specified for the import

= 3.44.0 - 8/5/2024 =
* Big update: WP Fusion has been updated to use the Infusionsoft REST API, and [Service Account Keys](https://developer.infusionsoft.com/pat-and-sak/) for authentication. You will need to update your API credentials to ensure uninterrupted service
* Improved - wpf_get_iso8601_date() will now more forcefully use GMT for the time zone instead of the local time
* Improved - Added logging if the HubSpot token refresh failed to save
* Improved - wp_fusion()->settings->set() will now return false if the setting was not successfully saved
* Fixed "Assign Lists" setting with ActiveCampaign applying to all new contacts
* Fixed "Resubscribe unsubscribed subscribers when they are added to new groups" setting not working with MailerLite
* Fixed MailerLite group IDs not saving correctly in the CartFlows UI
* Fixed missing crm.schemas.deals.write scope in the HubSpot integration, which sometimes caused deal properties to not save

For previous release notes see the [changelog](https://wpfusion.com/documentation/faq/changelog/?utm_campaign=free-plugin&utm_source=wp-org).