{"id":"mkt2-utm-link-csv-naming-rules","audience":"marketing","category":"data","track":"marketing","technique":"format","level":"advanced","title":"Generate UTM tracking links in a CSV that follow the naming rules","free":false,"task":"Build tracking links for the Spring Sale 2027 campaign. Write a prompt that outputs one CSV code block with the header channel,url and one row per approved channel. Each url is the base link plus utm_source, utm_medium and utm_campaign, in that order, all lowercase with hyphens instead of spaces. Medium rules: email for newsletters, social for social posts, cpc for paid search, referral for partner blogs. No text outside the block.","materialLabel":"Campaign sheet (attached to your prompt automatically)","material":"SPRING SALE 2027 - channel plan\nBase link: https://bloomandbolt.example/spring\nCampaign name: Spring Sale 2027\n\nChannel | Source name | Status\nNewsletter | newsletter | Approved\nLinkedIn Post | linkedin | Approved\nGoogle Search Ads | google | Approved\nPartner Blog | partner blog | Approved\nGoogle Display Ads | google | Cancelled (budget cut)\nInstagram Reels | instagram | Not approved\n\nExample from last year, for reference only: https://bloomandbolt.example/spring?utm_source=Newsletter&utm_campaign=Spring_Sale_2026 (this one broke our reports: capital letters and underscores, and it had no medium).","rules":[{"type":"codeBlocks","count":1},{"type":"maxProseWords","max":10},{"type":"maxCodeLines","max":5}],"mistakes":[{"title":"Including cancelled channels","why":"The AI lists every row in the sheet.","fix":"Say: \"Only channels with status Approved.\"","checks":["r0"]},{"title":"Copying last year's format","why":"The AI copies the broken example's capitals and underscores.","fix":"Say: \"All lowercase, hyphens instead of spaces or underscores.\"","checks":["r2"]},{"title":"Wrong medium","why":"The AI guesses mediums like 'paid' or 'cpm'.","fix":"Give the mapping: email, social, cpc, referral.","checks":["r1"]},{"title":"Extra rows or chatter","why":"The AI adds a notes row or an intro.","fix":"Say: \"Header plus 4 rows only; no text outside the block.\"","checks":["maxCodeLines","maxProseWords","codeBlocks"]}],"promptHints":[{"label":"Gives the CSV header","patterns":["channel,url"]},{"label":"States parameter order","patterns":["utm_source.*utm_medium.*utm_campaign"]},{"label":"Gives the medium mapping","patterns":["email","social","cpc","referral"]},{"label":"Only approved channels","patterns":["approved","only"]},{"label":"Lowercase with hyphens","patterns":["lowercase","hyphen"]}],"hint":"UTM links break reports when naming is sloppy. Give the header, the parameter order, the medium mapping and the case rules, and limit rows to approved channels.","mission":"Build tracking links for each approved Spring Sale 2027 channel.","musts":["Source, medium, campaign order","Lowercase with hyphens","Correct medium per channel"],"rubricLabels":["The code block starts with the header channel,url and has exactly 4 rows for Newsletter, LinkedIn Post, Google Search Ads and Partner Blog, with no cancelled or unapproved channel","Each url is https://bloomandbolt.example/spring?utm_source=...&utm_medium=...&utm_campaign=spring-sale-2027 in that parameter order, all lowercase","Sources and media are correct: newsletter/email, linkedin/social, google/cpc, partner-blog/referral, with hyphens and no underscores or capitals"]}