{"id":343721,"date":"2026-08-16T04:20:48","date_gmt":"2026-08-16T04:20:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/behaviorinsights\/"},"modified":"2026-08-16T04:20:15","modified_gmt":"2026-08-16T04:20:15","slug":"mustkit-intent-cro","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mustkit-intent-cro\/","author":23524576,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.12.1","stable_tag":"0.12.1","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Mustkit Intent & CRO for WooCommerce","header_author":"JK Networks","header_description":"Scores each WooCommerce visitor's purchase intent (A\/B\/C), diagnoses why product pages lose the sale, and prescribes concrete CRO fixes. All data stays on your store.","assets_banners_color":"a9a3d3","last_updated":"2026-08-16 04:20:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mustkit.com\/p\/behavior-insights","header_author_uri":"https:\/\/mustkit.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"0.12.1":{"tag":"0.12.1","author":"jknetworks","date":"2026-08-16 04:20:15"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3649270,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3649270,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3649270,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3649270,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.12.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3649270,"resolution":"1","location":"assets","locale":"","width":1280,"height":1002},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3649270,"resolution":"2","location":"assets","locale":"","width":1280,"height":1002},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3649270,"resolution":"3","location":"assets","locale":"","width":1280,"height":1002},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3649270,"resolution":"4","location":"assets","locale":"","width":1280,"height":1002}},"screenshots":{"1":"Overview \u2014 intent mix, visit trend and a live behavior feed.","2":"Customer Intent \u2014 every visitor scored A\/B\/C with the reason codes behind the score.","3":"Pages \u2014 per-product conversion diagnosis with a concrete prescription.","4":"Coupons &amp; Campaigns \u2014 reach high-intent shoppers while intent is still high."}},"plugin_section":[],"plugin_tags":[232,984,999,3734,286],"plugin_category":[36,45,55],"plugin_contributors":[272380],"plugin_business_model":[],"class_list":["post-343721","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-conversion","plugin_tags-cro","plugin_tags-intent","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-jknetworks","plugin_committers-jknetworks"],"banners":{"banner":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/banner-772x250.png?rev=3649270","banner_2x":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/banner-1544x500.png?rev=3649270","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/icon-128x128.png?rev=3649270","icon_2x":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/icon-256x256.png?rev=3649270","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/screenshot-1.png?rev=3649270","caption":"Overview \u2014 intent mix, visit trend and a live behavior feed."},{"src":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/screenshot-2.png?rev=3649270","caption":"Customer Intent \u2014 every visitor scored A\/B\/C with the reason codes behind the score."},{"src":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/screenshot-3.png?rev=3649270","caption":"Pages \u2014 per-product conversion diagnosis with a concrete prescription."},{"src":"https:\/\/ps.w.org\/mustkit-intent-cro\/assets\/screenshot-4.png?rev=3649270","caption":"Coupons &amp; Campaigns \u2014 reach high-intent shoppers while intent is still high."}],"raw_content":"<!--section=description-->\n<p>Mustkit Intent &amp; CRO for WooCommerce analyzes detailed visitor behavior to (1) score each customer's purchase intent into A\/B\/C labels for automated campaigns, and (2) diagnose weak page sections and prescribe concrete CRO fixes. All visitor data and PII stay on your own store server.<\/p>\n\n<p><strong>Intent scoring that learns from your store, not from a hardcoded table<\/strong><\/p>\n\n<ul>\n<li>The weight of each behavior is not written into the plugin. It is learned from your own conversions: for every behavior type, Mustkit Intent &amp; CRO measures the log-odds lift of that behavior among buyers versus non-buyers, and re-weights accordingly.<\/li>\n<li>A \"scroll to the bottom\" means something different in a jewelry store and a supplement store. The data works that out for you.<\/li>\n<li>Before there is enough data, scoring falls back to a neutral prior and converges as orders accumulate.<\/li>\n<\/ul>\n\n<p><strong>Signals beyond scroll depth<\/strong><\/p>\n\n<ul>\n<li>Collected on the page: pageview, scroll depth, section dwell, time to exit, rage clicks, dead clicks, add-to-cart, product views, and viewport visibility.<\/li>\n<li>Section dwell can follow your own <code>data-bi-section<\/code> markers, or fall back to scroll-percentile bands.<\/li>\n<\/ul>\n\n<p><strong>Why they don't buy \u2014 per product<\/strong><\/p>\n\n<ul>\n<li>Cross-analyses scroll depth against purchases for each product page, then names the section losing the sale \u2014 weak hero, dull mid-page, unconvincing price \u2014 with a concrete fix.<\/li>\n<li>Waits until a product has enough sessions to be statistically reliable before showing a verdict.<\/li>\n<\/ul>\n\n<p><strong>Campaigns that reach anonymous visitors too<\/strong><\/p>\n\n<ul>\n<li>Email campaigns for known customers, plus on-site coupon popups keyed to the visitor's anonymous cookie ID \u2014 so a first-time, never-logged-in browser can still be won back on their next visit.<\/li>\n<li>Popups only fire for visitors who have given consent.<\/li>\n<\/ul>\n\n<p><strong>Privacy handled, not promised<\/strong><\/p>\n\n<ul>\n<li>Registered with WordPress's own privacy tools: data-subject export and erase requests are handled for you.<\/li>\n<li>Consent withdrawal anonymizes that visitor's history.<\/li>\n<li>A retention window (default 180 days) purges expired behavior data on a schedule.<\/li>\n<\/ul>\n\n<p><strong>What leaves your server<\/strong><\/p>\n\n<ul>\n<li>Every feature \u2014 visitor tracking, intent scoring, conversion diagnosis, prescriptions and campaigns \u2014 runs entirely on your own server. By default, nothing is sent anywhere.<\/li>\n<li>All features are free and fully functional. Nothing is locked, time-limited, or usage-capped.<\/li>\n<li>Two optional data connections to our cloud exist and are <strong>off by default<\/strong> \u2014 they only run if you turn them on in Settings \u2192 External data sharing. The only other outbound calls are ones you trigger yourself: Pro license\/billing checks and the support form. All are documented under \"External services\" below.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>The plugin requires no account and no API key to use. All processing runs locally on your store. The services below are contacted <strong>only<\/strong> if you explicitly opt in (1, 2) or explicitly use the feature in question (3, 4). All four services are operated by JK Networks (the plugin author). The same terms and privacy policy apply to all of them:\nTerms of service: https:\/\/mustkit.com\/legal\/service \u2014 Privacy policy: https:\/\/mustkit.com\/legal\/privacy<\/p>\n\n<ol>\n<li><p><strong>Installation reporting<\/strong> \u2014 Mustkit cloud at <code>bi.mustkit.com<\/code> \u2014 <em>opt-in, off by default<\/em>. If you enable \"Share install status\" in Settings, then once every 24 hours from the WordPress admin the plugin sends your site domain, a hash of it, the active plan (free\/pro), whether a license is active, and the plugin version, so we can see where the plugin is installed. No visitor data, no PII, and no store content is sent.<\/p><\/li>\n<li><p><strong>Behavior cloud sync<\/strong> \u2014 Mustkit cloud at <code>bi.mustkit.com<\/code> \u2014 <em>opt-in, off by default<\/em>. If you enable \"Sync behavior to cloud\" in Settings, anonymized visitor-behavior events are mirrored to our cloud so it can provide cross-site benchmarking that a single store cannot compute locally. Visitor IDs are one-way hashed and no PII (name, email, order details) is sent. When you first enable this option, the plugin also registers your site once with the same service (sending your site domain, a site identifier, and a one-time challenge string) to receive the signing secret used to authenticate the sync. With this off, no visitor data ever leaves your server.<\/p><\/li>\n<li><p><strong>License verification &amp; subscription management<\/strong> \u2014 Mustkit license\/billing server at <code>bi.mustkit.com<\/code> \u2014 only if you buy the optional Pro add-on on mustkit.com and use the Plan &amp; Billing screen. No call is made unless a license key has been entered. Specifically:<\/p>\n\n<ul>\n<li><em>License verification<\/em>: after you paste your license key, the plugin periodically re-verifies it (result cached up to 10 minutes), sending the license key and your site URL.<\/li>\n<li><em>Subscription cancellation<\/em>: only when you click \"Cancel auto-renewal\" in Plan &amp; Billing, the plugin sends your license key, site URL, and subscription ID so our billing server can stop the renewal. Your plan stays active until the paid period ends.<\/li>\n<li><em>Billing history<\/em>: only when you open the billing-history panel in Plan &amp; Billing, the plugin sends your license key, site URL, and subscription ID and receives your invoice list (date, amount, status, payment method) for display.<\/li>\n<\/ul><\/li>\n<li><p><strong>Support requests<\/strong> \u2014 Mustkit operations console at <code>console.mustkit.com<\/code> \u2014 only when you submit the form on the Support screen. The plugin sends the product ID, your site URL, your admin account email address, and your subject\/message. If (and only if) you tick \"Attach diagnostics\", it also sends the plugin, WordPress, WooCommerce and PHP versions and your list of active plugins to help us debug. Nothing is sent unless you press Submit.<\/p><\/li>\n<\/ol>\n\n<p>Upgrading to Pro happens on our website (https:\/\/mustkit.com); there is no checkout inside the plugin. No external service is contacted for visitor tracking, intent scoring, page diagnosis, prescriptions, or campaigns \u2014 those run locally on your store.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>All JavaScript and CSS in this plugin is hand-written, human-readable source, shipped exactly as authored \u2014 there is no build, transpilation, or minification step for JS\/CSS, so the files in <code>assets\/<\/code> are the complete source themselves.<\/p>\n\n<p>The bundled <code>vendor\/jk-wp-sdk<\/code> PHP library is also hand-written source. During packaging its PHP namespace is prefixed per product with PHP-Scoper (to prevent class collisions when two of our plugins are active on the same site); this only renames namespaces and the code remains fully human-readable.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/mustkit-intent-cro<\/code>, or install via the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Configure under WooCommerce \u2192 Mustkit Intent &amp; CRO.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>0.12.1<\/h4>\n\n<ul>\n<li>All internal identifiers (options, transients, hooks, AJAX actions, cron events, cookies, script handles, REST namespace, database tables) renamed from the short <code>bi_<\/code> prefix to the distinct <code>mkicro_<\/code> prefix to prevent conflicts with other plugins. Existing installs are migrated automatically with no data loss (tables renamed in place, settings carried over).<\/li>\n<li>External services documentation expanded: subscription cancellation, billing history, and support-form requests are now fully documented with the exact data sent and the service domains.<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Renamed to \"Mustkit Intent &amp; CRO for WooCommerce\" for a distinct, descriptive name.<\/li>\n<li>All features are now free and fully functional \u2014 removed every license\/plan gate. Intent-based prescriptions, per-segment conversion diagnosis, auto-send campaigns and campaign volume are no longer limited or locked.<\/li>\n<li>Removed the in-plugin PayPal checkout. Upgrading to the optional Pro add-on now happens on mustkit.com; the plugin never shows a payment window.<\/li>\n<li>Privacy: no data is sent off-site by default. Installation reporting and behavior cloud sync are now explicit opt-ins (off by default) under Settings \u2192 External data sharing, and are fully documented under \"External services\".<\/li>\n<\/ul>\n\n<h4>0.10.7<\/h4>\n\n<ul>\n<li>Code quality: cleared all Plugin Check findings. Documented why each direct database query is safe (table identifiers come from the WordPress table prefix and cannot be prepared; every user-supplied value uses a placeholder), added translator comments for pluralised strings, and clarified that coupon options are read only after the calling AJAX handler has verified the nonce and capability.<\/li>\n<li>Added the <code>languages\/<\/code> folder referenced by the plugin's Domain Path header.<\/li>\n<\/ul>\n\n<h4>0.10.5<\/h4>\n\n<ul>\n<li>Readability: all bundled JavaScript is reformatted so no line exceeds 300 characters, making the shipped source easy to read and review. No behavior changes.<\/li>\n<li>Documented the source-code policy (no JS\/CSS build or minification step) under \"Source Code\".<\/li>\n<li>Security: the domain-ownership verification endpoint now returns only a one-way SHA-256 digest of the provisioning challenge instead of the raw value, and returns 404 when no provisioning is in progress.<\/li>\n<li>Tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>New: per-product conversion diagnosis \u2014 cross-analyses scroll depth against purchases to name the section losing the sale, with a concrete fix. Redesigned dashboard.<\/li>\n<li>New: self-learning intent weights \u2014 behavior weights are learned from your store's own conversions (log-odds lift of each behavior among buyers vs non-buyers) instead of being hardcoded. Neutral prior until enough data accumulates.<\/li>\n<li>New: on-site coupon popups for anonymous, never-logged-in visitors (consent-gated), alongside email campaigns for known customers.<\/li>\n<li>New: privacy tooling \u2014 WordPress data-subject export\/erase handlers, consent-withdrawal anonymization, and scheduled purge of behavior data past the retention window (default 180 days).<\/li>\n<li>New: daily installation reporting (domain, plan, version \u2014 no visitor data). Documented under External services.<\/li>\n<li>Tracker now records rage clicks, dead clicks, time to exit, and section dwell in addition to scroll depth.<\/li>\n<\/ul>\n\n<h4>0.1.12 (2026-06-30)<\/h4>\n\n<ul>\n<li>Pro upgrade: in-dashboard PayPal subscription button with server-side payment verification (PayPal re-check + signed webhooks). Free campaign credit metering (50\/month) with soft limit and upgrade prompt. Aligned pricing ($19\/mo, $182.40\/yr).<\/li>\n<\/ul>\n\n<h4>0.1.5 (2026-06-30)<\/h4>\n\n<ul>\n<li>Dashboard redesign (8 screens): overview, intent board, page diagnosis, campaigns, on-site popup, settings, license, support.<\/li>\n<\/ul>\n\n<h4>0.1.3 (2026-06-29)<\/h4>\n\n<ul>\n<li>Bundled SDK guard loader (v0.2.0); build &amp; packaging standard applied.<\/li>\n<\/ul>\n\n<h4>0.1.0 (2026-06-28)<\/h4>\n\n<ul>\n<li>Initial scaffold.<\/li>\n<\/ul>","raw_excerpt":"Scores each visitor&#039;s purchase intent (A\/B\/C), diagnoses why product pages lose the sale, and prescribes concrete CRO fixes. Data stays local.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343721"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jknetworks"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343721"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343721"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343721"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343721"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343721"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}