{"id":41365,"date":"2016-01-22T10:42:56","date_gmt":"2016-01-22T10:42:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/easy-utm-tracking-with-contact-form-7\/"},"modified":"2026-07-26T10:11:13","modified_gmt":"2026-07-26T10:11:13","slug":"easy-utm-tracking-with-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/is.wordpress.org\/plugins\/easy-utm-tracking-with-contact-form-7\/","author":7572599,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.1","stable_tag":"2.2.1","tested":"7.0.2","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Easy UTM tracking with contact form 7","header_author":"Basir Mukhtar","header_description":"","assets_banners_color":"","last_updated":"2026-07-26 10:11:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=L32BSPWMVW2M6","header_plugin_uri":"http:\/\/decorumsol.com","header_author_uri":"http:\/\/basirmukhtar.com","rating":4.5,"author_block_rating":0,"active_installs":2000,"downloads":22328,"num_ratings":8,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.4":{"tag":"2.0.4","author":"basirmukhtar","date":"2023-04-14 07:33:17"},"2.0.5":{"tag":"2.0.5","author":"basirmukhtar","date":"2023-04-19 04:55:58"},"2.0.6":{"tag":"2.0.6","author":"basirmukhtar","date":"2023-04-19 04:59:33"},"2.2.0":{"tag":"2.2.0","author":"basirmukhtar","date":"2026-07-26 10:02:24"},"2.2.1":{"tag":"2.2.1","author":"basirmukhtar","date":"2026-07-26 10:11:13"}},"upgrade_notice":{"2.2.1":"<p>Minor readme and wording polish on top of 2.2.0.<\/p>","2.2.0":"<p>Big update: submissions now saved under Contact \u2192 Form Submissions with full attribution, click ID capture, mail tags, settings page, and important bug fixes (external referrer, &quot;false&quot; values). Existing tracking keeps working, nothing to reconfigure.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":7},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.4","2.0.5","2.0.6","2.2.0","2.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3623719,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3623171,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3623171,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"Form Submissions log inside the Contact menu, showing each submission's source, medium, campaign, click IDs and referrer.","2":"Submission details: attribution data and submitted fields side by side.","3":"Settings page: cookie lifetime, first\/last-touch attribution, email table and submission log toggles."}},"plugin_section":[],"plugin_tags":[9067,1152,40003,550,24188],"plugin_category":[42],"plugin_contributors":[219907],"plugin_business_model":[],"class_list":["post-41365","plugin","type-plugin","status-publish","hentry","plugin_tags-attribution","plugin_tags-contact-form-7","plugin_tags-lead-source","plugin_tags-tracking","plugin_tags-utm","plugin_category-contact-forms","plugin_contributors-basirmukhtar","plugin_committers-basirmukhtar"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/easy-utm-tracking-with-contact-form-7.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/easy-utm-tracking-with-contact-form-7\/assets\/screenshot-1.jpg?rev=3623719","caption":"Form Submissions log inside the Contact menu, showing each submission's source, medium, campaign, click IDs and referrer."},{"src":"https:\/\/ps.w.org\/easy-utm-tracking-with-contact-form-7\/assets\/screenshot-2.png?rev=3623171","caption":"Submission details: attribution data and submitted fields side by side."},{"src":"https:\/\/ps.w.org\/easy-utm-tracking-with-contact-form-7\/assets\/screenshot-3.png?rev=3623171","caption":"Settings page: cookie lifetime, first\/last-touch attribution, email table and submission log toggles."}],"raw_content":"<!--section=description-->\n<p>Easy UTM tracking with Contact Form 7 lets you track your marketing campaigns with one-click installation. When a visitor lands on your site through a tagged URL (Google Ads, Facebook Ads, email campaigns, etc.), the plugin stores the tracking parameters in first-party cookies and includes them in your Contact Form 7 lead emails, even if the visitor browses several pages before submitting the form.<\/p>\n\n<p><strong>What gets captured<\/strong><\/p>\n\n<ul>\n<li>utm_source, utm_medium, utm_term, utm_content, utm_campaign<\/li>\n<li>Ad click IDs: gclid (Google Ads), fbclid (Facebook), msclkid (Microsoft Ads), ttclid (TikTok)<\/li>\n<li>Landing page URL<\/li>\n<li>External referrer (the site the visitor actually came from)<\/li>\n<\/ul>\n\n<p><strong>How it reaches you<\/strong><\/p>\n\n<ul>\n<li>Zero-config: a formatted tracking table is appended to every CF7 email automatically (can be turned off).<\/li>\n<li>Mail tags: place <code>[utm_source]<\/code>, <code>[utm_medium]<\/code>, <code>[utm_term]<\/code>, <code>[utm_campaign]<\/code>, <code>[utm_content]<\/code>, <code>[utm_gclid]<\/code>, <code>[utm_fbclid]<\/code>, <code>[utm_msclkid]<\/code>, <code>[utm_ttclid]<\/code>, <code>[utm_landing]<\/code>, <code>[utm_referrer]<\/code> anywhere in your CF7 mail template, subject line included.<\/li>\n<li><strong>Form Submissions log<\/strong>: every submission is saved under Contact \u2192 Form Submissions with its full attribution and submitted fields, so no lead is lost even if the notification email fails to send.<\/li>\n<\/ul>\n\n<p><strong>Settings (Settings \u2192 Easy UTM CF7)<\/strong><\/p>\n\n<ul>\n<li>Cookie lifetime (default 60 days)<\/li>\n<li>First-touch or last-touch attribution<\/li>\n<li>Turn the auto-appended email table on\/off<\/li>\n<li>Turn the Form Submissions log on\/off<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install directly from the WordPress plugin directory, or upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>That's it: tracking data is appended to your Contact Form 7 emails and logged under Contact \u2192 Form Submissions automatically. Optionally adjust behaviour under Settings \u2192 Easy UTM CF7.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20need%20any%20configuration%3F\"><h3>Does it need any configuration?<\/h3><\/dt>\n<dd><p>No. Activate it and tracking data is appended to your CF7 emails and stored under Contact \u2192 Form Submissions. Settings are optional.<\/p><\/dd>\n<dt id=\"where%20can%20i%20see%20my%20submissions%3F\"><h3>Where can I see my submissions?<\/h3><\/dt>\n<dd><p>In your WordPress admin under <strong>Contact \u2192 Form Submissions<\/strong> (inside the Contact Form 7 menu). Each submission shows the submitted form fields plus the full attribution (source, medium, campaign, click IDs, landing page, referrer). Only administrators can view them, and they are stored even when the email fails to send.<\/p><\/dd>\n<dt id=\"i%27m%20updating%20from%20an%20older%20version%2C%20will%20anything%20change%3F\"><h3>I'm updating from an older version, will anything change?<\/h3><\/dt>\n<dd><p>Your tracking keeps working with no reconfiguration. Cookies set by older versions are still read, so visitors who arrived before the update keep their attribution. Three improvements you'll notice: the tracking table is no longer added to emails when there is no data (previously it appended empty rows), plain-text mail templates are no longer forced to HTML, and the external referrer is now captured correctly. The new submission log is on by default; you can turn it off under Settings \u2192 Easy UTM CF7.<\/p><\/dd>\n<dt id=\"what%20cookies%20does%20it%20set%3F\"><h3>What cookies does it set?<\/h3><\/dt>\n<dd><p>_easy_utm_last and <code>_easy_utm_first<\/code> (tracking parameters as JSON), and <code>_easy_utm_referrer<\/code> (the external referrer). All are first-party cookies, stored for the configured lifetime (60 days by default). Legacy cookies from version 2.0.x are still read so existing visitors keep their attribution.<\/p><\/dd>\n<dt id=\"what%20is%20first-touch%20vs%20last-touch%3F\"><h3>What is first-touch vs last-touch?<\/h3><\/dt>\n<dd><p>Last-touch (default) reports the most recent campaign the visitor arrived through. First-touch reports the very first campaign that brought them to your site.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20plain-text%20emails%20to%20html%3F\"><h3>Will it change my plain-text emails to HTML?<\/h3><\/dt>\n<dd><p>No. Since 2.1.0 plain-text mail templates get a plain-text tracking block; HTML templates get the formatted table.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Shortened the plugin short description to meet the directory limit and polished wording.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added: Form Submissions log under the Contact menu: every submission is stored with its attribution data and submitted fields, even if the notification email fails to send. Admins only.<\/li>\n<li>Added: submission list columns (source, medium, campaign, click IDs, referrer) and a detail view.<\/li>\n<li>Added: quick links on the Plugins page and a one-time notice after updating.<\/li>\n<li>Added: setting to enable\/disable the submission log.<\/li>\n<li>Improved: plugin code reorganised into modules; security hardening and per-request caching.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fixed: referrer was only stored for internal navigation; the external traffic source (Google, Facebook, etc.) is now captured correctly, once, and no longer overwritten.<\/li>\n<li>Fixed: missing UTM parameters were recorded as the literal string \"false\".<\/li>\n<li>Fixed: PHP notices when no tracking cookies were present; the tracking table is no longer appended to emails when there is no data.<\/li>\n<li>Fixed: plain-text CF7 mail templates are no longer forced to HTML.<\/li>\n<li>Fixed: URL-encoded values (e.g. <code>summer%20sale<\/code>) are now decoded.<\/li>\n<li>Added: ad click ID capture: gclid, fbclid, msclkid, ttclid.<\/li>\n<li>Added: CF7 special mail tags: [utm_source], [utm_medium], [utm_term], [utm_campaign], [utm_content], [utm_gclid], [utm_fbclid], [utm_msclkid], [utm_ttclid], [utm_landing], [utm_referrer].<\/li>\n<li>Added: settings page: cookie lifetime, first-touch\/last-touch attribution, email table on\/off.<\/li>\n<li>Improved: cookie values are escaped in email output; cookies use SameSite=Lax; script loads deferred with proper cache-busting version.<\/li>\n<li>Compatibility: tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>2.0.6<\/h4>\n\n<ul>\n<li>Readme updates.<\/li>\n<\/ul>\n\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Added security to cookies and tested up to latest version of WordPress.<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Maintenance release.<\/li>\n<\/ul>","raw_excerpt":"Track which campaign every lead came from: UTM parameters, click IDs, landing page and referrer in your CF7 emails, plus a built-in lead log.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/41365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=41365"}],"author":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/basirmukhtar"}],"wp:attachment":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=41365"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=41365"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=41365"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=41365"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=41365"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=41365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}