How do you track UTM parameters in WPForms?

To track UTM parameters in WPForms, add a Hidden Field for each parameter and set its default value to the query-var smart tag, for example {query_var key="utm_source"}. WPForms fills the field from the page URL and saves it with the entry. Visitors who browse before submitting need the values stored on arrival.

  1. Add a Hidden Field per UTM parameter.
  2. Set the default value to the query-var smart tag.
  3. Store UTMs for visitors who browse first.
  4. Send entries to your CRM.
  5. Test with a tagged URL.

A tagged link opens the page with your WPForms form, the hidden fields are filled, and the entry reaches your CRM with its source.

Step 1: add hidden fields with smart tags

Add a Hidden Field (Fancy Fields), open Advanced, and set Default Value using Smart Tags:

Field labelDefault value
utm_source{query_var key="utm_source"}
utm_medium{query_var key="utm_medium"}
utm_campaign{query_var key="utm_campaign"}

WPForms' smart tags docs list the current tags. Hidden fields may need a paid license tier; check WPForms' plan pages.

Step 2: keep values across pages

The smart tag reads the current URL. A visitor who lands on a blog post and submits on the contact page brings no UTMs. Store them on arrival, as in persisting UTM parameters across pages. Page caching can also serve stale defaults.

Step 3: send entries to your CRM

WPForms add-ons and webhooks map hidden fields to CRM properties. Create the properties first.

Step 4: test

Land on the form with ?utm_source=test, submit, check Entries. Then land elsewhere with the tag, browse to the form and submit.

That's the manual setup. To skip it, pre-register for Trakt and each WPForms entry arrives with its source attached.

Why WPForms UTM tracking breaks (and how Trakt helps)

New forms skip the fields, caches serve stale values, and the smart tag can't see UTMs from an earlier page.

How Trakt closes the gap

Trakt's WPForms integration receives each entry and stores it with the source saved in the visitor's browser. Trakt adds auto-injected hidden UTM fields, keeps the first touch, syncs source and revenue into your CRM, and sends email and Slack alerts. Running several plugins? See WordPress UTM tracking.

Manual vs. Trakt, by requirement

RequirementSmart tagsTrakt
Setup per formThree to five fieldsOnce
UTMs from earlier pagesExtra codeFirst-party cookie
Source in CRMAdd-on mappingSynced
A form people finishSame either waySame either way

FAQ

Can WPForms track UTM parameters?

Yes, with a Hidden Field whose default value is a query-var smart tag for each parameter.

What is the WPForms smart tag for UTM source?

{query_var key="utm_source"}. Change the key for each parameter.

Why are my WPForms UTM fields empty?

The visitor probably reached the form without tags in the URL, or a cached page was served. Store UTMs on arrival.

Does WPForms Lite support hidden fields?

Check WPForms' current plan comparison. Some field types are limited to paid tiers.

How do I send WPForms UTMs to my CRM?

Use the CRM add-on or a webhook and map each hidden field to a CRM property.

Does Trakt work with WPForms?

Yes. Trakt's WPForms receiver attaches the visitor's stored source to every entry.

What to do first

Add a utm_source hidden field with the smart tag to your main form and test it from a page that isn't the form page.