AI-Powered Messages
+OpenAI or Anthropic generates personalized copy tailored to each cart and shopper. No API key? Smart templates work beautifully out of the box.
+diff --git a/assets/img/logo.png b/assets/img/logo.png new file mode 100644 index 0000000..419bb2f Binary files /dev/null and b/assets/img/logo.png differ diff --git a/assets/screenshots/CartPulse AI/Analytics.png b/assets/screenshots/CartPulse AI/Analytics.png new file mode 100644 index 0000000..4755436 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Analytics.png differ diff --git a/assets/screenshots/CartPulse AI/Campaign Preset Library.png b/assets/screenshots/CartPulse AI/Campaign Preset Library.png new file mode 100644 index 0000000..abfe9c7 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Campaign Preset Library.png differ diff --git a/assets/screenshots/CartPulse AI/Campaigns.png b/assets/screenshots/CartPulse AI/Campaigns.png new file mode 100644 index 0000000..851b9d0 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Campaigns.png differ diff --git a/assets/screenshots/CartPulse AI/Cart Recovery Email.png b/assets/screenshots/CartPulse AI/Cart Recovery Email.png new file mode 100644 index 0000000..eab869f Binary files /dev/null and b/assets/screenshots/CartPulse AI/Cart Recovery Email.png differ diff --git a/assets/screenshots/CartPulse AI/Dashboard.png b/assets/screenshots/CartPulse AI/Dashboard.png new file mode 100644 index 0000000..db02179 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Dashboard.png differ diff --git a/assets/screenshots/CartPulse AI/Frontend - intervention.png b/assets/screenshots/CartPulse AI/Frontend - intervention.png new file mode 100644 index 0000000..0b8b8d4 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Frontend - intervention.png differ diff --git a/assets/screenshots/CartPulse AI/Frontend Preview Debug mode.png b/assets/screenshots/CartPulse AI/Frontend Preview Debug mode.png new file mode 100644 index 0000000..352b2ab Binary files /dev/null and b/assets/screenshots/CartPulse AI/Frontend Preview Debug mode.png differ diff --git a/assets/screenshots/CartPulse AI/Live Visitors.png b/assets/screenshots/CartPulse AI/Live Visitors.png new file mode 100644 index 0000000..865748b Binary files /dev/null and b/assets/screenshots/CartPulse AI/Live Visitors.png differ diff --git a/assets/screenshots/CartPulse AI/New Dashboard.png b/assets/screenshots/CartPulse AI/New Dashboard.png new file mode 100644 index 0000000..36d38d6 Binary files /dev/null and b/assets/screenshots/CartPulse AI/New Dashboard.png differ diff --git a/assets/screenshots/CartPulse AI/Setup Wizard page#01.png b/assets/screenshots/CartPulse AI/Setup Wizard page#01.png new file mode 100644 index 0000000..50a5ce8 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Setup Wizard page#01.png differ diff --git a/assets/screenshots/CartPulse AI/Setup Wizard page#02.png b/assets/screenshots/CartPulse AI/Setup Wizard page#02.png new file mode 100644 index 0000000..0c2799a Binary files /dev/null and b/assets/screenshots/CartPulse AI/Setup Wizard page#02.png differ diff --git a/assets/screenshots/CartPulse AI/Setup Wizard page#03.png b/assets/screenshots/CartPulse AI/Setup Wizard page#03.png new file mode 100644 index 0000000..d1c3534 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Setup Wizard page#03.png differ diff --git a/assets/screenshots/CartPulse AI/Setup Wizard page#04.png b/assets/screenshots/CartPulse AI/Setup Wizard page#04.png new file mode 100644 index 0000000..9fceccf Binary files /dev/null and b/assets/screenshots/CartPulse AI/Setup Wizard page#04.png differ diff --git a/assets/screenshots/CartPulse AI/Setup Wizard page#05.png b/assets/screenshots/CartPulse AI/Setup Wizard page#05.png new file mode 100644 index 0000000..8876ef0 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Setup Wizard page#05.png differ diff --git a/assets/screenshots/CartPulse AI/Spin Wheel Intervention.png b/assets/screenshots/CartPulse AI/Spin Wheel Intervention.png new file mode 100644 index 0000000..975f334 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Spin Wheel Intervention.png differ diff --git a/assets/screenshots/CartPulse AI/Spin to Win Campaign.png b/assets/screenshots/CartPulse AI/Spin to Win Campaign.png new file mode 100644 index 0000000..6939d5f Binary files /dev/null and b/assets/screenshots/CartPulse AI/Spin to Win Campaign.png differ diff --git a/assets/screenshots/CartPulse AI/Tools.png b/assets/screenshots/CartPulse AI/Tools.png new file mode 100644 index 0000000..fc081fa Binary files /dev/null and b/assets/screenshots/CartPulse AI/Tools.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-cart_value.png b/assets/screenshots/CartPulse AI/Trigger-cart_value.png new file mode 100644 index 0000000..ec37784 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-cart_value.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-checkout_abandon.png b/assets/screenshots/CartPulse AI/Trigger-checkout_abandon.png new file mode 100644 index 0000000..206f075 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-checkout_abandon.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-exit_intent.png b/assets/screenshots/CartPulse AI/Trigger-exit_intent.png new file mode 100644 index 0000000..723804e Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-exit_intent.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-idle_timeout.png b/assets/screenshots/CartPulse AI/Trigger-idle_timeout.png new file mode 100644 index 0000000..6bd1074 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-idle_timeout.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-scroll_depth.png b/assets/screenshots/CartPulse AI/Trigger-scroll_depth.png new file mode 100644 index 0000000..d728a1a Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-scroll_depth.png differ diff --git a/assets/screenshots/CartPulse AI/Trigger-tab_switch.png b/assets/screenshots/CartPulse AI/Trigger-tab_switch.png new file mode 100644 index 0000000..d9464b2 Binary files /dev/null and b/assets/screenshots/CartPulse AI/Trigger-tab_switch.png differ diff --git a/assets/screenshots/CartPulse AI/Weekly Performance Email.png b/assets/screenshots/CartPulse AI/Weekly Performance Email.png new file mode 100644 index 0000000..102b3ed Binary files /dev/null and b/assets/screenshots/CartPulse AI/Weekly Performance Email.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-cart-value.png b/assets/screenshots/CartPulse AI/intervention-cart-value.png new file mode 100644 index 0000000..6fdd0a2 Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-cart-value.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-checkout-abandon.png b/assets/screenshots/CartPulse AI/intervention-checkout-abandon.png new file mode 100644 index 0000000..dc2791a Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-checkout-abandon.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-exit-intent.png b/assets/screenshots/CartPulse AI/intervention-exit-intent.png new file mode 100644 index 0000000..ac95061 Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-exit-intent.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-idle-timeout.png b/assets/screenshots/CartPulse AI/intervention-idle-timeout.png new file mode 100644 index 0000000..7fea9b2 Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-idle-timeout.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-scroll-depth.png b/assets/screenshots/CartPulse AI/intervention-scroll-depth.png new file mode 100644 index 0000000..3009183 Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-scroll-depth.png differ diff --git a/assets/screenshots/CartPulse AI/intervention-tab-switch.png b/assets/screenshots/CartPulse AI/intervention-tab-switch.png new file mode 100644 index 0000000..57448c9 Binary files /dev/null and b/assets/screenshots/CartPulse AI/intervention-tab-switch.png differ diff --git a/assets/screenshots/CartPulse AI/settings-behavior.png b/assets/screenshots/CartPulse AI/settings-behavior.png new file mode 100644 index 0000000..62d9541 Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-behavior.png differ diff --git a/assets/screenshots/CartPulse AI/settings-connection.png b/assets/screenshots/CartPulse AI/settings-connection.png new file mode 100644 index 0000000..01ea9aa Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-connection.png differ diff --git a/assets/screenshots/CartPulse AI/settings-integrations.png b/assets/screenshots/CartPulse AI/settings-integrations.png new file mode 100644 index 0000000..397ae51 Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-integrations.png differ diff --git a/assets/screenshots/CartPulse AI/settings-intent-signals.png b/assets/screenshots/CartPulse AI/settings-intent-signals.png new file mode 100644 index 0000000..45e0cc0 Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-intent-signals.png differ diff --git a/assets/screenshots/CartPulse AI/settings-maintenance.png b/assets/screenshots/CartPulse AI/settings-maintenance.png new file mode 100644 index 0000000..809b6ee Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-maintenance.png differ diff --git a/assets/screenshots/CartPulse AI/settings-privacy.png b/assets/screenshots/CartPulse AI/settings-privacy.png new file mode 100644 index 0000000..1eeede5 Binary files /dev/null and b/assets/screenshots/CartPulse AI/settings-privacy.png differ diff --git a/assets/video/cartpulse-ai/video60s.mp4 b/assets/video/cartpulse-ai/video60s.mp4 new file mode 100644 index 0000000..c76a96d Binary files /dev/null and b/assets/video/cartpulse-ai/video60s.mp4 differ diff --git a/docs/cartpulse-ai.html b/docs/cartpulse-ai.html new file mode 100644 index 0000000..ebe2c05 --- /dev/null +++ b/docs/cartpulse-ai.html @@ -0,0 +1,1496 @@ + + +
+ + +AI-Powered Cart Abandonment Prevention for WooCommerce
+ +CartPulse AI is a WooCommerce plugin that detects when visitors are about to abandon your store and delivers intelligent, AI-powered interventions to recover lost sales. It combines real-time behavior tracking, exit-intent detection, and optional AI content generation to show the right message at the right moment — turning abandoned carts into completed purchases.
+ +Exit intent, idle timeout, scroll depth, tab switch, cart value, checkout abandon, URL pattern, referrer match, cart contains.
Popup, slide-in, top bar, bottom bar, fullscreen, inline, and spin-to-win wheel.
Personalized discounts, free shipping, social proof, urgency, objection handling, value reminders.
Optional OpenAI / Anthropic integration for dynamic, context-aware messaging. Works great without AI too.
4 Chart.js-powered charts: revenue line, bar, donut, and funnel. CSV export included.
Ready-made, one-click campaigns covering urgency, discounts, social proof, recovery, and gamification.
Split test variants with auto-winner detection at a configurable statistical confidence threshold.
Auto-detects 6 consent plugins, respects DNT, GDPR exporters/erasers, configurable data retention.
CartPulse AI ships with built-in templates that use merge tags to pull real WooCommerce data (cart totals, recent purchases, product ratings). No API key is required for core functionality. Adding an AI provider (OpenAI or Anthropic) enhances interventions with dynamically generated, context-aware copy. You control costs via a monthly budget cap.
+ +| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 6.0 | 6.4+ |
| PHP | 7.4 | 8.1+ |
| WooCommerce | 8.0 | 9.0+ |
| MySQL / MariaDB | 5.7 / 10.3 | 8.0 / 10.6 |
| PHP Extensions | — | sodium (for API key encryption) |
| Memory Limit | 128 MB | 256 MB |
cartpulse-ai.zip file from your CodeCanyon purchase.cartpulse-ai folder to wp-content/plugins/ via FTP or your hosting file manager.When you activate CartPulse AI for the first time, the plugin automatically:
+The setup wizard runs automatically on first activation and can be accessed later from CartPulse AI → Setup Wizard. It has 5 steps:
+ +The wizard verifies your environment before proceeding:
+| Check | Required | Action if Failed |
|---|---|---|
| WooCommerce active (≥ 8.0) | Yes | Install and activate WooCommerce |
| PHP version (≥ 7.4) | Yes | Upgrade PHP via your hosting panel |
| libsodium extension | No (recommended) | Contact host to enable ext-sodium |
| Database tables installed | Yes | Run migrations from Tools page |
| Memory limit (≥ 128 MB) | No (recommended) | Increase in php.ini or wp-config.php |
If any required check fails, the Next button is disabled until the issue is resolved.
+ +Configure your AI provider for dynamic content generation. This step is optional — you can skip it and use static templates with merge tags.
+Choose from 3 recommended presets to launch immediately, or skip to configure campaigns manually later:
+Summary of your configuration: AI provider status, number of campaigns created, tracking status. Quick links to Dashboard, Campaigns, and Settings pages.
+ +The main dashboard provides a high-level overview of your store’s performance. Access it from CartPulse AI → Dashboard.
+ +Eight stat cards display at the top of the dashboard, each with a colored left border for quick scanning:
+| Card | Color | Description |
|---|---|---|
| Revenue Saved | Green | Total revenue attributed to intervention-assisted conversions. |
| Sessions | Blue | Unique visitor sessions tracked in the selected date range. |
| Interventions Shown | Amber | Number of times a campaign intervention was displayed. |
| Conversions | Green | Sessions that saw an intervention and completed a purchase. |
| Conversion Rate | Green | Conversions divided by interventions shown (percentage). |
| Active Campaigns | Blue | Number of currently active campaigns. |
| AI Budget Used | Amber | Current month AI API spend vs. budget limit. |
| ROI | Green | Revenue saved divided by estimated AI API cost. |
Filter all dashboard data by 7-day, 30-day, or 90-day periods using the date range selector in the top-right corner.
+ +Toggle Preview Mode from the dashboard to test interventions as an admin without affecting live visitors. When enabled, an amber “Preview Mode: ON” indicator appears in the WordPress admin bar on the frontend.
+ +Shows your top-performing campaigns ranked by conversion rate, with columns for impressions, conversions, revenue, and status.
+ +If demo data is loaded, a dismissible banner appears at the top. Click Clear Demo Data to remove all synthetic data and start fresh with real analytics.
+ + + + + +Campaigns are the core building block of CartPulse AI. Each campaign defines when to show an intervention (trigger), what to show (intervention content and design), and who should see it (targeting conditions).
+ +The campaign list page (CartPulse AI → Campaigns) shows all campaigns with:
+Click Add New Campaign or apply a preset from the Preset Library. The campaign editor has these sections:
+| Field | Type | Description |
|---|---|---|
| name | Text | Internal campaign name (not shown to visitors). |
| status | Select | draft, active, paused. |
| priority | Number | 1–100. Higher = evaluated first. Default: 60. |
| trigger_config | Object | Trigger type, frequency, conditions. See Section 6. |
| intervention | Object | Template type, content mode, headline, body, CTA, design. |
| coupon_config | Object/null | Auto-generated coupon settings or null for no coupon. |
| ab_test_config | Object/null | Variant B content, split ratio. |
| schedule_config | Object/null | Date range, day-of-week, time window. |
Triggers define the behavioral signal that causes a campaign’s intervention to fire. Each campaign has exactly one trigger type.
+ +| Type | Slug | Description |
|---|---|---|
| Exit Intent | exit_intent | Fires when the mouse cursor leaves the viewport toward the browser bar (desktop) or rapid scroll-up (mobile). |
| Idle Timeout | idle_timeout | Fires after N seconds of no interaction while items are in the cart. Configure timeout_seconds. |
| Scroll Depth | scroll_depth | Fires when the visitor scrolls past a configured percentage of the page. Configure scroll_pct (e.g., 60). |
| Tab Switch | tab_switch | Fires when the visitor switches to a different browser tab (comparison shopping signal). |
| Cart Value | cart_value | Fires when the cart total exceeds a threshold. Configure cart_value_threshold. |
| Checkout Abandon | checkout_abandon | Fires when the visitor shows signs of leaving the checkout page without completing the order. |
| URL Pattern | url_pattern | Fires on pages matching a URL pattern (e.g., /product/sale-*). |
| Referrer Match | referrer_match | Fires when the visitor arrived from a specific referrer domain (e.g., google.com). |
| Cart Contains | cart_contains | Fires when the cart contains specific product IDs or category slugs. |
| Frequency | Description |
|---|---|
always | Fire every time the trigger condition is met. |
once_per_session | Fire only once per visitor session. |
once_per_day | Fire at most once per calendar day per visitor. |
once_per_visitor | Fire only once ever per visitor (cookie-based). |
Each trigger supports additional conditions that must be met alongside the trigger event:
+| Condition | Description |
|---|---|
min_intent_score | Minimum purchase-intent score (0–100) the visitor must have. |
min_cart_value | Minimum cart value (in store currency) before the trigger fires. |
device_type | all, desktop, or mobile. |
page_type | all, product, category, cart, checkout, shop, or other. |
| Type | Slug | Description |
|---|---|---|
| Popup | popup | Centered modal overlay with headline, body, CTA buttons, and optional close button. |
| Slide-in | slide_in | Small panel that slides in from the bottom-right corner of the viewport. |
| Top Bar | top_bar | Full-width notification strip at the top of the page. |
| Bottom Bar | bottom_bar | Full-width notification strip at the bottom of the page. |
| Fullscreen | fullscreen | Full-viewport overlay with centered content and background dimming. |
| Inline | inline | Embedded directly in the page content (non-overlay). |
| Spin Wheel | spin_wheel | Gamified spinning wheel with configurable prize slices. See Section 15. |
content_mode: static) — You write the headline, body, and CTA text manually. Use merge tags for dynamic personalization. Works without an AI provider.content_mode: ai_generated) — The AI provider generates headline and body text based on cart context, store name, configured tone, and campaign instructions. Your static text serves as a fallback if the AI budget is reached or the API is unavailable.| Field | Description |
|---|---|
headline | Main heading text displayed at the top of the intervention. |
body | Body copy supporting the headline. |
cta_text | Primary call-to-action button label. |
cta_action | What happens on CTA click: apply_coupon, redirect, close, or spin. |
cta_url | URL to redirect to (when cta_action is redirect). Defaults to cart page. |
secondary_cta_text | Optional dismiss button text (e.g., “No thanks”). |
| Option | Values | Description |
|---|---|---|
| Theme | light, dark, brand | Color scheme for the intervention panel. |
| Accent Color | Hex color | Applied to CTA buttons and borders. |
| Border Radius | Pixels | Corner rounding for the intervention container. |
| Overlay Opacity | 0–1 | Background dimming for popup/fullscreen types. |
| Animation | fade, fade-up, slide, slide-left, bounce | Entry animation when the intervention appears. |
Merge tags allow static templates to display dynamic, real-time data from your store. Insert them in headline, body, or CTA text fields.
+ +| Tag | Description | Example Output |
|---|---|---|
{cart_total} | Current cart total in store currency. | $89.99 |
{cart_count} | Number of items in the cart. | 3 |
{product_name} | Name of the first product in the cart. | Premium Wireless Headphones |
{discount_amount} | The coupon discount value (from coupon config). | 10% |
{savings_display} | Calculated savings amount in currency. | $9.00 |
{expiry_hours} | Hours until the coupon expires. | 24 |
{recent_purchases} | Real WooCommerce order count in the last 24 hours. | 47 |
{recent_buyers} | Unique customers who ordered in the last 24 hours. | 23 |
{product_rating} | Average product rating (from WooCommerce reviews). | 4.7 |
{review_count} | Number of product reviews. | 128 |
{store_name} | Your store/site name from WordPress settings. | My Store |
{shipping_gap} | Amount remaining to reach free shipping threshold. | $11.01 |
{shipping_threshold} | Free shipping threshold from plugin settings. | $100.00 |
{coupon_code} | The auto-generated coupon code. | FLASH-A1B2C3 |
{recent_purchases}, {recent_buyers}, {product_rating}, {review_count}) pull real data from your WooCommerce orders and product meta. Data is cached for 15 minutes.Campaigns can auto-generate unique WooCommerce coupons for discount-based interventions. Configure the coupon in the campaign editor under Coupon Settings.
+ +| Field | Description |
|---|---|
| Discount Type | percent (percentage off), fixed (fixed amount off), or free_shipping. |
| Amount | Discount value (e.g., 10 for 10% or $10). |
| Prefix | Coupon code prefix (e.g., FLASH produces FLASH-A1B2C3). |
| Expiry (hours) | Hours until the coupon expires after creation (1–168). Default: 24. |
{coupon_code} merge tag or the CTA “Apply Coupon” action.earlybirds_cp_cleanup_coupons).The campaign editor includes a real-time preview panel on the right side. It uses the same CSS and HTML as the storefront, scaled to 65% for a desktop-like viewport.
+ +All 7 template types are supported in the preview. The spin wheel shows a mini conic-gradient preview that updates as you add/remove slices or change colors.
+ + + + + +Campaigns can be scheduled to run during specific time periods. Configure scheduling in the campaign editor under Schedule.
+ +| Field | Description |
|---|---|
| Start Date | Campaign becomes eligible to fire on this date (inclusive). Leave blank for “immediately”. |
| End Date | Campaign stops firing after this date. Leave blank for “indefinitely”. |
| Day of Week | Array of days (Mon–Sun) when the campaign is active. Leave empty for all days. |
| Time Window | Start and end time (HH:MM, 24-hour) within each active day. Leave blank for all-day. |
Campaigns outside their scheduled window are silently skipped without changing their status. An hourly cron job (earlybirds_cp_process_schedules) evaluates schedule rules.
From the campaign list, click Export Campaigns. This downloads a JSON file containing all campaigns with IDs stripped and statuses set to draft. The file is portable and can be imported on any CartPulse AI installation.
CartPulse AI includes 12 ready-made campaign presets covering the most common abandonment recovery scenarios. Access them from Campaigns → Presets.
+ +| # | Preset Name | Category | Trigger | Type | Description |
|---|---|---|---|---|---|
| 1 | Flash Urgency Countdown | Urgency | Exit Intent | Popup | Countdown timer popup with 10% coupon on exit intent. |
| 2 | Free Shipping Nudge | Free Shipping | Cart Value | Top Bar | Shows how close the visitor is to free shipping. |
| 3 | Social Proof Trust Boost | Social Proof | Idle Timeout | Slide-in | Recent purchase activity slide-in after 30s idle. |
| 4 | Personalized Discount Offer | Discounts | Exit Intent | Popup | AI-generated personalized discount with 10% coupon. |
| 5 | Return Policy Reassurance | Recovery | Checkout Abandon | Popup | Addresses objections with policy reassurance. |
| 6 | Cart Value Reminder | Urgency | Scroll Depth | Slide-in | Reminds visitors of items in cart at 60% scroll. |
| 7 | Mobile Quick Exit | Urgency | Exit Intent | Popup | Lightweight popup optimized for mobile exit. |
| 8 | High-Value Cart VIP Offer | Discounts | Cart Value | Fullscreen | AI-generated VIP discount for carts over $100. |
| 9 | Sticky Discount Bar | Discounts | Exit Intent | Bottom Bar | Persistent discount code in bottom bar (desktop). |
| 10 | Testimonial Trust Popup | Social Proof | Tab Switch | Popup | Customer testimonial shown when tab switching. |
| 11 | Checkout Recovery Offer | Recovery | Checkout Abandon | Popup | AI-generated 15% discount for checkout abandoners. |
| 12 | Spin to Win | Gamification | Exit Intent | Spin Wheel | Interactive spinning wheel with configurable prizes. |
Presets are created as draft campaigns. Review the configuration and activate when ready.
+ + + + + +Assignment is deterministic — based on a hash of the session ID and campaign ID. This ensures the same visitor always sees the same variant, even across page loads.
+ +In the campaign editor, a results comparison card shows side-by-side stats for each variant:
+| Metric | Description |
|---|---|
| Impressions | Number of times this variant was shown. |
| Clicks | CTA button clicks. |
| Conversions | Sessions that purchased after seeing this variant. |
| Conversion Rate | Conversions / Impressions as a percentage. |
| Revenue | Total order value from converting sessions. |
| Confidence | Statistical significance level (shown when sample size is sufficient). |
When a variant reaches the configured statistical confidence threshold and minimum sample size, the system declares it the winner. Optionally, the losing variant is deactivated automatically.
+ +The spin-to-win wheel is a gamified intervention that can increase engagement compared to standard popups. Visitors spin the wheel to win a discount or prize.
+ +| Setting | Description |
|---|---|
| Slices | 3 to 8 slices. Each slice has its own label, color, discount type, amount, and probability weight. |
| Label | Text shown on the slice (e.g., “10% Off”, “Free Shipping”, “Try Again”). |
| Color | Background color for the slice (hex value). |
| Discount Type | percent, fixed, free_shipping, or none (for “Try Again” slices). |
| Discount Amount | Value of the discount (e.g., 10 for 10%). |
| Probability Weight | Relative likelihood of landing on this slice. Weights are auto-normalized to 100%. |
A mini conic-gradient preview updates in real time in the campaign editor as you add, remove, or modify slices.
+ +The analytics dashboard (CartPulse AI → Analytics) provides detailed performance metrics with interactive Chart.js-powered visualizations.
+ +| Chart | Type | Description |
|---|---|---|
| Revenue Saved | Line chart (filled area) | Revenue saved over time. Hover for daily amounts. |
| Interventions vs Conversions | Bar chart | Side-by-side bars per day: interventions shown (indigo) vs converted (green). |
| Conversions by Strategy | Donut chart | Which intervention strategies drive the most conversions. |
| Checkout Funnel | Horizontal bar | Visit → Cart → Checkout → Payment → Order with percentage at each stage. |
Below the charts, a table breaks down performance per campaign with columns for impressions, clicks, conversions, conversion rate, and revenue attributed. A/B test variants appear as sub-rows.
+ +A histogram showing the distribution of visitor intent scores (0–100) helps you understand your traffic’s engagement level.
+ +Enable Weekly Digest under Settings to receive a summary email every Monday with the previous week’s key metrics. Revenue milestone alerts can also be configured.
+ + + + + +The live visitors page (CartPulse AI → Live Visitors) shows a real-time view of active visitors on your store.
+ +| Column | Description |
|---|---|
| Session ID | Anonymous session identifier (truncated for display). |
| Page | Current page the visitor is viewing. |
| Page Type | Product, cart, checkout, category, shop, or other. |
| Intent Score | Real-time purchase intent score (0–100) with a progress bar. |
| Cart Value | Current cart total in store currency. |
| Device | Desktop or Mobile. |
| Duration | Time since session started. |
| Status | Hot (intent ≥ 60), Warm (intent 30–59), or Browsing (intent < 30). |
The dashboard auto-refreshes every 15 seconds via the REST API. No manual refresh is needed.
+ + + + + +CartPulse AI can send automated recovery emails to visitors who abandon their carts. This feature works alongside real-time interventions to recover sales even after the visitor has left.
+ +| Setting | Description |
|---|---|
| Enabled | Toggle cart recovery emails on/off. |
| Delay (minutes) | How long to wait after cart abandonment before sending the email (default: 60). |
| Coupon Enabled | Include an auto-generated discount coupon in the recovery email. |
| Coupon Type | Percent or fixed discount. |
| Coupon Amount | Discount value for the recovery coupon. |
| Email Subject | Custom subject line for the recovery email. |
?cp_recover=TOKEN).All settings are under CartPulse AI → Settings.
+ +| Setting | Default | Description |
|---|---|---|
| Enabled | Yes | Master switch for all tracking and interventions. |
| Debug Mode | No | Enables verbose logging to WooCommerce → Status → Logs. Disable in production. |
| Setting | Default | Description |
|---|---|---|
| AI Provider | (none) | OpenAI or Anthropic. Leave blank to use static templates only. |
| OpenAI API Key | — | Encrypted at rest using libsodium. Never displayed after saving. |
| Anthropic API Key | — | Encrypted at rest using libsodium. Never displayed after saving. |
| Model | (auto) | Model for AI content generation (e.g., gpt-4o, claude-3-haiku). |
| Monthly Budget (USD) | $50.00 | Hard cap on AI API spending. Range: $0–$10,000. |
| Default Tone | Friendly | Friendly, Professional, Urgent, or Casual. Overridable per campaign. |
| Default Language | English | Language for AI-generated text. Overridable per campaign. |
| Provider | Where to Get a Key |
|---|---|
| OpenAI | platform.openai.com → API Keys → Create new secret key |
| Anthropic | console.anthropic.com → API Keys → Create Key |
| Setting | Default | Description |
|---|---|---|
| Session Timeout (minutes) | 30 | Minutes of inactivity before a session expires. Range: 1–1440. |
| Batch Interval (ms) | 5000 | How often the storefront sends behavior events to the server. Range: 1000–60000. |
| Max Interventions per Session | 2 | Maximum number of interventions shown in one session. Range: 1–10. |
| Intervention Cooldown (seconds) | 60 | Minimum time between showing two interventions. Range: 0–3600. |
| Intent Weights | (defaults) | Custom weights for the 12 intent scoring signals. Auto-normalizes to 100. |
| Setting | Default | Description |
|---|---|---|
| Cookie Consent | Auto-detect | Auto-detect: checks for CookieYes, Complianz, Cookie Notice (dFactory), Borlabs Cookie, CookieBot, WP Consent API. WP Consent API: uses only the WP Consent API standard. None: always track (not recommended in EU). |
| Consent Category | Statistics | Which consent category must be accepted: Statistics or Marketing. |
| Respect Do Not Track | Yes | Honor the browser DNT header. |
| Data Retention (days) | 30 | Days to keep behavior events and session data. Range: 1–365. A daily cron purges older records. |
| Delete Data on Uninstall | No | When enabled, all plugin tables and options are removed on plugin deletion. |
| Setting | Default | Description |
|---|---|---|
| Free Shipping Threshold | 0 | Cart value required for free shipping. Used by the {shipping_gap} and {shipping_threshold} merge tags. |
| Return Policy | (blank) | Summary of your return policy. Provided to AI for objection handling prompts. |
| Shipping Policy | (blank) | Summary of your shipping policy. Provided to AI prompts. |
| Guarantees | (blank) | Satisfaction guarantees. Provided to AI prompts. |
| Setting | Default | Description |
|---|---|---|
| Weekly Digest | Off | Send a weekly performance summary email every Monday. |
| Digest Recipients | Admin email | Comma-separated email addresses for the digest. |
| Revenue Milestone Alerts | On | Notify when revenue saved reaches significant milestones. |
| Setting | Default | Description |
|---|---|---|
| GA4 Measurement ID | (blank) | Google Analytics 4 measurement ID (G-XXXXXXXXXX) for event tracking. |
| Webhook URL | (blank) | Endpoint URL for webhook delivery. |
| Webhook Secret | (blank) | Shared secret for HMAC-SHA256 signature verification. |
| Webhook Events | intervention.shown, intervention.converted, order.attributed | Events that trigger webhook delivery. |
| Setting | Default | Description |
|---|---|---|
| Excluded Roles | Administrator, Shop Manager | These roles never see interventions or get tracked (unless Preview Mode is on). |
| Excluded Pages | (none) | Specific page IDs or slugs to skip. |
| Trusted Proxy IPs | (none) | If behind a load balancer, list proxy IPs so rate limiting uses the real client IP. |
| Setting | Description |
|---|---|
| Purchase Code | Your CodeCanyon/Envato purchase code (UUID). Used to verify your purchase for updates and support. |
| Verification Status | Verified, Unverified, or Invalid. Checked periodically against the Envato API. |
| Setting | Default | Description |
|---|---|---|
| Enable Cart Recovery | Off | Toggle automated cart recovery emails. |
| Delay (minutes) | 60 | Wait time before sending recovery email. |
| Recovery Coupon | Off | Include an auto-generated coupon in the email. |
| Coupon Type | Percent | Percentage or fixed amount discount. |
| Coupon Amount | 10 | Discount value. |
| Email Subject | (default) | Custom subject line for recovery emails. |
The Tools page (CartPulse AI → Tools) provides system diagnostics, maintenance actions, a log viewer, and a support bundle generator.
+ +A comprehensive status table displays 15+ environment checks:
+| Check | What It Verifies |
|---|---|
| PHP Version | PHP ≥ 7.4 |
| WordPress Version | WP version reported |
| WooCommerce Version | WC is active and version |
| MySQL Version | Database server version |
| Memory Limit | ≥ 128 MB recommended |
| Max Execution Time | PHP max_execution_time |
| libsodium | sodium extension available for encryption |
| REST API | WordPress REST API is reachable |
| WP-Cron | Not disabled by DISABLE_WP_CRON |
| AI Configured | At least one API key is set |
| Active Campaigns | Number of active campaigns |
| DB Tables (5+) | Each plugin table exists |
| Cron Events (5) | Each cron hook is scheduled with next run time |
Click Copy to Clipboard to copy the full status as JSON for support requests.
+ +| Tool | Description | Confirmation Required |
|---|---|---|
| Flush Cache | Clear all plugin cache entries. | No |
| Run Migrations | Re-run database migrations (safe to run multiple times). | No |
| Clear Sessions | Truncate the sessions table. | Yes |
| Clear Behavior Events | Truncate the behavior events table. | Yes |
| Clear Token Usage | Reset AI token usage tracking. | Yes |
| Regenerate Webhook Secret | Generate a new random webhook signing secret. | Yes |
| Clear Demo Data | Remove all imported demo campaigns and analytics. | Yes |
View the last 200 lines of the plugin log file (stored in WooCommerce’s log directory). Filter by level: All, Error, Warning, Info, or Debug. Download the full log or clear it.
+ +Click Generate Support Bundle to download a ZIP containing:
+system-status.json — Full system status checks.settings.json — Plugin settings (API keys are redacted).campaigns.json — All campaign configurations.cp-log.txt — Last 500 log lines.CartPulse AI exposes a comprehensive REST API under the namespace earlybirds-cp/v1. All admin endpoints require authentication via cookie+nonce or application password with manage_woocommerce capability.
https://yoursite.com/wp-json/earlybirds-cp/v1/| Method | Endpoint | Description |
|---|---|---|
| GET | /campaigns | List all campaigns (supports status filter, pagination). |
| POST | /campaigns | Create a new campaign. |
| GET | /campaigns/{id} | Get a single campaign by ID. |
| PUT | /campaigns/{id} | Update a campaign. |
| DELETE | /campaigns/{id} | Delete a campaign. |
| POST | /campaigns/import | Import campaigns from JSON. |
| GET | /campaigns/export | Export all campaigns as JSON. |
| Method | Endpoint | Description |
|---|---|---|
| GET | /analytics/summary | Summary metrics for a date range. |
| GET | /analytics/daily | Daily breakdown of metrics. |
| GET | /analytics/campaigns | Per-campaign performance breakdown. |
| GET | /analytics/funnel | Checkout funnel data. |
| GET | /analytics/strategies | Conversions by intervention strategy. |
| GET | /analytics/intent-distribution | Intent score histogram. |
| GET | /analytics/export | CSV download of analytics data. |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /behavior/session | Nonce | Create or resume a visitor session. |
| POST | /behavior/events | Nonce | Batch-submit behavior events. |
| POST | /behavior/heartbeat | Nonce | Keep session alive. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /interventions/evaluate | Evaluate campaigns and return matching intervention. |
| POST | /interventions/shown | Log an intervention impression. |
| POST | /interventions/dismissed | Log an intervention dismissal. |
| POST | /interventions/clicked | Log a CTA click. |
| POST | /interventions/spin | Execute a spin-to-win wheel spin. |
| Method | Endpoint | Description |
|---|---|---|
| GET | /settings | Get all settings (API keys masked). |
| PUT | /settings | Update settings (partial update supported). |
| POST | /settings/test-connection | Test AI provider connection. |
| GET | /system/status | Structured system health checks. |
| Method | Endpoint | Description |
|---|---|---|
| GET | /live-visitors | Active sessions with intent scores, cart values, and page info. |
| Method | Endpoint | Description |
|---|---|---|
| GET | /cart-recovery | List pending and sent recovery records. |
| DELETE | /cart-recovery/{id} | Delete a recovery record. |
All endpoints are rate-limited: 60 requests/minute for general endpoints, 10 requests/minute for AI-related endpoints. Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining) are included in responses.
Webhooks push real-time events to external systems such as Zapier, Make, or custom endpoints.
+ +| Event | When Fired |
|---|---|
intervention.shown | An intervention was displayed to a visitor. |
intervention.converted | A visitor who saw an intervention completed a purchase. |
order.attributed | An order was attributed to a CartPulse AI session. |
campaign.updated | A campaign was created, updated, or status changed. |
{
+ "event": "intervention.shown",
+ "timestamp": "2026-02-18T14:30:00Z",
+ "plugin_version": "1.0.0",
+ "data": {
+ "session_id": "abc123",
+ "campaign_id": 42,
+ "variant_id": 1,
+ "cart_value": "59.99"
+ }
+}
+
+When a Webhook Secret is configured, every request includes an X-CartPulse-Signature header containing an HMAC-SHA256 hash of the raw request body.
$body = file_get_contents('php://input');
+$signature = $_SERVER['HTTP_X_CARTPULSE_SIGNATURE'] ?? '';
+$expected = hash_hmac('sha256', $body, YOUR_SECRET_KEY);
+
+if ( ! hash_equals($expected, $signature) ) {
+ http_response_code(401);
+ exit('Invalid signature');
+}
+
+CartPulse AI registers WP-CLI commands under the wp earlybirds namespace.
# Run database migrations (safe to run multiple times)
+wp earlybirds migrate
+
+# Flush all plugin cache entries
+wp earlybirds cache:flush
+
+# Show plugin status (version, DB version, license, AI provider)
+wp earlybirds status
+
+# Export all settings to a JSON file
+wp earlybirds settings:export --file=/path/to/settings.json
+
+# Import settings from a JSON file
+wp earlybirds settings:import --file=/path/to/settings.json
+
+| Command | Description |
|---|---|
wp earlybirds migrate | Create or upgrade plugin database tables to the current schema version. Safe to re-run. |
wp earlybirds cache:flush | Delete all cached objects created by this plugin (does not affect other WP object cache entries). |
wp earlybirds status | Display plugin version, database schema version, license status, AI provider, and rate-limiter stats. |
wp earlybirds settings:export | Write current settings to a JSON file. API keys are excluded for security. |
wp earlybirds settings:import | Restore settings from a previously exported JSON file. Does not overwrite API keys. |
CartPulse AI provides action hooks and filters for developers to extend or modify plugin behavior.
+ +| Hook | Parameters | Description |
|---|---|---|
earlybirds_cp_intervention_shown | $campaign_id, $session_id, $variant_id | Fired when an intervention is displayed to a visitor. |
earlybirds_cp_intervention_converted | $campaign_id, $session_id, $order_id | Fired when an intervention session results in a purchase. |
earlybirds_cp_campaign_created | $campaign_id, $data | Fired after a new campaign is created. |
earlybirds_cp_campaign_updated | $campaign_id, $data | Fired after a campaign is updated. |
earlybirds_cp_coupon_generated | $coupon_code, $campaign_id | Fired after an auto-generated coupon is created. |
earlybirds_cp_session_started | $session_id | Fired when a new tracking session begins. |
| Hook | Parameters | Return | Description |
|---|---|---|---|
earlybirds_cp_storefront_config | $config | array | Modify the configuration object passed to the storefront JavaScript. |
earlybirds_cp_ai_prompt | $prompt, $context | string | Modify the AI prompt before it is sent to the provider. |
earlybirds_cp_intervention_content | $content, $campaign | array | Modify intervention content (headline, body, CTA) before rendering. |
earlybirds_cp_should_track | $should_track | bool | Override whether the current visitor should be tracked. |
earlybirds_cp_coupon_args | $args, $campaign | array | Modify WooCommerce coupon arguments before creation. |
earlybirds_cp_intent_weights | $weights | array | Modify intent scoring signal weights. |
add_filter( 'earlybirds_cp_should_track', function( $should_track ) {
+ // Don't track visitors from internal IP range.
+ $ip = $_SERVER['REMOTE_ADDR'] ?? '';
+ if ( strpos( $ip, '10.0.' ) === 0 ) {
+ return false;
+ }
+ return $should_track;
+} );
+
+add_filter( 'earlybirds_cp_ai_prompt', function( $prompt, $context ) {
+ // Add seasonal context to AI prompts.
+ $prompt .= "\nNote: We are currently running a summer sale.";
+ return $prompt;
+}, 10, 2 );
+
+
+
+
+
+All data collected by CartPulse AI is stored in your WordPress database — no data is sent to Earlybirds servers. The following tables are created:
+| Table | Contents |
|---|---|
{prefix}cp_sessions | Anonymous session ID, entry time, cart value, device type. |
{prefix}cp_behavior_events | Behavior events: page views, scroll depth, idle time, exit signals. |
{prefix}cp_intervention_logs | Which campaign/variant was shown, dismissal or conversion outcome. |
{prefix}cp_analytics | Aggregated daily metrics per campaign. |
{prefix}earlybirds_cp_token_usage | AI API token consumption per request (used for budget tracking). |
{prefix}earlybirds_cp_campaigns | Campaign configurations (admin-created data, not visitor data). |
{prefix}cp_cart_recovery | Cart recovery records with cart contents and recovery tokens. |
When AI content is requested for an intervention, the plugin sends a prompt containing:
+Never sent: Customer names, email addresses, order IDs, payment details, IP addresses, or any PII.
+ +CartPulse AI auto-detects 6 popular cookie consent plugins:
+Tracking is gated until the visitor accepts the configured consent category (Statistics or Marketing). If no supported consent plugin is detected in “auto” mode, tracking starts immediately.
+ +When enabled in settings, the plugin respects the browser’s DNT: 1 header. Visitors with DNT enabled will not be tracked and will not see interventions.
CartPulse AI integrates with Tools → Export Personal Data and Tools → Erase Personal Data. When a user requests export or erasure, the plugin includes or removes all session and event records linked to that user’s ID or email.
+ +Set a retention period (1–365 days) under Settings → Privacy. A daily cron job (earlybirds_cp_cleanup_behavior) purges records older than the configured threshold.
When Delete Data on Uninstall is enabled, all plugin tables, wp_options entries, and scheduled tasks are removed when the plugin is deleted from the Plugins screen.
+ + + + + +The storefront is a lightweight JavaScript module (~15 KB gzipped) that runs on the frontend of your WooCommerce store.
+ +StorefrontLoader PHP class hooks into wp_enqueue_scripts.cp-storefront.min.js and cp-storefront.min.css.cpConfig JavaScript object is injected via wp_localize_script containing active campaigns, settings, cart data, and page context.earlybirds_cp_session_id) persists the session ID.If a supported consent plugin is detected, the storefront script waits for consent before initializing any tracking. Events fired before consent is given are discarded.
+ +On page unload, any pending events are flushed using the navigator.sendBeacon API to ensure data is not lost.
CartPulse AI automatically imports demo data on first activation so you can explore all features immediately without waiting for real traffic.
+ +Demo data can be cleared in two ways:
+Clearing demo data removes all synthetic campaigns, analytics, and sessions. Real data is never affected.
+ + + + + +CartPulse AI declares full compatibility with WooCommerce High-Performance Order Storage (HPOS / Custom Order Tables). It uses WooCommerce order APIs that work with both legacy wp_posts storage and the new wc_orders tables.
CartPulse AI works with page caching plugins (WP Rocket, W3 Total Cache, LiteSpeed Cache, etc.). The storefront script uses the REST API for dynamic data, so cached pages do not interfere with session tracking or intervention delivery.
+/wp-json/earlybirds-cp/ path from caching. CartPulse AI will show a compatibility notice if WP Rocket is detected.CartPulse AI has not been tested with WordPress Multisite. Activate and configure it on a per-site basis only. Network activation is not supported.
+ +You can run CartPulse AI on both staging and production sites. Use separate API keys per site. To avoid polluting analytics, either disable campaigns on staging or use the Preview Mode toggle.
+ +Interventions render as overlay elements (z-index: 999999) that work with any standard WordPress/WooCommerce theme. Customization is available via design options in the campaign editor.
+ + + + + +CP Debug HTML comments in the page source.cartpulse-ai entries.gpt-4o requires OpenAI access).wp earlybirds status and verify WP-Cron is running.earlybirds_cp_aggregate_analytics cron event is scheduled (check Tools → System Status).CREATE TABLE privileges.wp earlybirds migrate via WP-CLI for detailed error output.API key encryption requires the sodium PHP extension (bundled with PHP 7.2+, enabled by default on most hosts).
ext-sodium.extension=sodium to your php.ini..htaccess rules that might block /wp-json/ requests.<!-- CP Debug: ... --> comments that explain why the script was skipped.storefront/build/cp-storefront.min.js exists in the plugin directory.wp cron event list).earlybirds_cp_send_recovery_emails cron event in Tools → System Status.No. CartPulse AI works without an AI provider. Built-in templates use merge tags for personalization. Adding an AI provider (OpenAI or Anthropic) enhances interventions with dynamic, context-aware copy. You control costs via the monthly budget setting.
+ +All data is stored in your WordPress database. Sessions, events, campaigns, and analytics never leave your server. Only the prompt content (cart summary, store context) is sent to the AI provider when AI content is requested.
+ +Yes. In the campaign’s static template, reference any existing WooCommerce coupon code. Alternatively, enable auto-generation to create unique coupons on the fly.
+ +Yes. CartPulse AI declares WooCommerce HPOS compatibility and uses order APIs that work with both legacy wp_posts storage and the new wc_orders tables.
A .pot file is included in languages/. Use Poedit, Loco Translate, or a similar tool to create .po/.mo files. Place them in wp-content/languages/plugins/.
Auto-detect mode supports: CookieYes, Complianz, Cookie Notice (dFactory), Borlabs Cookie, CookieBot, and WP Consent API. Tracking is gated until consent is given.
+ +No. The storefront script is ~15 KB gzipped, loads asynchronously, and uses a beacon pattern for server communication. No impact on page load times or Core Web Vitals.
+ +Yes. Use separate API keys per site, and verify your purchase where needed for updates and support. Disable campaigns or use Preview Mode on staging to avoid polluting analytics.
+ +CartPulse AI has not been tested with Multisite. Activate on a per-site basis only.
+ +When a visitor sees an intervention and later completes a purchase in the same session, the order revenue is attributed to that campaign. This happens automatically via the woocommerce_checkout_order_processed hook.
AI content generation pauses. Campaigns automatically fall back to their static template text (headline, body, CTA). Tracking and analytics continue normally.
+ +Yes. Interventions have well-structured CSS classes prefixed with cp-. You can add custom CSS in your theme’s Additional CSS or a child theme stylesheet.
Enable Preview Mode from the Dashboard. This shows interventions only to administrators while regular visitors continue to see normal behavior.
+ +System status, plugin settings (API keys redacted), campaign configs, and the last 500 log lines. No visitor data or PII is included.
+ +Use Export → Import to duplicate campaigns. Export creates a JSON file; import creates all campaigns as drafts that you can customize.
+ +The score combines 12 weighted signals: time on page, scroll depth, cart additions, checkout progress, page views, return visits, idle time, exit signals, tab switches, cart modifications, product views, and category browsing. Weights are configurable in Settings.
+ + + + + +For support, please use the support channel linked in your CodeCanyon purchase confirmation. Include your support bundle (from Tools → Generate Support Bundle) for faster resolution.
+ +See THIRD_PARTY_LICENSES.md in the plugin folder for full third-party license text.
| Library | Version | License | Usage |
|---|---|---|---|
| Chart.js | 4.4.7 | MIT | Analytics dashboard charts. |
CartPulse AI is licensed under the GPL v2 or later. See the license.txt file included with the plugin for full license text.
+ CartPulse AI v1.0.0 — By Earlybirds — © 2026 All Rights Reserved. +
+ ++ CartPulse AI detects when shoppers are about to leave and delivers a personalized, AI‑generated offer in real time — before they're gone forever. +
+ + + + + +The Problem
+The Baymard Institute analyzed 48 studies and found that 70.19% of online shopping carts are abandoned. Most cart recovery tools try to fix this with emails — but the shopper has already moved on.
+of carts are abandoned before checkout
+lost annually to cart abandonment worldwide
+to intervene before they leave your store
+The window to convert an abandoning shopper is measured in seconds, not hours.
+How It Works
+CartPulse silently monitors 6 behavioral signals — mouse trajectory, rapid scroll-up, tab switching, idle time, back-button hover, and mobile swipe patterns — to predict abandonment the moment it begins.
+The AI engine (OpenAI GPT-4o or Anthropic Claude — or smart template fallback) analyzes cart value, product categories, and customer context to generate the highest-converting intervention for that specific shopper.
+A beautifully designed popup appears with a personalized offer — a discount, free shipping nudge, urgency timer, or spin wheel. The shopper engages, completes checkout. Revenue recovered.
+Product tour
+A full walkthrough of the admin experience, campaigns, and storefront interventions — then explore high-resolution screenshots by area.
+HD overview · ~60s · Admin and storefront highlights
+Filter by area. Click any image to view full size.
+Features
+OpenAI or Anthropic generates personalized copy tailored to each cart and shopper. No API key? Smart templates work beautifully out of the box.
+Mouse trajectory, scroll velocity, tab visibility, idle time, back-button proximity, and mobile touch — catch 3x more exit signals than basic detection.
+Discounts, free shipping, urgency timers, social proof, value reminders, objection handlers, and a gamified spin‑to‑win wheel.
+Test strategies against each other. CartPulse automatically splits traffic, tracks conversions, and declares a winner so your rates improve on autopilot.
+Interactive charts showing recovered revenue, conversion rates, strategy performance, and per-campaign ROI. Export reports for stakeholders.
+Real-time view of active shoppers with intent scores, cart values, and browsing patterns. Watch interventions fire live as they happen.
+Timed email sequences with personalized product reminders and optional discount incentives for shoppers who slip through real-time interventions.
+Cookie consent integration, WordPress privacy exporters & erasers, Do Not Track support. Zero external tracking scripts. All data in your database.
+Smaller than a product thumbnail. Async loading. Zero render-blocking. Your Core Web Vitals and PageSpeed scores remain completely unaffected.
+Comparison
+| + | Others | +CartPulse AI | +
|---|---|---|
| Pricing | $19-99/month | $49 one-time |
| Approach | Email after abandonment | Real-time prevention |
| AI Personalization | Not available | OpenAI + Anthropic |
| Strategies | 1-2 | 7 built-in |
| A/B Testing | Pro tier only | Included |
| Performance Impact | 50-200KB scripts | 15KB, zero impact |
| Data Ownership | Vendor servers | Your database |
| GDPR Compliance | Partial | Full |
| Setup Time | 30-60 min | Under 5 minutes |
| Spin-to-Win | Separate plugin | Built-in |
ROI Calculator
+Daily recovered revenue
+$189
+Monthly
+$5,670
+Yearly
+$68,040
+CartPulse pays for itself in
+6 hours
+Compatibility
+Works with any WooCommerce theme — Storefront, Flatsome, Astra, OceanWP, Woodmart, Kadence
+WooCommerce HPOS compatible (High-Performance Order Storage)
+Tested with WooCommerce 8.0 – 9.6+ and WordPress 6.0+
+30+ hooks & filters, REST API, and WP-CLI commands for developers
+Quality checked by Envato
+Translation-ready with .pot file and full RTL support
+PHP 7.4+ compatible, PSR-4 autoloaded codebase
+6 months support included with every license
+FAQ
+Every minute you wait, more shoppers are abandoning their carts. CartPulse AI gives you the tools to intervene in real time — with AI personalization, 7 proven strategies, and built-in A/B testing.
+ + +No monthly fees. No subscriptions. Ever.
+Help center
+Documentation, installation guides, and how to reach us. Most answers are in the docs — start there for the fastest path.
+Install, setup wizard, campaigns, analytics, REST API, and troubleshooting — all in one place.
+For pre-sales questions or license-related issues, use the comments on your CodeCanyon purchase page.
+ Go to item page +Include your purchase code and a concise description of the issue for the fastest reply.
+ support@earlybirds.me +