Tracking · CRM Setup & Required Fields
Build a Lead Source Field Taxonomy
Design a two-level lead source taxonomy (Source + Source Detail) so attribution reports actually work and reps stop typing 'Referral' 9 different ways.
managerfounderIntermediate⏱ 3-5 hours of attribution cleanup
When to use
Use this when your attribution reports are unusable because reps type 'Referral,' 'referral,' 'Referrral,' and 'Word of Mouth' for the same source. This prompt builds a controlled two-level taxonomy with picklist values and rules for which marketing channel maps to what.
The prompt
You are a growth marketing lead at a digital marketing agency who needs lead source data clean enough to make budget decisions on. Agency: [AGENCY_NAME] | CRM: [CRM_TOOL] | Current marketing channels: [MARKETING_CHANNELS] | Referral sources: [REFERRAL_SOURCES] | Outbound motions: [OUTBOUND_MOTIONS] | Current mess: [CURRENT_MESS] Design a 2-level lead source taxonomy: a top-level Source picklist (5-8 values) and a Source Detail picklist (15-30 values) that maps to Source. Provide the rule for which value to pick in ambiguous cases (e.g., podcast guest who then googles us). - Source values must be mutually exclusive and collectively exhaustive - Source Detail must be dependent picklist (only show details valid for selected Source) - Include a UTM-to-source mapping so web-form leads auto-populate - Provide a tiebreaker rule for multi-touch leads (use first-touch, last-touch, or self-reported) - Include an "Other (please specify)" with a free-text fallback that triggers an admin review Section 1: Source + Source Detail dependent picklist table. Section 2: UTM-to-source mapping table. Section 3: tiebreaker rules. Section 4: 5 example leads with the right Source/Detail assignment.
Variables
- [AGENCY_NAME] — Your agency's name
- [CRM_TOOL] — HubSpot, Pipedrive, Salesforce, etc.
- [MARKETING_CHANNELS] — Channels you run (SEO, paid search, LinkedIn, podcast, newsletter, events)
- [REFERRAL_SOURCES] — Who refers (clients, partners, freelancers, network)
- [OUTBOUND_MOTIONS] — Outbound types (cold email, LinkedIn, events)
- [CURRENT_MESS] — What the field looks like today (free text, 50 variants, etc.)
Example input
Agency: Trailhead Digital | CRM: HubSpot | Channels: SEO, content, LinkedIn organic, podcast guesting, newsletter | Referrals: existing clients, freelancer partners, consultants | Outbound: cold LinkedIn DMs, targeted ABM email | Mess: free text field, 80+ unique values
Example output
**Source / Source Detail** | Source | Source Details | |---|---| | Inbound — Organic | SEO/Blog, Direct, AI/LLM Mention | | Inbound — Paid | Google Ads, LinkedIn Ads, Meta Ads | | Referral | Client Referral, Partner Referral, Freelancer Referral | | Outbound | Cold Email, Cold LinkedIn, ABM Sequence | | Content/Brand | Podcast Guesting, Newsletter, Webinar, Speaking Event | | Other | Other (specify) | **UTM mapping:** utm_source=google + utm_medium=organic → Inbound-Organic/SEO; utm_medium=cpc → Inbound-Paid/Google Ads; utm_source=newsletter → Content-Brand/Newsletter. **Tiebreaker:** Self-reported on inquiry form wins; if blank, first-touch UTM wins; if both blank, default to Inbound-Organic/Direct and flag for review. **Examples:** (1) Podcast listener googles us → Self-reported 'podcast' wins → Content-Brand/Podcast Guesting. (2) Client refers via Slack → Referral/Client Referral. (3) Cold LinkedIn that converts 3 weeks later via Google → Self-reported 'LinkedIn' → Outbound/Cold LinkedIn.
Pro tips
- Self-reported attribution (a 'How did you hear about us?' dropdown on the form) beats UTM-only attribution for agencies — referrals don't carry UTMs.
- Make Source Detail dependent on Source in HubSpot/Salesforce — it cuts bad data by ~70%.
- Run a monthly 'Other' review and either add the new value as a Detail or merge it into an existing one — don't let Other be a graveyard.
Works with
ClaudeChatGPTGemini
Done with prompts? Time to install the system
Book a STAOS callRelated prompts