AGENT SKILLBY MANOJBAJAJ95
UTM builder
AT A GLANCE
UTM builder is an agent skill for analytics. Generate UTM-tagged URLs for campaign tracking. The manojbajaj95/claude-gtm-plugin repository on GitHub, maintained by manojbajaj95, has 74 stars and the MIT license. Its SKILL.md runs to about 1,000 words. To add it, run npx skills add manojbajaj95/claude-gtm-plugin --skill utm-builder
- SOURCE REPOSITORY
- manojbajaj95/claude-gtm-plugin (opens GitHub in a new tab)
- REPO STARS
- SOURCE REPOSITORY
- LICENSE
- MIT
- CATEGORIES
- SKILL.MD SIZE
- 10.1 KB339 LINES
QUICK ANSWER
- WHAT IT IS01
- Generate UTM-tagged URLs for campaign tracking. Create consistent, organized tracking links for Google Analytics, HubSpot, and other analytics platforms. What sets it apart is how it narrows UTM builder into one specific workflow rather than a broad, generic prompt.
- INPUTS02
- Context the agent needs: your goals, audience, constraints, and any source material the skill asks for.
- OUTPUT03
- A ready-to-use result: the analysis, copy, or recommendations the agent produces.
INSTALL
One command adds this skill from its source repository.
npx skills add manojbajaj95/claude-gtm-plugin --skill utm-builderREAD THE SKILL.MD BELOW BEFORE YOU RUN IT. SKILLS INSTRUCT YOUR AGENT.
SKILL.MD
The full file, as published in the source repository. Copy it, download it or open it on GitHub.
ON THIS PAGE · 28
UTM Builder#
Workspace Context#
Read bootstrap context before asking questions: strategy/brand.md for brand, audience, offer, channels, tools, constraints, and metrics; about/me.md for personal voice; content/ideas.md and content/calendar.md for content planning. Use legacy product-marketing context files only as fallback. Save generated drafts to content/<platform>/drafts/YYYY-MM-DD_short-topic-slug.md, and route durable learnings back to strategy/brand.md, about/me.md, or content/ideas.md.
Operating Contract#
This skill is self-contained for its frontmatter scope: use its local instructions, references, scripts, and assets as the playbook; ask only for missing task-specific inputs; hand off to adjacent skills instead of expanding scope; and return an actionable artifact, decision, plan, draft, or diagnostic.
Generate consistent, well-organized UTM tracking links for marketing campaigns.
UTM Parameters#
| Parameter | Required | Purpose | Example |
|---|---|---|---|
utm_source | Yes | Traffic source | google, linkedin, newsletter |
utm_medium | Yes | Marketing medium | cpc, email, social, organic |
utm_campaign | Yes | Campaign name | spring-sale-2025 |
utm_term | No | Paid search keywords | project+management |
utm_content | No | Differentiate variants | cta-button, hero-image |
Naming Conventions#
Recommended Format#
utm_source: {platform}
utm_medium: {channel-type}
utm_campaign: {yyyy-mm}-{campaign-name}
utm_term: {keyword} (paid search only)
utm_content: {ad-variant}-{placement}Source Values (lowercase, no spaces)#
Paid:
- google
- linkedin
- meta (facebook + instagram)
- tiktok
- twitter
- bing
Organic Social:
- linkedin-organic
- twitter-organic
- facebook-organic
Email:
- mailchimp
- hubspot
- sendgrid
- newsletter
Referral:
- partner-{name}
- affiliate-{name}
- referralMedium Values#
Paid:
- cpc (cost per click)
- cpm (cost per impression)
- display
- video
- retargeting
Organic:
- organic
- social
- referral
Direct:
- email
- sms
- push
Content:
- blog
- pr
- podcast
- webinarCampaign Naming#
Format: {date}-{name}-{segment}
Examples:
- 2025-03-spring-promo
- 2025-q1-product-launch
- 2025-04-webinar-ai-trends
- 2025-03-ebook-marketing-guide
- evergreen-demo-requestHow to Use#
Single URL#
Create a UTM link for:
URL: https://example.com/pricing
Campaign: Spring promotion on LinkedInOutput:
https://example.com/pricing?utm_source=linkedin&utm_medium=cpc&utm_campaign=2025-03-spring-promoBulk Generation#
Create UTM links for a multi-channel campaign:
URL: https://example.com/demo
Campaign: Q2 Product Launch
Channels:
- Google Search Ads
- LinkedIn Sponsored Content
- Email newsletter
- Twitter organic postOutput:
═══════════════════════════════════════════════════════════════
CAMPAIGN: Q2 Product Launch
BASE URL: https://example.com/demo
DATE: 2025-Q2
═══════════════════════════════════════════════════════════════
GOOGLE SEARCH ADS:
──────────────────────────────────────────────────────────────
https://example.com/demo?utm_source=google&utm_medium=cpc&utm_campaign=2025-q2-product-launch&utm_term={keyword}
Use {keyword} placeholder for dynamic keyword insertion.
LINKEDIN SPONSORED:
──────────────────────────────────────────────────────────────
Variant A (Image):
https://example.com/demo?utm_source=linkedin&utm_medium=cpc&utm_campaign=2025-q2-product-launch&utm_content=image-a
Variant B (Video):
https://example.com/demo?utm_source=linkedin&utm_medium=cpc&utm_campaign=2025-q2-product-launch&utm_content=video-b
EMAIL NEWSLETTER:
──────────────────────────────────────────────────────────────
Header CTA:
https://example.com/demo?utm_source=newsletter&utm_medium=email&utm_campaign=2025-q2-product-launch&utm_content=header-cta
Footer CTA:
https://example.com/demo?utm_source=newsletter&utm_medium=email&utm_campaign=2025-q2-product-launch&utm_content=footer-cta
TWITTER ORGANIC:
──────────────────────────────────────────────────────────────
https://example.com/demo?utm_source=twitter-organic&utm_medium=social&utm_campaign=2025-q2-product-launch
═══════════════════════════════════════════════════════════════
TRACKING SPREADSHEET
═══════════════════════════════════════════════════════════════
| Channel | Source | Medium | Campaign | Content | Full URL |
|---------|--------|--------|----------|---------|----------|
| Google | google | cpc | 2025-q2-product-launch | - | [url] |
| LinkedIn | linkedin | cpc | 2025-q2-product-launch | image-a | [url] |
| LinkedIn | linkedin | cpc | 2025-q2-product-launch | video-b | [url] |
| Email | newsletter | email | 2025-q2-product-launch | header-cta | [url] |
| Email | newsletter | email | 2025-q2-product-launch | footer-cta | [url] |
| Twitter | twitter-organic | social | 2025-q2-product-launch | - | [url] |A/B Test Links#
Create UTM links for A/B testing two landing pages:
URL A: https://example.com/landing-v1
URL B: https://example.com/landing-v2
Campaign: Homepage redesign test
Channel: Google AdsOutput:
VARIANT A (Control):
https://example.com/landing-v1?utm_source=google&utm_medium=cpc&utm_campaign=2025-03-homepage-test&utm_content=control-v1
VARIANT B (Treatment):
https://example.com/landing-v2?utm_source=google&utm_medium=cpc&utm_campaign=2025-03-homepage-test&utm_content=treatment-v2
TRACKING NOTE:
Compare conversion rates in Google Analytics:
Acquisition → Traffic Acquisition → Filter by utm_contentPlatform-Specific Tips#
Google Ads#
Use ValueTrack parameters for dynamic insertion:
- {keyword} - Search keyword
- {matchtype} - Match type (e, p, b)
- {device} - Device (m, t, c)
- {adposition} - Ad position
Example:
?utm_source=google&utm_medium=cpc&utm_campaign=brand&utm_term={keyword}&utm_content={adposition}LinkedIn Ads#
Use LinkedIn macros:
- {{CAMPAIGN_NAME}}
- {{CREATIVE_NAME}}
- {{CAMPAIGN_GROUP_NAME}}
Note: LinkedIn auto-appends some tracking; combine carefully.Meta (Facebook/Instagram)#
Use URL parameters in ad setup:
- {{ad.name}}
- {{adset.name}}
- {{campaign.name}}
Example:
?utm_source=meta&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_content={{ad.name}}HubSpot Integration#
HubSpot auto-recognizes UTM parameters.
Ensure consistency with HubSpot campaign naming.
Best practice:
- Create HubSpot campaign first
- Use exact campaign name in utm_campaign
- Tag all assets (emails, pages, ads) with same campaignShort URL Integration#
For social media, use URL shorteners that preserve UTM:
- Bitly - Tracks clicks, preserves UTMs
- Rebrandly - Custom branded domains
- Short.io - Team features
Example workflow:
- Generate full UTM URL
- Shorten with Bitly
- Use short URL in social posts
- UTMs still tracked in Google Analytics
Common Mistakes to Avoid#
| Mistake | Problem | Solution |
|---|---|---|
| Inconsistent capitalization | Creates duplicate campaigns in GA | Always use lowercase |
| Spaces in parameters | Breaks URL | Use hyphens or underscores |
| Missing utm_medium | Poor channel attribution | Always include medium |
| Generic campaign names | Hard to analyze | Use date + descriptive name |
| Not documenting | Lost tracking context | Maintain spreadsheet |
| Duplicate utm_source | Confusion in reporting | Standardize naming |
UTM Audit#
Checklist#
- All lowercase (no mixed case)
- No spaces (use hyphens)
- Consistent naming across team
- Campaign includes date prefix
- Medium matches channel type
- Content differentiates variants
- Documented in tracking spreadsheet
Analytics Verification#
After launching, verify in GA4:
- Go to Reports → Acquisition → Traffic acquisition
- Add secondary dimension: Session source/medium
- Filter by campaign name
- Confirm data is populating correctly
Template Library#
Email Campaigns#
Newsletter:
?utm_source=newsletter&utm_medium=email&utm_campaign={date}-{topic}&utm_content={position}
Drip Sequence:
?utm_source=hubspot&utm_medium=email&utm_campaign={sequence-name}&utm_content=email-{number}
Transactional:
?utm_source=transactional&utm_medium=email&utm_campaign=order-confirmationSocial Media#
Organic Post:
?utm_source={platform}-organic&utm_medium=social&utm_campaign={date}-{topic}
Paid Social:
?utm_source={platform}&utm_medium=cpc&utm_campaign={date}-{campaign}&utm_content={creative-name}Content Marketing#
Blog Post:
?utm_source=blog&utm_medium=organic&utm_campaign={post-slug}
Guest Post:
?utm_source={publication}&utm_medium=referral&utm_campaign=guest-post-{date}
Podcast:
?utm_source={podcast-name}&utm_medium=podcast&utm_campaign={episode}Partnerships#
Co-Marketing:
?utm_source=partner-{name}&utm_medium=referral&utm_campaign={joint-campaign}
Affiliate:
?utm_source=affiliate-{name}&utm_medium=referral&utm_campaign=affiliate-programIntegration#
Works well with:
- data-and-funnel-analytics - Analyze UTM performance
- ad-campaign-management - Track paid campaign ROI
- social-media-management - Measure social campaign results
- marketing-automation - Add tracking to email campaigns
FAQ
07 QUESTIONS
01What is the UTM builder agent skill?
Generate UTM-tagged URLs for campaign tracking. Create consistent, organized tracking links for Google Analytics, HubSpot, and other analytics platforms. It is listed under analytics in the 100xLab agent skills directory.
02How do I install UTM builder in Cursor, Claude Code, or Codex?
Run npx skills add manojbajaj95/claude-gtm-plugin --skill utm-builder in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only UTM builder, not every skill in the repository.
03What does the UTM builder SKILL.md cover?
The SKILL.md includes sections on Workspace Context, Operating Contract, UTM Parameters, Naming Conventions, Recommended Format and Source Values (lowercase, no spaces). Read the full text on this page or in plain markdown at /resources/agent-skills/manojbajaj95-claude-gtm-plugin--utm-builder--8l22l0/raw.
04Which agents can use UTM builder?
UTM builder installs with the cross-agent skills installer (npx skills add), which sets it up for agents such as Claude Code, Cursor and Codex. Each agent loads the SKILL.md when you ask for the skill by name.
05What license is UTM builder under?
The manojbajaj95/claude-gtm-plugin repository declares the MIT license. Read the license file in the repository before you copy or redistribute the skill.
06Is UTM builder free to use?
Reading, copying and installing UTM builder costs nothing: it is published in a public GitHub repository under the MIT license. Reuse and redistribution follow that license.
07Where is the source of UTM builder?
UTM builder comes from https://github.com/manojbajaj95/claude-gtm-plugin, which has 74 GitHub stars. The SKILL.md is at https://github.com/manojbajaj95/claude-gtm-plugin/blob/HEAD/skills/utm-builder/SKILL.md. The author is manojbajaj95.
Need an agent workflow built around your stack?
Tell us the workflow you want automated. We reply within 4 working hours (IST).
ATTRIBUTION
UTM builder was written by its original authors and is published in manojbajaj95/claude-gtm-plugin (opens GitHub in a new tab) under the MIT license. All rights stay with the original authors.
100xLab did not write, maintain or endorse this skill. This page lists it for discovery. Repo stars belong to the source repository, not to the skill. Review any skill before you install it.