Clean up broken UTMs and rebuild campaign tracking governance
Audit messy campaign tracking, standardize UTM naming, detect broken links, and create a governance system marketing teams can actually follow.
What you will have
A UTM cleanup workflow with taxonomy rules, broken-link detection, source-medium mapping, CRM alignment, and an approval process for future campaign links.
Setup time
3-5 hours
Time saved
5-8 hours per reporting cycle
Estimated cost
$0 to $200 per month
Tools used
5 tools
Why this works
UTM cleanup fails when teams only fix old values and never change how new links are created. This workflow treats tracking as an operating system: inventory the mess, create simple approved values, build a governed URL builder, QA active links, and review drift monthly. AI is useful for spotting patterns across messy records, but the durable improvement comes from validation, ownership, and launch governance.
Step-by-step workflow
Run the workflow
This workflow is fully available. Follow the steps below to build the system from start to finish.
1
Export the real tracking inventory
1-2 hours
1-2 hours
Start by exporting the campaign data your team is actually using, not the taxonomy you wish existed. Pull the last 6-12 months of GA4 traffic acquisition data, HubSpot tracking URLs and campaigns, Salesforce campaigns if used, active paid media URLs, webinar links, email links, and partner links. Put everything into Google Sheets with separate columns for destination URL, final URL after redirects, source, medium, campaign, content, term, channel, owner, campaign status, and CRM campaign name. Add one row per live or historical link so you can see duplicate naming patterns and broken conventions side by side. Mark each row as active, historical, or unknown before cleanup so you do not waste time fixing old links that no longer drive traffic.
Output
A consolidated tracking inventory covering UTMs, campaign URLs, CRM campaigns, and active destination links.
Google Analytics 4HubSpotSalesforceGoogle Sheets
Pro tip
Do not start in a blank taxonomy template. The fastest way to design rules people will follow is to first inspect the naming habits they already have.
2
Classify the tracking mess by error type
45-60 min
45-60 min
Use Claude to review the export and group problems by pattern, not by individual mistake. Ask it to flag inconsistent source names, medium drift, mixed casing, duplicate campaign names, missing values, paid-versus-organic confusion, broken source and medium pairings, CRM campaign mismatches, and links with no clear owner. Add the resulting issue type, severity, and suggested fix back into the sheet. Keep a separate column for confidence so questionable rows go into review instead of being silently corrected. This step should produce an error map that tells you where governance is breaking, not just a long list of messy URLs.
Output
A grouped UTM and campaign tracking error report with severity, frequency, and recommended cleanup actions.
ClaudeGoogle Sheets
Pro tip
Do not try to perfectly repair every historical mistake. Your main goal is to stop future campaign reporting from getting polluted.
Prompt template
Analyze these campaign tracking records and classify the issues.
Tracking export:
{{utm_tracking_export}}
Current reporting goals:
{{reporting_goals}}
CRM campaign structure:
{{crm_campaign_structure}}
For each issue pattern, return:
1. Issue type
2. Example rows
3. Why it hurts reporting
4. Severity: low, medium, or high
5. Frequency estimate
6. Recommended cleanup action
7. Whether the fix should apply historically or only going forward
8. Rows that need human review
Look for source naming inconsistency, medium naming inconsistency, mixed casing, missing values, duplicate campaigns, paid versus organic misclassification, CRM mismatch risk, broken links, and unclear ownership.
3
Write the approved UTM taxonomy
1-2 hours
1-2 hours
Create a simple taxonomy for source, medium, campaign, content, and term that matches how your team reports performance. Keep allowed values short, lowercase, and tied to channel behavior rather than personal preference. Define examples for LinkedIn ads, Google search, partner email, owned newsletter, webinar promotion, organic social, paid social, display ads, field events, and sales-shared links. Include invalid examples with corrections so marketers can recognize the difference between acceptable and messy links. Get one marketing ops or RevOps owner to approve the taxonomy before you build the URL generator.
Output
An approved UTM taxonomy with allowed values, channel examples, invalid examples, and ownership rules.
ClaudeGoogle Sheets
Pro tip
Use dropdown values for recurring fields and free text only where flexibility is genuinely needed. A taxonomy with too many exceptions becomes another source of attribution chaos.
Prompt template
Create a practical UTM taxonomy for our marketing team.
Channels we use:
{{channels}}
Current tracking errors:
{{tracking_error_report}}
Reporting questions we need to answer:
{{reporting_questions}}
CRM campaign structure:
{{crm_campaign_structure}}
Return:
1. Allowed source values
2. Allowed medium values
3. Campaign naming format
4. Content naming format
5. Term usage rules
6. Examples by channel
7. Invalid examples and corrected versions
8. Required owner and approval fields
9. Rules for when to create a new CRM campaign
10. Rules for when a link needs review
Keep rules simple, lowercase, and easy enough for non-ops marketers to follow.
4
Create the historical cleanup map
1 hour
1 hour
Build a mapping table that translates messy existing values into the new approved taxonomy. For each old value, decide whether it should be corrected in reporting views, aliased in a dashboard, fixed only on active links, or left alone for history. Add a reason for each decision so future reviewers understand why you did not rewrite everything. If HubSpot or Salesforce campaign names do not align with UTM campaign names, map the relationship explicitly rather than pretending they are the same field. Review this map with the reporting owner before changing any live dashboards.
Output
An old-to-new mapping table that separates historical cleanup, active link fixes, dashboard aliases, and no-change decisions.
Google SheetsClaudeHubSpotSalesforce
Pro tip
Historical cleanup should improve reporting confidence, not create a new version of reality. When in doubt, preserve the raw value and add a reporting alias instead of overwriting history.
Prompt template
Create a cleanup mapping plan from these old campaign tracking values.
Approved taxonomy:
{{approved_taxonomy}}
Old values and examples:
{{old_tracking_values}}
CRM campaign names:
{{crm_campaign_names}}
For each old value, recommend one action:
- Correct in active links
- Alias in reporting
- Map to CRM campaign
- Leave historical only
- Needs human review
For each recommendation, include the corrected value, reason, risk, and whether the change affects GA4, HubSpot, Salesforce, or only the governance sheet.
5
Build the governed campaign URL builder
1-2 hours
1-2 hours
Create a Google Sheets URL builder that makes correct tracking easier than manual URL editing. Use dropdowns for approved source, medium, campaign type, region, persona, offer, channel, and content variant, then generate the final URL from those choices. Add validation that blocks uppercase values, spaces, unapproved mediums, missing campaign names, and source-medium pairings that do not match the taxonomy. Include visible fields for requester, campaign owner, review status, creation date, destination URL, generated tracking URL, and notes. Create a locked reference tab for approved values so marketers can use the builder without accidentally changing the rules.
Output
A reusable campaign URL builder with dropdowns, validation, owner fields, and generated links.
Google Sheets
Pro tip
Documentation tells people what to do; validation prevents the wrong thing from being created in the first place.
6
QA every active campaign link
1-2 hours
1-2 hours
Review all active campaign links before you announce the new system. Check that each URL resolves to the intended page, keeps its UTM parameters after redirects, uses approved source and medium values, connects to the correct CRM campaign, and lands on a page that matches the offer. Prioritize live paid campaigns, partner emails, webinars, event promotions, and any links connected to sales follow-up. Add a QA status for pass, fix required, owner review, or retired. Do not publish the taxonomy until high-risk active links are fixed or consciously accepted as exceptions.
Output
An active campaign link QA report with pass/fail status, owner assignments, and required fixes.
Google SheetsGoogle Analytics 4HubSpotSalesforce
Pro tip
Redirects are where clean-looking links often break. Always test the final resolved URL, not just the link sitting in the spreadsheet.
7
Align CRM campaign and reporting rules
1 hour
1 hour
Update HubSpot or Salesforce campaign guidance so CRM campaigns and UTMs describe the same marketing motion at different levels. Define when a marketer should create a CRM campaign, when to use an existing one, how forms and landing pages should be associated, and how offer names should map into campaign names. Create a short review checklist for campaign launches that covers URL creation, CRM association, form tracking, email links, paid links, and reporting owner. Add the checklist to your campaign intake process so UTM governance happens before launch, not during reporting cleanup. Ask demand gen, marketing ops, and sales ops to sign off on the rules because all three teams will feel the reporting impact.
Output
CRM campaign alignment rules and a pre-launch tracking checklist for future campaigns.
HubSpotSalesforceGoogle Sheets
Pro tip
UTMs are click-level tracking; CRM campaigns are campaign-level governance. They should connect cleanly, but they do not need to be identical in every field.
8
Run a monthly tracking drift review
30 min per month
30 min per month
Set a monthly 30-minute review where marketing ops exports new campaign links and asks Claude to flag taxonomy drift. Track error count by channel, team, owner, issue type, and source-medium pairing so you can see whether the system is improving. Use the review to update dropdown values, retire confusing rules, and coach teams on repeated errors without turning governance into blame. Compare GA4 and CRM reporting after the cleanup so you can spot large source-medium changes before leadership sees inconsistent numbers. Keep the monthly report in the same sheet so the taxonomy becomes a living operating system instead of a one-time cleanup.
Output
A monthly UTM governance report showing new errors, drift patterns, owners, and taxonomy changes.
If the same error appears three months in a row, the rule is probably too confusing. Fix the builder or the dropdown options before blaming the team.
Prompt template
Audit this month’s new campaign tracking records against the approved taxonomy.
Approved taxonomy:
{{approved_taxonomy}}
New campaign links:
{{new_campaign_links}}
CRM campaign rules:
{{crm_campaign_rules}}
Last month’s error summary:
{{last_month_error_summary}}
Return:
1. New tracking errors
2. Repeated errors from prior months
3. Error count by channel and owner
4. High-risk active links
5. Suggested fixes
6. Taxonomy rules that may need clarification
7. Dashboard or CRM mismatches to review
8. A short summary for the monthly ops review
Do not blame individuals. Focus on system improvements and launch risk.
Expected results
Tracking inventory
100-1,000 campaign records reviewed
Even small B2B teams usually accumulate hundreds of campaign links, email URLs, paid links, webinar links, and CRM campaign records over 6-12 months.
Governance assets
1 taxonomy, 1 URL builder, 1 QA checklist
The workflow produces the minimum operating system needed to prevent new UTM drift: rules, a link builder, and a launch review process.
Reporting cleanup time saved
5-8 hours per reporting cycle
Cleaner source, medium, campaign, and CRM mappings reduce the manual reconciliation work usually done before monthly or quarterly reporting.
Ongoing error reduction
Monthly drift report
The review ritual creates a feedback loop so recurring tracking errors are fixed in the builder or taxonomy instead of rediscovered every reporting cycle.
Related workflows
Continue with workflows that share a similar GTM motion, category, or tool stack.