Description
CarvFlow Sync with ActiveCampaign creates configurable connections between WordPress data sources and ActiveCampaign. It currently supports WooCommerce, WooCommerce Subscriptions when available, and Forminator when available.
Each connection can use its own:
- Forminator form.
- ActiveCampaign list.
- Email, first name, last name, and phone mappings.
- Custom field mappings.
- Automatically created ActiveCampaign text fields.
The plugin also includes:
- Immediate queueing for new submissions.
- A historical import tool for existing Forminator submissions.
- Small batches and persistent cursors for large datasets.
- A maximum of three automatic attempts per failed job.
- An error report and activity log.
- Smart daily maintenance at 03:15 Europe/Lisbon.
- Support for compound name, address, date, and time fields.
- Clean cron removal during deactivation and uninstall.
All features included in version 2.0.2 are free. The internal feature registry is structured so optional add-ons can be introduced later without changing the current free feature set.
External service
This plugin connects to the ActiveCampaign API only after an administrator provides an ActiveCampaign API URL and API key.
Submission data selected in the connection mapping is sent to the configured ActiveCampaign account to create or update contacts and subscribe them to the selected list. ActiveCampaign’s own terms and privacy policy apply to that data.
No data is sent to Carv or to any unrelated third-party service.
Development source
The JavaScript and CSS files distributed in this plugin are the human-readable source files used at runtime. No npm, webpack, minifier, transpiler, or other build step is required to regenerate them. In particular, assets/admin.js and assets/woocommerce-admin.js are maintained and shipped as readable source code.
Synchronization reports
The Sync report tab keeps only the latest 3 synchronization runs. Detailed rows are stored in plugin-owned database tables as compressed, encrypted payloads and displayed with server-side pagination. This avoids loading large imports into memory while still allowing administrators to verify what was sent.
2.1.0
- More reliable country extraction from Forminator address fields.
- Encrypted and paginated reports for the latest 3 synchronization runs.
2.2.1
- Recovery release based on the stable 2.1.0 codebase.
- Removes the unstable WooCommerce admin module introduced in 2.2.0.
- Clears any pending WooCommerce sync event/state left by 2.2.0.
- Preserves existing Forminator connections, reports, settings, queue, and contact data.
WooCommerce synchronization
Create separate WooCommerce connections for active WooCommerce Subscriptions or customers who purchased one or more configured product IDs. Product filters accept multiple comma-separated IDs, and manual backfills run in small background batches.
2.3.1
- Added WooCommerce product multi-selection, field catalogue, two-record preview, and custom field mapping.
- Supports subscription products and course products in the same consistent workflow.
Installation
- Upload the plugin ZIP from Plugins > Add New > Upload Plugin.
- Activate the plugin.
- Open CarvFlow Sync > API & Security and enter the ActiveCampaign API URL and API key.
- Test the API connection.
- Use CarvFlow Sync > Forminator Sync to create Forminator connections when Forminator is installed.
- Use CarvFlow Sync > WooCommerce Sync to create WooCommerce connections when WooCommerce is installed.
- Submit or synchronize a test contact and review the relevant queue and sync report.
FAQ
-
Are new submissions sent immediately?
-
New submissions are added to the local queue immediately. The queue processor sends them automatically in small batches.
-
Can I import submissions that existed before installing the plugin?
-
Yes. Use the manual import tool in API & security. It processes historical submissions in batches and then verifies the registered contacts.
-
Does the daily cron synchronize every contact?
-
No. Smart maintenance checks only contacts with errors, contacts that were never verified, or contacts not verified for more than 30 days.
-
What happens after repeated errors?
-
A job is attempted at most three times automatically. After the third failure it is blocked, displayed in the error report, and can be retried manually.
-
Are uploaded files sent to ActiveCampaign?
-
No. Uploads, images, signatures, CAPTCHA fields, passwords, and payment fields are excluded.
-
What happens when the plugin is uninstalled?
-
Cron events, continuation events, execution state, and locks are always removed. Settings and custom tables are deleted only when Delete all plugin data on uninstall was enabled. Enabling that option displays an explicit destructive-action confirmation, and WordPress asks for confirmation again before deleting a plugin.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“CarvFlow Sync with ActiveCampaign” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “CarvFlow Sync with ActiveCampaign” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.5.5
- Aligned the package and text domain with the final WordPress.org slug
carvflow-sync-activecampaign. - Removed
Tested up tofrom the PHP plugin header and kept it only in this readme.
2.5.4
- Aligned the text domain and package structure with the WordPress.org assigned slug
carvflow-sync-activecampaign. - Removed the broken Plugin URI header; a plugin-specific public URL can be added after the CarvFlow product page is live.
- Removed the hard Forminator dependency header because WooCommerce connections can operate independently; integrations are detected at runtime.
- Distributed admin JavaScript as readable runtime source and documented that no build/minification step is required.
2.5.1
- WooCommerce profile-difference detection now derives monitored values from each connection’s saved field mappings.
- Added dynamic discovery of public scalar WordPress user meta fields from preview customers.
- Added generic WordPress user fields to WooCommerce mappings.
- Profile-triggered and daily checks hash only the standard contact data and profile-resolvable mapped fields for that connection.
- Existing 2.4.x/2.5.0 profile country and speciality mappings remain compatible, but new connections are no longer tied to those field names.
- Normal WooCommerce order/subscription payloads can also resolve mapped WordPress user fields.
- Updating does not require recreating connections or importing SQL.
2.5.0
- Subscription connections now synchronize the current status for active, cancelled, expired, pending, and other matching subscriptions.
- Existing subscription connections automatically create/reuse an ActiveCampaign text field named “Subscription status” when no status field is configured.
- Added configurable purchase-status rules while preserving “all matching product orders” as the default.
- Reworked the 03:00 WooCommerce profile check to scan eligible orders/subscriptions first instead of querying every WordPress user.
- Added queue payload deduplication for identical pending/retry/processing jobs.
- Added ActiveCampaign 429 and 5xx handling with Retry-After support and 1/5/15 minute backoff.
- Added profile country and speciality resolution to normal WooCommerce order/subscription payloads.
- Added report columns for synchronization reason, reference, eligibility, status, product IDs, HTTP code, and attempt.
- Existing settings, connections, mappings, queues, and reports are upgraded in place.
2.4.2
- Added mouse drag-to-scroll support to wide synchronization report tables on desktop while preserving native touch scrolling and normal interaction with links and controls.
2.4.1
- Changed synchronization reports to show each sent field in its own table column with horizontal scrolling.
2.4.0
- New submenu structure, separate Forminator/WooCommerce diagnostics, and change-only WooCommerce profile synchronization.
2.3.3
- Corrected WooCommerce subscription OR logic and status-independent product purchase matching.
2.3.2
- Fixed active-subscription pagination so only wc-active subscriptions are scanned.
- Product mismatches no longer inflate Processed or Skipped counters.
- Added separate scanned and eligible counters and clears stale 2.3.1 WooCommerce run state on upgrade.
2.0.2
- Hardened admin input handling with explicit nonce checks, unslashing, and sanitization.
- Centralized and prepared database access, including identifier placeholders for plugin and Forminator tables.
- Removed unsafe SQL interpolation and corrected dynamic placeholder handling.
- Hardened queue, historical import, retry, preview, and uninstall database operations.
- Added stricter output escaping and prefixed uninstall variables.
- No database migration is required; existing settings, connections, queues, contacts, and logs are preserved.
2.0.0
- Added a structured Instructions tab with implementation steps and a go-live checklist.
- Changed all user-facing interface copy to English.
- Added WordPress.org-compatible plugin headers, readme, license, and dependency metadata.
- Added an explicit confirmation before enabling full data deletion on uninstall.
- Added a free feature registry and extension filters for future optional add-ons.
- Kept all existing functionality free.
- Preserved the synchronization, queue, retry, cron, and database behavior from version 1.9.2.