Skip to content

chore: add UTM parameters to all owned outbound links#4544

Open
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
chore/1773308822-add-utm-parameters
Open

chore: add UTM parameters to all owned outbound links#4544
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
chore/1773308822-add-utm-parameters

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Mar 12, 2026

Summary

Adds UTM tracking parameters to owned outbound links across the repo so app installs and website traffic can be attributed by source. Also documents the UTM convention in the analytics developer docs and handbook so the team can maintain consistency going forward.

20 files changed across 6 areas:

Source utm_source utm_medium Files
GitHub README/CONTRIBUTING github readme, contributing 2
Desktop app (settings, calendar, changelog) app settings, changelog 5
In-app onboarding assets app onboarding 2
Blog articles (homepage & download CTAs) website blog 7
Docs website docs 1
Analytics docs (convention reference) 2

All links use utm_campaign=organic. UTM params are placed before # fragments where applicable. No existing query parameters were present on any of the modified URLs. Blog-to-blog cross-links and non-marketing links (Discord, account management) were intentionally left unchanged.

Updates since last revision

  • Added a UTM parameters on owned links section to apps/web/content/docs/developers/12.analytics.mdx documenting the convention, where UTMs are applied, rules for adding them, and how they connect to PostHog attribution.
  • Added a UTM parameters summary to apps/web/content/handbook/how-we-work/8.analytics-funnel.mdx with a cross-link to the full developer reference, and noted that PostHog captures UTMs automatically on session properties.

Review & Testing Checklist for Human

  • Verify UTM convention matches your analytics setup — confirm utm_source values (github, app, website) and utm_medium values (readme, settings, blog, etc.) align with how you want to segment in your analytics tool
  • Blog article UTMs on same-site links — links in blog MDX files (on char.com) pointing to char.com use utm_source=website&utm_medium=blog. These will override the visitor's original session source in GA. Confirm this is desired vs. using internal campaign tracking
  • Verify analytics doc anchor link — the handbook links to /docs/developers/analytics#utm-parameters-on-owned-links. Confirm the docs framework generates this slug correctly from the ## UTM parameters on owned links heading
  • Spot-check completeness — grep the repo for any owned outbound links that may have been missed (especially in any recently added blog posts or docs)
  • Onboarding assets still use hyprnote.com — UTMs were added to the old-domain URLs in crates/db-user/assets/. These may need a separate domain migration

Suggested test plan: Deploy the preview, navigate to the analytics docs page and handbook funnel page, and verify the UTM convention tables render correctly and the cross-link between them works.

Notes

  • fastrepl/marketing repo was empty (no commits), so it was skipped
  • Pre-existing CI issues (codemirror version mismatch in tiptap, rustfmt toolchain errors) are unrelated to this change

Link to Devin session: https://app.devin.ai/sessions/34101d26258248b490fe456d66f56073
Requested by: @ComputelessComputer

Add UTM tracking parameters to owned links across GitHub files,
desktop app, onboarding assets, blog articles, and docs to enable
attribution of app installs and website traffic by source.

Convention:
- utm_source: github | app | website
- utm_medium: readme | contributing | settings | changelog | onboarding | blog | docs
- utm_campaign: organic

Co-Authored-By: John <john@hyprnote.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Mar 12, 2026

Deploy Preview for hyprnote-storybook canceled.

Name Link
🔨 Latest commit cb1b659
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/69b2c65c03c9be00092583bd

@netlify
Copy link

netlify bot commented Mar 12, 2026

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit cb1b659
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/69b2c65c351ec0000887745d
😎 Deploy Preview https://deploy-preview-4544--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

…book

Co-Authored-By: John <john@hyprnote.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant