Event analytics skill
Customer event analytics across every GTM system — Intercom, Zendesk, Salesforce, HubSpot, Segment, Amplitude, Mixpanel, PostHog, and custom event pipelines.
by LeadMagic·MIT license·★ 62 Stars on the repo·GitHub ↗
npx degit LeadMagic/gtm-skills/skills/analytics/event-analytics#main ~/.claude/skills/event-analyticsChecked ·commit main
Inside this skill
SKILL.md · the author's own words# Event Analytics ## Overview Events are the atomic unit of customer understanding. Every signup, click, feature use, upgrade, and cancellation is an event. The mistake: tracking events haphazardly ("track everything!") with no taxonomy, creating a data swamp instead of a data pipeline. This skill covers event analytics across every GTM system — how to design an event taxonomy, implement tracking, and unify event data across your stack to build a complete customer picture. ## Authoritative Foundations - **Segment** — Customer Data Platform (CDP) and event taxonomy - **Amplitude** — Behavioral analytics and event design - **Mixpanel** — Product analytics and event-based reporting
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of Event analytics
Show the full text317 lines
Event Analytics
Overview
Events are the atomic unit of customer understanding. Every signup, click, feature use, upgrade, and cancellation is an event. The mistake: tracking events haphazardly ("track everything!") with no taxonomy, creating a data swamp instead of a data pipeline. This skill covers event analytics across every GTM system — how to design an event taxonomy, implement tracking, and unify event data across your stack to build a complete customer picture.
Authoritative Foundations
- Segment — Customer Data Platform (CDP) and event taxonomy
- Amplitude — Behavioral analytics and event design
- Mixpanel — Product analytics and event-based reporting
- Intercom — Event-driven messaging and automation
- Avo — Event taxonomy and governance
- Snowplow — Open-source event pipeline
When to Use
Trigger phrases: "event analytics setup", "customer event tracking", "implement Segment", "Amplitude setup for SaaS", "event taxonomy design", "customer data pipeline", "product analytics events", "Intercom events", "event-driven workflows"
Step-by-Step Process
Phase 1: Event Taxonomy Design
The 4 event types (Segment spec):
- Identify: Who is the user?
identify(userId, traits) - Track: What did they do?
track(eventName, properties) - Page: What page did they view?
page(name, properties) - Group: What account/workspace are they in?
group(groupId, traits)
Event naming convention (object-action framework):
Format: [Object] [Action] (Past tense. Write events as things that HAPPENED.)
Good: "Project Created" "Invoice Paid" "Campaign Sent"
Bad: "createProject" "user_clicked_button" "page3-conversion-v2"
Rules:
- Title case: "Signed Up" not "signed_up"
- Past tense: "Viewed" not "View"
- Object first: "Report Exported" not "Exported Report"
- No technical jargon: "Payment Completed" not "stripe_webhook_200"
Event taxonomy — core events every SaaS should track:
ACCOUNT EVENTS:
- Signed Up (properties: plan, source, referrer, UTM params)
- Subscription Started (properties: plan, price, billing period)
- Subscription Upgraded (properties: from_plan, to_plan, reason)
- Subscription Downgraded (properties: from_plan, to_plan, reason)
- Subscription Canceled (properties: plan, reason, tenure_days)
- Trial Started / Trial Converted / Trial Expired
USAGE EVENTS:
- Feature Used (properties: feature_name, context, duration)
- Search Performed (properties: query, results_count)
- Integration Connected (properties: integration_name)
- Invite Sent / Invite Accepted (properties: role)
- File Uploaded / Exported (properties: type, size)
ENGAGEMENT EVENTS:
- Email Opened / Clicked (properties: email_type, campaign_id)
- Notification Viewed / Clicked
- Support Ticket Created / Resolved (properties: category, priority)
- NPS Submitted (properties: score, comments)
- QBR Attended (properties: attendees)
REVENUE EVENTS:
- Invoice Created / Paid / Overdue
- Credit Card Added / Updated / Failed
- Refund Processed
MILESTONE EVENTS:
- Activation Complete (properties: time_to_activate_hours)
- First Value Achieved (properties: milestone, time_to_value_days)
- 7-Day Active / 30-Day Active
- Power User Threshold Reached
Phase 2: Implementation Strategy
Source → CDP → Destinations architecture:
Your App (client/server)
│
▼
Segment (or Rudderstack / mParticle / Snowplow)
│
├── Amplitude (product analytics)
├── Mixpanel (product analytics)
├── Intercom (event-triggered messaging)
├── Salesforce / HubSpot (CRM events)
├── Google Analytics (web analytics)
├── Data Warehouse (Snowflake / BigQuery / Redshift)
└── Webhook → custom integrations
Implementation pattern (server-side preferred):
// Identify on login
analytics.identify(userId, {
email: user.email,
name: user.name,
plan: user.plan,
createdAt: user.createdAt,
company: { id: workspace.id, name: workspace.name }
});
// Group for B2B (account-level context)
analytics.group(workspaceId, {
name: workspace.name,
plan: workspace.plan,
employees: workspace.employeeCount,
mrr: workspace.mrr
});
// Track key events
analytics.track('Feature Used', {
feature: 'Email Finder',
source: 'dashboard',
credits_remaining: user.credits
});
Phase 3: System-Specific Event Analytics
Intercom Events:
- Use as event triggers for: onboarding tours (if user does X, show tour Y), email sequences (if user reaches milestone, send email), chat targeting (if user is stuck, offer help), in-app messages (if feature unused, promote it)
Intercom('track', 'Feature Used', { feature: 'Reports' })
Salesforce Events (via Platform Events):
- Track: Lead Status Changed, Opportunity Stage Changed, Task Completed
- Use for: real-time dashboards, Slack alerts on key deals, enrichment triggers
HubSpot Events (via Custom Behavioral Events):
- Track: Form Submission, Meeting Booked, Email Clicked, Page Viewed
- Use for: lead scoring, workflow triggers, list membership
Amplitude / Mixpanel:
- Purpose: product analytics — not just what happened, but who did it, how often, and what happened next
- Key reports: retention curves, funnel analysis, behavioral cohorts, feature adoption, power user curve
Phase 4: Event-Driven GTM Automation
Example workflows:
Event: "Signed Up" → source = Google Ads
→ Add to Ad Conversions in Google Ads
→ Add to HubSpot as Lead
→ Enrich with Clearbit / LeadMagic
→ Route to SDR if ICP match
→ Send welcome email sequence
Event: "Feature Used" → feature = "Reports", 3rd time this week
→ Score: +10 engagement points
→ Trigger Intercom message: "Power user move: try Advanced Reports"
Event: "Trial Expired" → no conversion
→ Send re-engagement email sequence (3 emails over 7 days)
→ If no response: move to nurture list
Event: "NPS Submitted" → score < 6 (Detractor)
→ Create Zendesk ticket: "Follow up with Detractor"
→ Slack alert to CSM
→ Auto-schedule call with customer
Phase 5: Event Governance
Event dictionary (living document — reference per event):
| Event Name | Properties | Trigger | Destinations | Owner |
|---|---|---|---|---|
| Signed Up | plan, source, referrer | POST /auth/signup | Segment → all | Eng |
| Feature Used | feature_name, context | Client-side track call | Amplitude, Intercom | Product |
Governance rules:
- New events require: description, properties schema, destination list, owner
- No "track everything" — each event must have a purpose and an owner
- Deprecate, don't delete. Keep old events but stop sending them.
- Review event taxonomy quarterly. Remove unused events. Consolidate duplicates.
- Every event needs a test. CI/CD should verify events fire correctly.
Tools for event governance:
- Avo (avo.app) — event taxonomy design, code generation, validation
- Segment Protocols — enforce event schemas, block malformed events
- Amplitude Data — govern events within Amplitude's ecosystem
Output Format
EVENT ANALYTICS PLAN — [Company]
CDP: [Segment / Rudderstack / mParticle / Snowplow / Custom]
EVENT TAXONOMY:
[Docs link or table with event name, properties, trigger, destinations]
IMPLEMENTATION:
- Client-side: [SDK / library]
- Server-side: [SDK / webhook pipeline]
- Testing: [how events are validated]
DESTINATIONS:
| Tool | Purpose | Key Events |
|---|---|---|
| Amplitude | Product analytics | Feature Used, Signed Up |
| Intercom | Messaging automation | All usage + milestone events |
| HubSpot | CRM | Account events, revenue events |
| Data Warehouse | Analytics | All events |
EVENT-DRIVEN WORKFLOWS:
1. [Event] → [Action] — [trigger condition]
2. [Event] → [Action] — [trigger condition]
Implementation Checklist
- Event taxonomy documented with naming convention (Object-Action, past tense)
- 20+ core events implemented across Account, Usage, Engagement, Revenue
- Server-side tracking for critical events (not just client-side)
- Group/account-level context sent for B2B (workspace ID, plan, employees)
- Event dictionary maintained with owner, properties schema, destinations
- Event-driven workflows documented (event → action mapping)
- Event testing in CI/CD (events fire correctly, properties valid)
- No PII in event properties (email, name, IP — use pseudonymous IDs)
Quality Check
Before delivering, verify:
- Output matches the user's stated request
- Named frameworks or sources are reflected in the recommendation
- The deliverable is specific enough for an agent to execute
- Any assumptions, risks, or dependencies are explicit
- No unsupported claims, invented facts, or private/internal references are included
Common Pitfalls
Tracking everything. 500 events, 50 properties each, no one knows what any of them mean. The data swamp. Fix: Every event must have a purpose. Start with 20. Add as needed.
Inconsistent naming.
signed_up,userSignup,Sign Up Completedall describe the same thing across different systems. Fix: One taxonomy. Object- action. Past tense. Documented in an event dictionary.Client-side only tracking. Ad blockers block client-side tracking (30-50% of users). Critical events lost. Fix: Server-side tracking for key events (signup, payment, subscription changes). Client-side for behavioral events.
No group/account context for B2B. Events tracked to individual users but not linked to their company workspace. Can't answer "what are our top 10 accounts doing?" Fix:
group()call on login linking user to workspace.PII in event properties.
email: "[email protected]"in event properties is a data privacy violation waiting to happen. Fix: Use user IDs. Store PII in your database, not your event pipeline.
Execution Artifacts
references/framework-notes.md— named frameworks, citation anchors, and operating assumptionstemplates/output-template.md— copy-paste deliverable structure for the userscripts/check-output.py— local checklist validator for required sections This skill includes lightweight artifacts the agent can load on demand: Use the artifacts when the user asks for an implementation-ready deliverable, a repeatable workflow, or a quality check rather than generic advice.
Related Skills
cs-analytics-dashboards— CS health scores and dashboardsgtm-metrics— SaaS metrics stackcampaign-analytics— Campaign performance analysis1p-tagging-pixels— First-party tracking implementationa-b-testing— Experiment design and analysisattribution— Multi-touch attribution models
| 1 | |
| 2 | name event-analytics |
| 3 | description >- |
| 4 | Customer event analytics across every GTM system — Intercom, Zendesk, |
| 5 | Salesforce, HubSpot, Segment, Amplitude, Mixpanel, PostHog, and custom |
| 6 | event pipelines. Covers event taxonomy design, tracking implementation, |
| 7 | event-driven workflows, and unified customer views. Use when implementing |
| 8 | event tracking, building a customer data pipeline, or designing event-driven |
| 9 | GTM automations. Triggers on: "event analytics", "customer events", "event |
| 10 | tracking", "product analytics", "Segment setup", "event pipeline". |
| 11 | license MIT |
| 12 | compatibility Claude Code, Codex, GitHub Copilot, Cursor, Gemini CLI, OpenCode, Goose, Hermes, Windsurf, Zed |
| 13 | metadata |
| 14 | version "1.0.1" |
| 15 | author LeadMagic |
| 16 | category analytics |
| 17 | tags [event-analytics, product-analytics, customer-events, tracking, segment, amplitude, intercom] |
| 18 | related_skills [cs-analytics-dashboards, gtm-metrics, campaign-analytics, a-b-testing, attribution, 1p-tagging-pixels] |
| 19 | frameworks |
| 20 | - "Segment — Customer Data Platform (CDP) and event taxonomy" |
| 21 | - "Amplitude — Behavioral analytics and event design" |
| 22 | - "Mixpanel — Product analytics and event-based reporting" |
| 23 | - "Intercom — Event-driven messaging and automation" |
| 24 | - "Avo — Event taxonomy and governance" |
| 25 | - "Snowplow — Open-source event pipeline" |
| 26 | |
| 27 | |
| 28 | # Event Analytics |
| 29 | |
| 30 | ## Overview |
| 31 | |
| 32 | Events are the atomic unit of customer understanding. Every signup, click, |
| 33 | feature use, upgrade, and cancellation is an event. The mistake: tracking |
| 34 | events haphazardly ("track everything!") with no taxonomy, creating a data |
| 35 | swamp instead of a data pipeline. This skill covers event analytics across |
| 36 | every GTM system — how to design an event taxonomy, implement tracking, and |
| 37 | unify event data across your stack to build a complete customer picture. |
| 38 | |
| 39 | ## Authoritative Foundations |
| 40 | |
| 41 | **Segment** — Customer Data Platform (CDP) and event taxonomy |
| 42 | **Amplitude** — Behavioral analytics and event design |
| 43 | **Mixpanel** — Product analytics and event-based reporting |
| 44 | **Intercom** — Event-driven messaging and automation |
| 45 | **Avo** — Event taxonomy and governance |
| 46 | **Snowplow** — Open-source event pipeline |
| 47 | |
| 48 | ## When to Use |
| 49 | |
| 50 | Trigger phrases: "event analytics setup", "customer event tracking", |
| 51 | "implement Segment", "Amplitude setup for SaaS", "event taxonomy design", |
| 52 | "customer data pipeline", "product analytics events", "Intercom events", |
| 53 | "event-driven workflows" |
| 54 | |
| 55 | ## Step-by-Step Process |
| 56 | |
| 57 | ### Phase 1: Event Taxonomy Design |
| 58 | |
| 59 | **The 4 event types (Segment spec):** |
| 60 | |
| 61 | **Identify:** Who is the user? `identify(userId, traits)` |
| 62 | **Track:** What did they do? `track(eventName, properties)` |
| 63 | **Page:** What page did they view? `page(name, properties)` |
| 64 | **Group:** What account/workspace are they in? `group(groupId, traits)` |
| 65 | |
| 66 | **Event naming convention (object-action framework):** |
| 67 | |
| 68 | Format: [Object] [Action] (Past tense. Write events as things that HAPPENED.) |
| 69 | |
| 70 | Good: "Project Created" "Invoice Paid" "Campaign Sent" |
| 71 | Bad: "createProject" "user_clicked_button" "page3-conversion-v2" |
| 72 | |
| 73 | Rules: |
| 74 | - Title case: "Signed Up" not "signed_up" |
| 75 | - Past tense: "Viewed" not "View" |
| 76 | - Object first: "Report Exported" not "Exported Report" |
| 77 | - No technical jargon: "Payment Completed" not "stripe_webhook_200" |
| 78 | |
| 79 | |
| 80 | **Event taxonomy — core events every SaaS should track:** |
| 81 | |
| 82 | ACCOUNT EVENTS: |
| 83 | - Signed Up (properties: plan, source, referrer, UTM params) |
| 84 | - Subscription Started (properties: plan, price, billing period) |
| 85 | - Subscription Upgraded (properties: from_plan, to_plan, reason) |
| 86 | - Subscription Downgraded (properties: from_plan, to_plan, reason) |
| 87 | - Subscription Canceled (properties: plan, reason, tenure_days) |
| 88 | - Trial Started / Trial Converted / Trial Expired |
| 89 | |
| 90 | USAGE EVENTS: |
| 91 | - Feature Used (properties: feature_name, context, duration) |
| 92 | - Search Performed (properties: query, results_count) |
| 93 | - Integration Connected (properties: integration_name) |
| 94 | - Invite Sent / Invite Accepted (properties: role) |
| 95 | - File Uploaded / Exported (properties: type, size) |
| 96 | |
| 97 | ENGAGEMENT EVENTS: |
| 98 | - Email Opened / Clicked (properties: email_type, campaign_id) |
| 99 | - Notification Viewed / Clicked |
| 100 | - Support Ticket Created / Resolved (properties: category, priority) |
| 101 | - NPS Submitted (properties: score, comments) |
| 102 | - QBR Attended (properties: attendees) |
| 103 | |
| 104 | REVENUE EVENTS: |
| 105 | - Invoice Created / Paid / Overdue |
| 106 | - Credit Card Added / Updated / Failed |
| 107 | - Refund Processed |
| 108 | |
| 109 | MILESTONE EVENTS: |
| 110 | - Activation Complete (properties: time_to_activate_hours) |
| 111 | - First Value Achieved (properties: milestone, time_to_value_days) |
| 112 | - 7-Day Active / 30-Day Active |
| 113 | - Power User Threshold Reached |
| 114 | |
| 115 | |
| 116 | ### Phase 2: Implementation Strategy |
| 117 | |
| 118 | **Source → CDP → Destinations architecture:** |
| 119 | |
| 120 | |
| 121 | Your App (client/server) |
| 122 | │ |
| 123 | ▼ |
| 124 | Segment (or Rudderstack / mParticle / Snowplow) |
| 125 | │ |
| 126 | ├── Amplitude (product analytics) |
| 127 | ├── Mixpanel (product analytics) |
| 128 | ├── Intercom (event-triggered messaging) |
| 129 | ├── Salesforce / HubSpot (CRM events) |
| 130 | ├── Google Analytics (web analytics) |
| 131 | ├── Data Warehouse (Snowflake / BigQuery / Redshift) |
| 132 | └── Webhook → custom integrations |
| 133 | |
| 134 | |
| 135 | **Implementation pattern (server-side preferred):** |
| 136 | |
| 137 | // Identify on login |
| 138 | analytics.identify(userId, { |
| 139 | email: user.email, |
| 140 | name: user.name, |
| 141 | plan: user.plan, |
| 142 | createdAt: user.createdAt, |
| 143 | company: { id: workspace.id, name: workspace.name } |
| 144 | }); |
| 145 | |
| 146 | // Group for B2B (account-level context) |
| 147 | analytics.group(workspaceId, { |
| 148 | name: workspace.name, |
| 149 | plan: workspace.plan, |
| 150 | employees: workspace.employeeCount, |
| 151 | mrr: workspace.mrr |
| 152 | }); |
| 153 | |
| 154 | // Track key events |
| 155 | analytics.track('Feature Used', { |
| 156 | feature: 'Email Finder', |
| 157 | source: 'dashboard', |
| 158 | credits_remaining: user.credits |
| 159 | }); |
| 160 | |
| 161 | |
| 162 | ### Phase 3: System-Specific Event Analytics |
| 163 | |
| 164 | **Intercom Events:** |
| 165 | Use as event triggers for: onboarding tours (if user does X, show tour Y), |
| 166 | email sequences (if user reaches milestone, send email), chat targeting |
| 167 | (if user is stuck, offer help), in-app messages (if feature unused, promote it) |
| 168 | `Intercom('track', 'Feature Used', { feature: 'Reports' })` |
| 169 | |
| 170 | **Salesforce Events (via Platform Events):** |
| 171 | Track: Lead Status Changed, Opportunity Stage Changed, Task Completed |
| 172 | Use for: real-time dashboards, Slack alerts on key deals, enrichment triggers |
| 173 | |
| 174 | **HubSpot Events (via Custom Behavioral Events):** |
| 175 | Track: Form Submission, Meeting Booked, Email Clicked, Page Viewed |
| 176 | Use for: lead scoring, workflow triggers, list membership |
| 177 | |
| 178 | **Amplitude / Mixpanel:** |
| 179 | Purpose: product analytics — not just what happened, but who did it, |
| 180 | how often, and what happened next |
| 181 | Key reports: retention curves, funnel analysis, behavioral cohorts, |
| 182 | feature adoption, power user curve |
| 183 | |
| 184 | ### Phase 4: Event-Driven GTM Automation |
| 185 | |
| 186 | **Example workflows:** |
| 187 | |
| 188 | Event: "Signed Up" → source = Google Ads |
| 189 | → Add to Ad Conversions in Google Ads |
| 190 | → Add to HubSpot as Lead |
| 191 | → Enrich with Clearbit / LeadMagic |
| 192 | → Route to SDR if ICP match |
| 193 | → Send welcome email sequence |
| 194 | |
| 195 | Event: "Feature Used" → feature = "Reports", 3rd time this week |
| 196 | → Score: +10 engagement points |
| 197 | → Trigger Intercom message: "Power user move: try Advanced Reports" |
| 198 | |
| 199 | Event: "Trial Expired" → no conversion |
| 200 | → Send re-engagement email sequence (3 emails over 7 days) |
| 201 | → If no response: move to nurture list |
| 202 | |
| 203 | Event: "NPS Submitted" → score < 6 (Detractor) |
| 204 | → Create Zendesk ticket: "Follow up with Detractor" |
| 205 | → Slack alert to CSM |
| 206 | → Auto-schedule call with customer |
| 207 | |
| 208 | |
| 209 | ### Phase 5: Event Governance |
| 210 | |
| 211 | **Event dictionary (living document — reference per event):** |
| 212 | | Event Name | Properties | Trigger | Destinations | Owner | |
| 213 | |---|---|---|---|---| |
| 214 | | Signed Up | plan, source, referrer | POST /auth/signup | Segment → all | Eng | |
| 215 | | Feature Used | feature_name, context | Client-side track call | Amplitude, Intercom | Product | |
| 216 | |
| 217 | **Governance rules:** |
| 218 | New events require: description, properties schema, destination list, owner |
| 219 | No "track everything" — each event must have a purpose and an owner |
| 220 | Deprecate, don't delete. Keep old events but stop sending them. |
| 221 | Review event taxonomy quarterly. Remove unused events. Consolidate duplicates. |
| 222 | Every event needs a test. CI/CD should verify events fire correctly. |
| 223 | |
| 224 | **Tools for event governance:** |
| 225 | Avo (avo.app) — event taxonomy design, code generation, validation |
| 226 | Segment Protocols — enforce event schemas, block malformed events |
| 227 | Amplitude Data — govern events within Amplitude's ecosystem |
| 228 | |
| 229 | ## Output Format |
| 230 | |
| 231 | |
| 232 | EVENT ANALYTICS PLAN — [Company] |
| 233 | |
| 234 | CDP: [Segment / Rudderstack / mParticle / Snowplow / Custom] |
| 235 | |
| 236 | EVENT TAXONOMY: |
| 237 | [Docs link or table with event name, properties, trigger, destinations] |
| 238 | |
| 239 | IMPLEMENTATION: |
| 240 | - Client-side: [SDK / library] |
| 241 | - Server-side: [SDK / webhook pipeline] |
| 242 | - Testing: [how events are validated] |
| 243 | |
| 244 | DESTINATIONS: |
| 245 | | Tool | Purpose | Key Events | |
| 246 | |---|---|---| |
| 247 | | Amplitude | Product analytics | Feature Used, Signed Up | |
| 248 | | Intercom | Messaging automation | All usage + milestone events | |
| 249 | | HubSpot | CRM | Account events, revenue events | |
| 250 | | Data Warehouse | Analytics | All events | |
| 251 | |
| 252 | EVENT-DRIVEN WORKFLOWS: |
| 253 | 1. [Event] → [Action] — [trigger condition] |
| 254 | 2. [Event] → [Action] — [trigger condition] |
| 255 | |
| 256 | |
| 257 | ## Implementation Checklist |
| 258 | |
| 259 | [ ] Event taxonomy documented with naming convention (Object-Action, past tense) |
| 260 | [ ] 20+ core events implemented across Account, Usage, Engagement, Revenue |
| 261 | [ ] Server-side tracking for critical events (not just client-side) |
| 262 | [ ] Group/account-level context sent for B2B (workspace ID, plan, employees) |
| 263 | [ ] Event dictionary maintained with owner, properties schema, destinations |
| 264 | [ ] Event-driven workflows documented (event → action mapping) |
| 265 | [ ] Event testing in CI/CD (events fire correctly, properties valid) |
| 266 | [ ] No PII in event properties (email, name, IP — use pseudonymous IDs) |
| 267 | |
| 268 | ## Quality Check |
| 269 | |
| 270 | Before delivering, verify: |
| 271 | |
| 272 | [ ] Output matches the user's stated request |
| 273 | [ ] Named frameworks or sources are reflected in the recommendation |
| 274 | [ ] The deliverable is specific enough for an agent to execute |
| 275 | [ ] Any assumptions, risks, or dependencies are explicit |
| 276 | [ ] No unsupported claims, invented facts, or private/internal references are included |
| 277 | |
| 278 | ## Common Pitfalls |
| 279 | |
| 280 | **Tracking everything.** 500 events, 50 properties each, no one knows what |
| 281 | any of them mean. The data swamp. Fix: Every event must have a purpose. |
| 282 | Start with 20. Add as needed. |
| 283 | |
| 284 | **Inconsistent naming.** `signed_up`, `userSignup`, `Sign Up Completed` all |
| 285 | describe the same thing across different systems. Fix: One taxonomy. Object- |
| 286 | action. Past tense. Documented in an event dictionary. |
| 287 | |
| 288 | **Client-side only tracking.** Ad blockers block client-side tracking |
| 289 | (30-50% of users). Critical events lost. Fix: Server-side tracking for |
| 290 | key events (signup, payment, subscription changes). Client-side for |
| 291 | behavioral events. |
| 292 | |
| 293 | **No group/account context for B2B.** Events tracked to individual users |
| 294 | but not linked to their company workspace. Can't answer "what are our top |
| 295 | 10 accounts doing?" Fix: `group()` call on login linking user to workspace. |
| 296 | |
| 297 | **PII in event properties.** `email: "[email protected]"` in event properties |
| 298 | is a data privacy violation waiting to happen. Fix: Use user IDs. Store PII |
| 299 | in your database, not your event pipeline. |
| 300 | |
| 301 | ## Execution Artifacts |
| 302 | |
| 303 | `references/framework-notes.md` — named frameworks, citation anchors, and operating assumptions |
| 304 | `templates/output-template.md` — copy-paste deliverable structure for the user |
| 305 | `scripts/check-output.py` — local checklist validator for required sections |
| 306 | This skill includes lightweight artifacts the agent can load on demand: |
| 307 | Use the artifacts when the user asks for an implementation-ready deliverable, a repeatable workflow, or a quality check rather than generic advice. |
| 308 | |
| 309 | ## Related Skills |
| 310 | |
| 311 | `cs-analytics-dashboards` — CS health scores and dashboards |
| 312 | `gtm-metrics` — SaaS metrics stack |
| 313 | `campaign-analytics` — Campaign performance analysis |
| 314 | `1p-tagging-pixels` — First-party tracking implementation |
| 315 | `a-b-testing` — Experiment design and analysis |
| 316 | `attribution` — Multi-touch attribution models |
| 317 |
Discussion
Alternatives
Browse more free Claude skills or everything in Sales.