See where every WordPress form lead came from.
Contact Trail Pro captures UTMs, click IDs, referrer and landing page for every Contact Form 7, WPForms and Gravity Forms lead, classifies the marketing channel, and stores it with the submission. No hidden fields to build, no Tag Manager setup.
Works with the forms you already have.
Contact Trail adds attribution to every form automatically, and runs the three plugins side by side if your site uses more than one.
Attribution for every CF7 form
Hidden attribution fields are added when each form renders, ready to use as mail-tags in your notification emails. Entries are kept in Contact Trail even without Flamingo.
Contact Form 7 tracking →WPForms Lite & ProSmart tags and CRM-ready fields
{ct_channel}-style smart tags for notifications, confirmations and redirects. On Pro, one click adds Hidden fields that HubSpot, Salesforce and Zapier can map.
WPForms UTM tracking →Gravity FormsAttribution as entry meta
Channel and UTMs appear in the entries list, Export Entries, feed add-ons, merge tags and conditional logic, on every submission mode.
Gravity Forms UTM tracking →The whole trail, not just the last click.
Each submission carries enough context to answer “which marketing produced this lead?” without a spreadsheet.
12-channel classification
Paid Search, Local Services Ads, Paid Social, Organic Search, Google Business Profile, AI Search, Organic Social, Email, Display, Affiliates, Referral and Direct.
First & last touch
The channel that discovered the lead and the one that converted them, each with a timestamp, under a cookie window you choose.
Click IDs for offline conversions
gclid, gbraid, wbraid, msclkid, fbclid, ttclid and li_fat_id, always carrying the most recent click, so Google Ads offline imports match the click that converted.
Search Console keywords
Organic leads are enriched with the likely search query from Google Search Console, labeled High, Med or Low confidence.
Survives Safari and optimizers
A server-side cookie extends Safari's 7-day script-cookie limit, and if a “delay JavaScript” optimizer holds the tracker back, attribution is recovered from cookies at submit.
Privacy controls built in
Cookiebot, OneTrust and Google Consent Mode integration, IP anonymization, IP geolocation and automatic data-retention cleanup.
In WordPress first. Then wherever you report.
Attribution is stored in your own WordPress database, next to each submission, and leaves only when you send it.
In WordPress
A filterable Submissions screen under Contact Trail, with streaming CSV export that includes the form contents and every attribution field.
In your tools
A REST API (JSON or CSV) and a signed webhook on every submission, for Zapier, Make, a CRM, Google Sheets or AgencyAnalytics.
In analytics
A contact_trail_submission dataLayer event for GA4 and Google Tag Manager, plus a JavaScript API for GTM variables.
Why not just add hidden UTM fields?
Every major form plugin can copy a URL parameter into a hidden field. It's a reasonable start, and it's where most attribution setups quietly break:
- The UTMs only live on the landing page. When the visitor browses before submitting, the form's page has a clean URL and the fields arrive empty.
- Most leads aren't tagged at all. Organic search, Google Business Profile, AI assistants, referrals and direct visits carry no UTMs, so a hidden-field setup can't tell you their channel.
- Page caching can blank them. Some caches serve the same cached page for UTM-tagged links, so a server-filled field loads without the values.
- It's per form, forever. Every new form needs the same fields rebuilt, and one missed form is a gap in your reporting.
Contact Trail captures on arrival in the browser, keeps first and last touch across pages and visits, classifies the channel, and attaches it to every form automatically. For the hands-on version, see the Contact Form 7 UTM guide or the Gravity Forms how-to.
One plan. Every feature. No lead limits.
Try everything free for 14 days, then $29.99/month. Cancel anytime from Contact Trail → License in WordPress or the Stripe customer portal. Shopping around? See how it compares.
Questions, answered.
Contact Form 7, WPForms (Lite and Pro) and Gravity Forms, side by side if you use more than one. Every form records attribution automatically, with no form changes.
No. Contact Trail loads its own lightweight tracker and stores everything in WordPress. If you do use GTM or GA4, it pushes a contact_trail_submission event you can turn into a lead event.
Visits from ChatGPT, Perplexity, Gemini, Copilot, Claude and other assistants are classified as AI Search, and the drilldown names the platform. Google's AI Overviews arrive from google.com and stay in Organic Search.
The tracker runs in the browser, so cached pages are fine. If an optimizer delays or blocks the script and the hidden fields reach the server empty, attribution is recovered from Contact Trail's cookies sent with the submission.
In your own WordPress database, next to each submission. Lead data only leaves your site through integrations you switch on: the webhook, REST API pulls, the GA4 / GTM event, and the ipinfo.io geolocation and Search Console lookups once you connect them.
Contact Trail includes consent-manager integration, IP anonymization and configurable data retention to support GDPR / CCPA compliance. As always, check your setup with your legal advisor.
Stop guessing which marketing works.
Every Contact Form 7, WPForms and Gravity Forms lead with its full trail, starting today. Free for 14 days, then $29.99/month.