Attribution for Gravity Forms

UTM tracking for Gravity Forms, saved on every entry.

Contact Trail Pro stores the channel, UTMs, click IDs, referrer and landing page as entry meta on every Gravity Forms entry, so they show up in your entries list, exports, feeds, merge tags and conditional logic.

✓ Entry meta & exports✓ HubSpot, Zapier & Mailchimp feeds✓ No form changes✓ $29.99/mo after trial
Gravity Forms entryEntry meta
Free Consultation · Entry #1482classified
Contact Trail: ChannelLocal Services Ads
utm_source / mediumgoogle / lsa
utm_campaignlsa-family-law
landing_page/free-consultation/
first / lastOrganic → Local Services Ads
merge tag{ct_channel}
Works in every modeAJAX & page reloadiframe embedsmulti-page formsredirect confirmations
The blind spot

Your entries list shows who. It never shows why.

Gravity Forms saves every field your visitor fills in, but nothing about the ad, search, map listing or AI answer that sent them. Contact Trail adds that context to the entry itself, where your team and your add-ons already look.

● Gravity Forms alone
name: Marcus Hill
case type: “Custody”
channel: — unknown —
campaign: — unknown —
landing page: — unknown —
✓ With Contact Trail Pro
name: Marcus Hill
case type: “Custody”
channel: Local Services Ads
campaign: lsa-family-law
landing page: /free-consultation/
Built for Gravity Forms

Attribution as entry meta, everywhere Gravity Forms uses it.

Nothing to configure for capture. These are the places the data shows up once it's on the entry.

01

Entries list & Export Entries

Add the “Contact Trail: Channel” column (more under Select Columns) and include the fields in Gravity Forms' own Export Entries.

02

Feed add-ons

Map the channel, UTMs and GCLID under Entry Meta in HubSpot, Zapier, Mailchimp and other feed add-ons, so attribution lands in your CRM with the lead.

03

Conditional logic

Use channel, source, medium, campaign or GCLID in notification, confirmation and feed conditions, for example to send Paid Search leads to a different inbox.

04

Merge tags

{ct_channel}, {ct_source}, {ct_campaign}, {ct_keyword}, {ct_gclid} and more appear in the merge tag picker. Form Settings → Contact Trail has ready-made email snippets.

05

Your hidden fields keep working

Already map UTMs into Hidden fields? Contact Trail fills them on the server after validation (by Parameter Name or a {ct_*} default value), so Gravity Forms' hidden-field protection never rejects the entry.

06

Spam stays out

Spam entries aren't recorded until you mark them “not spam”, and permanently deleting an entry deletes its Contact Trail record too.

Guide

How to track UTM parameters in Gravity Forms

There are two ways to do it. The first is built into Gravity Forms and works for simple, single-page journeys. The second captures the whole trail.

Method 1: Hidden fields populated from the URL

  1. Open the form and add a Hidden field for each parameter you want (utm_source, utm_medium, utm_campaign, gclid…).
  2. In each field's Advanced tab, tick Allow field to be populated dynamically.
  3. Set the Parameter Name to the matching URL parameter, for example utm_source.
# Landing page URL
/free-consultation/?utm_source=google&utm_medium=cpc&utm_campaign=custody

# Hidden field → Advanced → Parameter Name
utm_source    utm_medium    utm_campaign    gclid

Gravity Forms copies each value from the URL when the form loads. Where it breaks:

  • The parameters only exist on the landing page. Once the visitor clicks to another page, the URL is clean and the fields submit empty.
  • Untagged visits stay blank. Organic search, Google Business Profile, AI assistants and referrals don't carry UTMs, so most leads get no source at all.
  • No first or last touch, and no channel to filter or report on.
  • Page caches can strip the values. Some caching setups serve the same cached page for UTM-tagged links, so the form loads without them.

Method 2: Contact Trail Pro

  1. Install Contact Trail Pro and enter your license key under Contact Trail → License.
  2. That's it for capture. Every Gravity Forms entry gets the channel, UTMs, click IDs, referrer, landing page and first/last touch as entry meta.
  3. Optional: add the Contact Trail columns to your entries list, map the fields in your feeds, or drop {ct_channel} into a notification.
Keep the fields you already built. If your forms use Method 1, leave them. Contact Trail fills those Hidden fields on the server with the full trail, so your existing feeds and reports keep working and start getting values for every lead.
How it works

Set it once. It works on every entry.

Contact Trail listens in the background and attaches the full trail when Gravity Forms saves the entry.

01

A visitor arrives

UTMs, click IDs, referrer and landing page are read on the first pageview, before they can be lost.

utm_*gclidreferrerlanding_page
02

The trail is kept

First touch is locked in and last touch updates on return visits. A server-side cookie keeps it past Safari's 7-day limit on script cookies.

first_touchlast_touchITP-safe
03

Gravity Forms saves the entry

The channel and full trail are written as entry meta in every submission mode, ready for columns, exports, feeds and conditions.

entry meta{ct_channel}feeds
Pricing

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.

Contact Trail Pro
$29.99/ month
14 days free, then billed monthly · cancel anytime · secured by Stripe
Start 14-day free trial
Cancel during your trial and you won’t be charged. After that, a 30-day money-back guarantee covers your first payment.
Works with Gravity Forms, WPForms (Lite or Pro) and Contact Form 7
Everything included
✓ Gravity Forms entry meta, merge tags & conditional logic
✓ Feed add-on mapping (HubSpot, Zapier, Mailchimp…)
✓ Automatic 12‑channel classification incl. AI Search, GBP & LSA
✓ First‑touch & last‑touch attribution
✓ All click IDs: gclid, gbraid, wbraid, msclkid, fbclid, ttclid
✓ Safari ITP server‑side cookie
✓ Search Console keywords & IP geolocation
✓ REST API, signed webhooks & GA4 / GTM event
FAQ

Gravity Forms questions, answered.

No. Every Gravity Forms form records attribution as soon as Contact Trail Pro is active. Columns, merge tags and feed mappings are optional extras.

Yes. Hidden fields mapped by Parameter Name (for example utm_source with dynamic population on) or with a {ct_*} default value are filled on the server after validation. A Single Line Text field set to Hidden or Administrative visibility can use the CSS class ct-attr-utm_source.

Yes. Contact Trail records attribution in every Gravity Forms submission mode, including AJAX, page reload, iframe embeds, multi-page forms and redirect confirmations.

In your feed add-on (HubSpot, Zapier, Mailchimp and others), map the Contact Trail fields listed under Entry Meta. You can also use Contact Trail's signed webhook or REST API.

Spam entries aren't recorded until you mark them “not spam”. Permanently deleting an entry also deletes its Contact Trail submission.

Yes. All three run side by side, and every lead is labeled with the form plugin it came from.

Put the lead source on every entry.

Channel, campaign and click ID on every Gravity Forms entry, starting today. Free for 14 days, then $29.99/month.