{"id":385717,"date":"2026-10-15T09:29:21","date_gmt":"2026-10-15T09:29:21","guid":{"rendered":"https:\/\/ru.wordpress.org\/plugins\/cf7-abandoned-forms\/"},"modified":"2026-10-15T20:05:52","modified_gmt":"2026-10-15T20:05:52","slug":"rowanweb-abandoned-forms-for-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rowanweb-abandoned-forms-for-contact-form-7\/","author":23224545,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"RowanWeb Abandoned Forms for Contact Form 7","header_author":"Vitalii Ryabinin","header_description":"Tracks Contact Form 7 field activity and records abandoned submissions \u2014 when a visitor starts filling a form but leaves without sending it.","assets_banners_color":"622d1c","last_updated":"2026-10-15 20:05:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/rowan-web.ru\/en\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":79,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"ryabininvitaliy","date":"2026-10-15 09:29:11","revision":3748068},"0.1.1":{"tag":"0.1.1","author":"ryabininvitaliy","date":"2026-10-15 20:05:52","revision":3749237}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3748119,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3748119,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3748119,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3748119,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3748119,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3748068,"resolution":"1","location":"assets","locale":"","width":1358,"height":480},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3748068,"resolution":"2","location":"assets","locale":"","width":1358,"height":642}},"screenshots":{"1":"Abandoned events over time, with a per-form breakdown \u2014 the free \"Form data\" screen.","2":"Pro: webhook notifications for Mattermost\/Slack, Discord, a generic JSON endpoint and Telegram."}},"plugin_section":[],"plugin_tags":[271254,5445,1152,41471,268217],"plugin_category":[42],"plugin_contributors":[269672],"plugin_business_model":[],"class_list":["post-385717","plugin","type-plugin","status-publish","hentry","plugin_tags-abandoned-forms","plugin_tags-cf7","plugin_tags-contact-form-7","plugin_tags-form-analytics","plugin_tags-lead-recovery","plugin_category-contact-forms","plugin_contributors-ryabininvitaliy","plugin_committers-ryabininvitaliy"],"banners":{"banner":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/banner-772x250.png?rev=3748119","banner_2x":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/banner-1544x500.png?rev=3748119","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/icon.svg?rev=3748119","icon":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/icon.svg?rev=3748119","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/screenshot-1.png?rev=3748068","caption":"Abandoned events over time, with a per-form breakdown \u2014 the free \"Form data\" screen."},{"src":"https:\/\/ps.w.org\/rowanweb-abandoned-forms-for-contact-form-7\/assets\/screenshot-2.png?rev=3748068","caption":"Pro: webhook notifications for Mattermost\/Slack, Discord, a generic JSON endpoint and Telegram."}],"raw_content":"<!--section=description-->\n<p>This plugin shows you the abandoned forms \u2014 the ones that were never sent. It watches field activity on the forms you already have, and the moment a visitor who was genuinely typing leaves the page or goes idle without submitting, it records what they had entered so far.<\/p>\n\n<ul>\n<li><strong>Catches real abandonment, not noise<\/strong> \u2014 a visitor has to actually type something recognizable as input before a leave or a long idle period counts as an abandoned attempt; accidental page loads and bot traffic don't pollute the data.<\/li>\n<li><strong>Only leads you can follow up on<\/strong> \u2014 optionally record an attempt only when the visitor left a complete email address or a phone number, so a visitor who typed just their name doesn't clutter the list.<\/li>\n<li><strong>Per-form breakdown<\/strong> \u2014 a dedicated \"Abandoned Forms\" screen under Contact Form 7's own menu lists every tracked form with its totals (last 7 days, last 30 days, all time), drilling down into the actual field values captured for that form.<\/li>\n<li><strong>Encrypted at rest<\/strong> \u2014 captured field values are stored AES-256-GCM encrypted in their own database table, not in plain text.<\/li>\n<li><strong>Privacy-aware<\/strong> \u2014 integrates with WordPress's built-in Personal Data Export\/Erase tools, so a GDPR request against a matching email address covers abandoned-form data too. A configurable retention period (default 60 days) deletes old events automatically every day.<\/li>\n<li><strong>Your data stays on your site<\/strong> \u2014 the free version makes no outgoing requests of its own; everything is stored locally and shown only to users with the right capability.<\/li>\n<\/ul>\n\n<h4>A note on scope<\/h4>\n\n<p>This plugin requires Contact Form 7 to be active \u2014 it has nothing to track without it.<\/p>\n\n<h3>Pro version<\/h3>\n\n<p>RowanWeb Abandoned Forms for Contact Form 7 Pro is a separate, paid version. Everything described above works fully in this free plugin; Pro adds tools for actually following up on abandoned attempts:<\/p>\n\n<ul>\n<li><strong>Trend chart<\/strong> \u2014 a 30-day line chart of abandoned events, for all forms combined or any one form, right on the same screen as the data.<\/li>\n<li><strong>CSV export<\/strong> \u2014 download a form's abandoned events, including every captured field, as a spreadsheet-ready CSV file.<\/li>\n<li><strong>Webhook notifications<\/strong> \u2014 get notified the moment someone abandons a tracked form, via Mattermost\/Slack, Telegram, Discord, or a generic JSON webhook of your own. Delivery is asynchronous, so a visitor's browser never waits on it.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following third-party service. Nothing else is sent anywhere by the free version.<\/p>\n\n<h4>Freemius (optional opt-in, licensing and updates of the Pro version)<\/h4>\n\n<p>The plugin includes the Freemius SDK, which handles the separate Pro version's licensing and updates. In this free version, Freemius only shows an optional opt-in screen after activation.<\/p>\n\n<ul>\n<li>When: only if you choose to opt in (or activate a Pro license).<\/li>\n<li>What is sent: your site URL, WordPress and PHP versions, plugin version, site language, and the admin's name and email address, plus plugin activation\/deactivation\/uninstall events. If you skip the opt-in, nothing is sent.<\/li>\n<li>Freemius <a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a>, <a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a> and <a href=\"https:\/\/freemius.com\/wordpress\/usage-tracking\/\">details on what is collected<\/a>.<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>Questions, bug reports or feature requests: the plugin's support forum on WordPress.org, or https:\/\/rowan-web.ru\/en\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure Contact Form 7 is installed and active.<\/li>\n<li>Upload the <code>rowanweb-abandoned-forms-for-contact-form-7<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via Plugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <strong>Contact \u2192 Abandoned Forms<\/strong> to see captured data as it comes in; adjust the retention period under its Settings tab if needed.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20without%20contact%20form%207%3F\"><h3>Does this work without Contact Form 7?<\/h3><\/dt>\n<dd><p>No \u2014 the plugin hooks directly into Contact Form 7's own forms and does nothing without it active (declared as a dependency, so WordPress will flag it if CF7 isn't active).<\/p><\/dd>\n<dt id=\"what%20counts%20as%20%22abandoned%22%3F\"><h3>What counts as \"abandoned\"?<\/h3><\/dt>\n<dd><p>A visitor who has typed something recognizable as real input into a form's fields, then either leaves the page, closes the tab, or goes idle for a while without submitting. Loading a form and leaving immediately, without typing anything, isn't recorded.<\/p><\/dd>\n<dt id=\"is%20the%20data%20safe%3F\"><h3>Is the data safe?<\/h3><\/dt>\n<dd><p>Captured field values are encrypted (AES-256-GCM) in their own database table, decrypted only when an authorized admin views them. A contact is pseudonymized internally through a hashed, site-specific identifier rather than stored as a plain lookup key.<\/p><\/dd>\n<dt id=\"does%20this%20send%20any%20of%20my%20data%20anywhere%3F\"><h3>Does this send any of my data anywhere?<\/h3><\/dt>\n<dd><p>No. The free version makes no outgoing connections of its own \u2014 everything is stored in your own database and shown only inside your own admin area. The only exception is listed under \"External services\" below, and it's off until you opt in.<\/p><\/dd>\n<dt id=\"how%20long%20is%20the%20data%20kept%3F\"><h3>How long is the data kept?<\/h3><\/dt>\n<dd><p>60 days by default, deleted automatically every day; configurable from 1 day up to 10 years on the Settings tab. Lower it if you only need the data for a quick follow-up; raise it if you want a longer history.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>New per-form option: only record attempts where the visitor left an email address or phone number. Detected by value in any typed field, so phone numbers in plain text fields count too.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: abandoned-submission tracking for Contact Form 7, encrypted storage, per-form admin screen with bulk delete, configurable retention, GDPR personal-data export\/erase integration, and a Pro tier (trend chart, CSV export, Mattermost\/Slack\/Telegram\/Discord\/generic webhook notifications).<\/li>\n<\/ul>","raw_excerpt":"Tracks Contact Form 7 field activity and shows which visitors started filling a form but left without sending it.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/385717","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=385717"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ryabininvitaliy"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=385717"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=385717"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=385717"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=385717"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=385717"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=385717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}