Add-on for Contact Form 7
Every enquiry
arrives with
its receipt.
Contact Form 7 emails your submissions and forgets them. EntrySource keeps each one in your own database table, next to the campaign, ad click or referral that produced it.
- Click IDs
- 28
- Channels
- 62
- External calls
- 0
Someone clicks this
They submit your form
- name
- Ada Lovelace
- ada@example.com
- Campaign
- spring-sale
- Click ID
- gclid: Cj0KCQjw_TEST
- First touch
- Facebook — brand-launch (6 days earlier)
- Visits
- 4 before submitting
Or three days later. The campaign is remembered for as long as you choose, so a form sent days after that click still arrives with every detail — first touch, last touch and the click ID.
Recognised by name, not filed under “Referral”
Every source
Many ways in,
one table out.
Search, ads, AI assistants, social, chat, newsletters, maps and review sites all arrive differently. EntrySource reads each one, names it, and files it beside the answers.
How it works
Four steps, none of which you do.
No form edits, no shortcodes, no hidden fields to add. Activate it and the next submission is already attributed.
-
01
They click
An ad, a newsletter, a post. The tracker reads the campaign parameters and the referrer on landing.
-
02
It's remembered
First touch and last touch are kept in two cookies, for as many days as you choose.
-
03
They submit
Contact Form 7 sends the mail as usual. Nothing about the form changes.
-
04
It's stored
Answers and attribution land in your own table, ready to read, filter and export.
What's recorded
The whole trail, not just the last click.
Campaign parameters
All five, exactly as they arrived.
- utm_source
- utm_medium
- utm_campaign
- utm_term
- utm_content
Ad-click identifiers
Twenty-eight of them, so a click is attributed even with no UTMs on the link.
- gclid
- gbraid
- wbraid
- msclkid
- fbclid
- igshid
- ttclid
- li_fat_id
- rdt_cid
- twclid
- yclid
- mc_cid
- mkt_tok
- +15 more
Context
Where they came from and what they were looking at.
- Referring URL and domain
- Landing page of the visit
- The page holding the form
- Visits before submitting
- Date of the very first visit
First touch and last touch, side by side
The campaign that first brought someone to the site is rarely the one they return through. Both are stored, so you can credit either.
First touch
brand-launch
Last touch
Google Ads
spring-sale
Paid and organic told apart
A shared Facebook post and a Meta ad both carry fbclid. The medium decides which is which, so your ad spend isn't credited with organic traffic.
Inside wp-admin
Three screens, no dashboard to learn.
Privacy
Your database, your rules.
The plugin makes no external requests. Nothing is sent anywhere, because there is nowhere to send it to.
Consent-aware
Point it at your banner's cookie and tracking waits until consent is given.
IP optional
Store it, shorten it to 203.0.113.0, or don't store it at all.
Do Not Track
Honour the browser's request with one checkbox.
Retention
Delete entries automatically after a number of days you choose.
Export and erase
Wired into WordPress's own personal data tools, so requests are handled properly.
Per-form opt-out
Add consent_for:storage to a checkbox and nothing is stored unless it's ticked.
Free, and free of asterisks.
Everything on this page is in the plugin. No paid tier, no licence key, no feature that stops working after a trial.
- Requires
- Contact Form 7
- WordPress
- 6.5 or newer
- PHP
- 7.4 or newer
- Licence
- GPLv2 or later
- External calls
- None
Questions
The ones people actually ask.
Do I have to change my forms?
No. Storing entries and recording the source works with your existing forms exactly as they are. You only touch a form if you want a mail-tag in a particular spot in the email.
Does it work with page caching?
Yes. Campaign values are never printed into the cached HTML. The form carries one empty hidden field that the tracker fills in the visitor's own browser, so a cached page still records the right source.
What if the visitor blocks JavaScript?
The answers are still stored, and the plugin falls back to reading its cookies and the page URL on the server. Only data that has to come from the browser, such as the referrer of the landing page, may be missing.
Are spam submissions stored?
Only if you ask for it in the settings. By default they're skipped, because Contact Form 7 has already flagged them.
Will deleting the plugin remove my entries?
No, unless you tick the option that says so. That way an accidental deactivation never costs you your data.
Can editors see the entries?
By default only administrators can. The settings let you open the entries and insights screens to editors or authors too. Changing the settings always stays with administrators.