Solution

See the UTM values on your final URLs before you send

Tracking drifts between template and inbox: sending platforms rewrite links, and the values that matter are the ones on the URL the redirect chain actually lands on. SendProofs inspects the utm_* values on that final URL and records each issue as a named finding on the exact link — while there is still time to fix it in your sending platform.

How it works

  1. Upload the delivered test email

    The .eml file you save from your own inbox — works with an email saved from Gmail, Outlook on the web or Apple Mail. This is the message after your platform rewrote the links, so it carries the tracking your recipients will actually receive.

  2. Ordinary links are followed to their final URL

    Every unique ordinary link gets a bounded check — recognized action links are marked Protected and never requested — with HTTP redirects followed up to 3 hops and every hop recorded. Redirect evidence describes the chain in full.

  3. UTM inspection runs on the final URL

    Not on the template href, and not on the click-tracking wrapper — on the URL the redirect chain lands on. That is where your tracking parameters either survived the rewrites or did not.

  4. Five issue types are recorded by name

    Missing required UTM keys (where required keys are defined for the workspace), duplicate keys, blank values, non-canonical key casing, and malformed URLs — each recorded on the specific link that carries it.

  5. Reachable links with UTM issues report as Warning

    The destination answered, but the tracking needs a decision before approval. The report names the issue, so the fix in your sending platform is specific, not a hunt.

What the states mean here

Healthy
The final URL answered 2xx and no tracking issue was recorded. No action.
Warning
The link is reachable, but a named UTM issue was recorded on its final URL. Review it before approval.
Broken
The destination failed a deterministic check, so there is no trustworthy final URL to review tracking on. Fix the link first, send a fresh test, recheck.
Protected
Recognized action links are never opened. Links recognized at upload have no redirect chain or final URL; a link that turns Protected mid-redirect keeps its chain recorded up to the stopping hop. Either way, review their tracking by hand.
Sample data Link tracking from the August launch sample run
ResourceStateEvidence
campaign.example/launch?utm_source=email&utm_campaign=aug-launch Healthy 200 after 2 redirects · 312 ms · 14:02 UTC
campaign.example/blog/whats-new?utm_source=email Warning 200, but the workspace's required utm_campaign is missing on the final URL
campaign.example/pricing/summer-2026 Broken 404 at final destination — fix in your sending platform, then recheck

Sample data from the August launch sample run — 24 unique resources, 18 links and 6 images. In visible reports, the five standard utm_* keys are the only query values shown unredacted; every other query value appears as [REDACTED].

What still needs a human

SendProofs checks the structure of your tracking, not its meaning. Whether utm_campaign carries the agreed campaign name, whether utm_source matches your team's taxonomy, whether the medium is the one your reports segment on — those are value-level decisions only a human can make. The report puts the final values in front of you; you judge whether they are the right ones.

The final URL here is final over HTTP redirects. SendProofs runs no JavaScript, so a destination that redirects again in the browser — by script or meta refresh — is beyond what the check observes. Treat the review as evidence about the delivered links, not a replay of what your analytics platform will record.

And an automated 200 on the final URL is evidence that the destination answered at check time — on its own it does not prove the campaign is correct. The landing page content, the offer, the audience and the timing are still yours to approve.

Review your campaign's tracking before it ships

Free workspace — 100 resource checks each month, no card at signup.

Create workspace