B2B AI DirectoryB2B AI Directory
Marketing OpsintermediatePro

Audit UTMs and attribution hygiene across campaigns

Find inconsistent UTMs, broken campaign naming, missing source data, and attribution gaps before reporting debates waste another pipeline meeting.

What you will have

Create a UTM and attribution hygiene audit with naming fixes, campaign mapping, reporting gaps, and a governance checklist.

Setup time
3-5 hours
Time saved
4-8 hours per monthly reporting cycle
Estimated cost
$0 to $300 per month
Tools used
5 tools

Why this works

Attribution problems often look like analytics problems, but they usually start as governance problems. If campaign names, UTMs, CRM campaigns, and dashboards do not speak the same language, reporting will always be contested. This workflow finds the breaks and creates a naming system people can actually follow.

Step-by-step workflow

Preview the workflow

The first 2 steps are open. Pro unlocks the remaining steps, copy-paste prompts, pro tips, tool-by-tool setup guidance, and implementation details.

1

Export recent campaign and traffic data

1.5-2 hours

Define a fixed 60-90 day audit window and record the exact start date, end date, time zone, included business units, and excluded test traffic before exporting anything. From Google Analytics 4, export landing page, session source, session medium, campaign, content, term, key events, conversions, and any available first-user acquisition dimensions for the same window. From HubSpot, export campaigns, contacts or leads, original and latest source fields, campaign membership, lifecycle stage, opportunity or deal association, and owner fields used in reporting. Collect paid media, email, event, partner, and landing-page URL exports that contain the UTMs marketers actually launched, not only the values that survived into GA4 or the CRM. Load each source into a separate raw tab in Google Sheets and create a Control Totals tab with source name, export time, filters, row count, and key aggregate totals. Preserve all raw values exactly as exported, including blanks, casing differences, and obvious mistakes, because those defects are evidence for the governance audit. Reconcile the workbook totals to each source system and resolve material row-count or conversion-count differences before normalization begins.

Output

A reconciled audit workbook with immutable raw exports, documented filters, and control totals across analytics, CRM, and campaign sources.

Google Analytics 4HubSpotGoogle Sheets
Pro tip

Save the query or report configuration used for every export. Without reproducible filters, later disagreements can be mistaken for attribution changes when they are only extraction differences.

2

Normalize the audit fields

60-75 min

Create a normalized audit tab with one row per observed campaign URL or campaign record and separate columns for every raw and standardized value. Include final URL, raw source, raw medium, raw campaign, raw content, raw term, landing page, channel, offer, region, audience, CRM campaign, lifecycle stage, conversion event, owner, and source-system record ID. Add corrected-value columns beside the raw fields, but leave them blank until the issue patterns and naming rules are approved. Create controlled status values for Clean, Missing, Inconsistent, Duplicate, Ambiguous, Legacy, Internal Test, and Needs Owner Review. Add issue category, issue detail, confidence, proposed correction, mapping rule, reviewer, and resolution status so each decision has an audit trail. Use formulas or validation rules to flag whitespace, capitalization drift, illegal characters, unexpected source-medium combinations, blank required fields, and duplicate campaign identifiers. QA the normalized table by tracing a sample of rows back to every raw tab and confirming that no source record, blank value, or malformed URL was silently dropped.

Output

A normalized audit table that preserves raw data while exposing consistent issue, correction, ownership, and review fields.

Google Sheets
Pro tip

Keep blank, unknown, and not-applicable as different states. Collapsing them into one value hides whether the problem is missing tracking, unavailable data, or a channel where the field should not exist.

Pro workflow preview

Previewing 2 of 8 steps

Pro membership

Unlock the full workflow

Get the remaining 6 steps, copy-paste prompts, pro tips, tool-by-tool setup guidance, and weekly new workflows.

$9/month

Use AI to find naming and attribution patterns
Create a corrected naming convention
Map existing messy data to corrected values
Validate dashboards against the corrected map
Create a governance checklist and request form
Run a monthly hygiene review
See Pro plan
3Use AI to find naming and attribution patterns
Locked
4Create a corrected naming convention
Locked
5Map existing messy data to corrected values
Locked
6Validate dashboards against the corrected map
Locked
7Create a governance checklist and request form
Locked
8Run a monthly hygiene review
Locked

Expected results

Audit coverage

60-90 days of campaign data

This window is large enough to reveal repeat naming patterns without making the first cleanup unmanageable.

Reporting accuracy

Cleaner source and campaign fields

Corrected maps and naming rules reduce unknown traffic, duplicate campaigns, and inconsistent channel grouping.

Time saved

4-8 hours per reporting cycle

Cleaner inputs reduce manual reconciliation between GA4, CRM campaigns, spreadsheets, and dashboards.

Governance output

Reusable UTM builder and checklist

The workflow creates a prevention system, not only a one-time cleanup.

Related workflows

Continue with workflows that share a similar GTM motion, category, or tool stack.