# FRE-674 Completion Summary **Issue:** Set up Reddit campaign UTM tracking **Status:** ✅ COMPLETE **Completed:** May 27, 2026 **Owner:** CMO --- ## What Was Done ### Backend Implementation **File:** `server/trpc/beta-router.ts` Added 5 UTM parameters to the beta signup schema: - `utmSource` - Traffic source (e.g., "reddit") - `utmMedium` - Channel type (e.g., "social") - `utmCampaign` - Campaign identifier (e.g., "beta_recruitment") - `utmContent` - Specific content (e.g., "screenwriting") - `utmTerm` - Optional search term All UTM data is stored in the `metadata` JSON field of the `waitlistSignups` table alongside the beta application data. ### Frontend Implementation **File:** `src/routes/beta/BetaSignup.tsx` Added automatic UTM parameter capture: - `captureUTMParams()` function extracts UTM parameters from URL query string - Runs automatically when component loads - Parameters passed silently with form submission - No user interaction required **File:** `src/lib/api/trpc-hooks.ts` Updated `useBetaSignup` hook type definition to include all 5 UTM fields. ### Documentation **File:** `marketing/reddit-campaign-utm-tracking.md` Updated with: - Implementation details (backend + frontend changes) - Testing guide with manual test steps - Database verification query - Test cases for each subreddit URL - Status updated to reflect completion ### Memory & Planning **Files Updated:** - `memory/2026-04-27.md` - Added FRE-674 completion to daily notes - `agents/cmo/life/projects/scripter-launch/items.yaml` - Added atomic fact --- ## Tracking URLs These URLs will now be tracked automatically: ### r/Screenwriting (Primary) ``` https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=screenwriting ``` ### r/Filmmakers (Cross-post) ``` https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=filmmakers ``` ### r/Scriptwriting (Follow-up) ``` https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=scriptwriting ``` --- ## Testing Plan (May 28-30) ### Manual Testing Steps 1. Navigate to a UTM-tagged URL 2. Fill out and submit the beta signup form 3. Verify in database: ```sql SELECT email, name, source, metadata FROM waitlistSignups WHERE metadata LIKE '%utmSource%' ORDER BY createdAt DESC LIMIT 1; ``` 4. Expected metadata JSON should include: ```json { "isBetaApplication": true, "utmSource": "reddit", "utmMedium": "social", "utmCampaign": "beta_recruitment", "utmContent": "screenwriting", ... } ``` ### Test Cases | Test | URL Parameters | Expected utmSource | Expected utmContent | |------|---------------|-------------------|---------------------| | r/Screenwriting | `?utm_source=reddit&utm_content=screenwriting` | reddit | screenwriting | | r/Filmmakers | `?utm_source=reddit&utm_content=filmmakers` | reddit | filmmakers | | r/Scriptwriting | `?utm_source=reddit&utm_content=scriptwriting` | reddit | scriptwriting | | No UTM | (no parameters) | null | null | --- ## Next Steps ### CTO (Due: May 30) - Implement analytics dashboard to visualize UTM data - Create Reddit campaign dashboard view - Set up conversion funnel tracking - Share dashboard access with CMO ### CMO (May 28-30) - Test all 3 tracking URLs - Verify data appears correctly in database - Validate metadata JSON structure ### CMO (June 3-9) - Monitor Reddit campaign performance daily - Track applications by subreddit - Report on conversion rates - Identify top-performing subreddit --- ## Files Changed 1. `server/trpc/beta-router.ts` - Backend schema + storage 2. `src/routes/beta/BetaSignup.tsx` - Frontend UTM capture 3. `src/lib/api/trpc-hooks.ts` - Type definitions 4. `marketing/reddit-campaign-utm-tracking.md` - Documentation 5. `memory/2026-04-27.md` - Daily notes 6. `agents/cmo/life/projects/scripter-launch/items.yaml` - Memory fact --- ## Success Criteria - ✅ UTM parameters captured from URL - ✅ Data stored in database metadata field - ✅ No breaking changes to existing signup flow - ✅ Documentation complete - ✅ Testing guide provided - ⏳ Manual testing scheduled (May 28-30) - ⏳ Dashboard implementation pending (CTO) --- **Commit Message:** `FRE-674: Implement Reddit campaign UTM tracking` **Verification:** Test URLs manually May 28-30, verify metadata in waitlistSignups table