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 — Customer Data Platform (CDP) and event taxonomy
Amplitude — Behavioral analytics and event design — Behavioral analytics and event design
Mixpanel — Product analytics and event-based reporting — Product analytics and event-based reporting
Intercom — Event-driven messaging and automation — Event-driven messaging and automation
Avo — Event taxonomy and governance — Event taxonomy and governance
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)
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.
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 Completed all
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: "person@example.com" 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 assumptions
templates/output-template.md — copy-paste deliverable structure for the user
scripts/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 dashboards
1---2name: event-analytics3description: Customer event analytics across every GTM system — Intercom, Zendesk, Salesforce, HubSpot, Segment, Amplitude, Mixpanel, PostHog, and custom event pipelines. Covers event taxonomy design, tracking implementation, event-driven workflows, and unified customer views. Use when implementing event tracking, building a customer data pipeline, or designing event-driven GTM automations. Triggers on: "event analytics", "customer events", "event tracking", "product analytics", "Segment setup", "event pipeline".4license: MIT5---67# Event Analytics89## Overview1011Events are the atomic unit of customer understanding. Every signup, click,12feature use, upgrade, and cancellation is an event. The mistake: tracking13events haphazardly ("track everything!") with no taxonomy, creating a data14swamp instead of a data pipeline. This skill covers event analytics across15every GTM system — how to design an event taxonomy, implement tracking, and16unify event data across your stack to build a complete customer picture.1718## Authoritative Foundations1920- **Segment — Customer Data Platform (CDP) and event taxonomy** — Customer Data Platform (CDP) and event taxonomy21- **Amplitude — Behavioral analytics and event design** — Behavioral analytics and event design22- **Mixpanel — Product analytics and event-based reporting** — Product analytics and event-based reporting23- **Intercom — Event-driven messaging and automation** — Event-driven messaging and automation24- **Avo — Event taxonomy and governance** — Event taxonomy and governance25- **Snowplow — Open-source event pipeline** — Open-source event pipeline2627## When to Use2829Trigger phrases: "event analytics setup", "customer event tracking",30"implement Segment", "Amplitude setup for SaaS", "event taxonomy design",31"customer data pipeline", "product analytics events", "Intercom events",32"event-driven workflows"3334## Step-by-Step Process3536### Phase 1: Event Taxonomy Design3738**The 4 event types (Segment spec):**39401. **Identify:** Who is the user? `identify(userId, traits)`412. **Track:** What did they do? `track(eventName, properties)`423. **Page:** What page did they view? `page(name, properties)`434. **Group:** What account/workspace are they in? `group(groupId, traits)`4445**Event naming convention (object-action framework):**46```47Format: [Object] [Action] (Past tense. Write events as things that HAPPENED.)4849Good: "Project Created" "Invoice Paid" "Campaign Sent"50Bad: "createProject" "user_clicked_button" "page3-conversion-v2"5152Rules:53- Title case: "Signed Up" not "signed_up"54- Past tense: "Viewed" not "View"55- Object first: "Report Exported" not "Exported Report"56- No technical jargon: "Payment Completed" not "stripe_webhook_200"57```5859**Event taxonomy — core events every SaaS should track:**60```61ACCOUNT EVENTS:62- Signed Up (properties: plan, source, referrer, UTM params)63- Subscription Started (properties: plan, price, billing period)64- Subscription Upgraded (properties: from_plan, to_plan, reason)65- Subscription Downgraded (properties: from_plan, to_plan, reason)66- Subscription Canceled (properties: plan, reason, tenure_days)67- Trial Started / Trial Converted / Trial Expired6869USAGE EVENTS:70- Feature Used (properties: feature_name, context, duration)71- Search Performed (properties: query, results_count)72- Integration Connected (properties: integration_name)73- Invite Sent / Invite Accepted (properties: role)74- File Uploaded / Exported (properties: type, size)7576ENGAGEMENT EVENTS:77- Email Opened / Clicked (properties: email_type, campaign_id)78- Notification Viewed / Clicked79- Support Ticket Created / Resolved (properties: category, priority)80- NPS Submitted (properties: score, comments)81- QBR Attended (properties: attendees)8283REVENUE EVENTS:84- Invoice Created / Paid / Overdue85- Credit Card Added / Updated / Failed86- Refund Processed8788MILESTONE EVENTS:89- Activation Complete (properties: time_to_activate_hours)90- First Value Achieved (properties: milestone, time_to_value_days)91- 7-Day Active / 30-Day Active92- Power User Threshold Reached93```9495### Phase 2: Implementation Strategy9697**Source → CDP → Destinations architecture:**9899```100Your App (client/server)101 │102 ▼103Segment (or Rudderstack / mParticle / Snowplow)104 │105 ├── Amplitude (product analytics)106 ├── Mixpanel (product analytics)107 ├── Intercom (event-triggered messaging)108 ├── Salesforce / HubSpot (CRM events)109 ├── Google Analytics (web analytics)110 ├── Data Warehouse (Snowflake / BigQuery / Redshift)111 └── Webhook → custom integrations112```113114**Implementation pattern (server-side preferred):**115```javascript116// Identify on login117analytics.identify(userId, {118 email: user.email,119 name: user.name,120 plan: user.plan,121 createdAt: user.createdAt,122 company: { id: workspace.id, name: workspace.name }123});124125// Group for B2B (account-level context)126analytics.group(workspaceId, {127 name: workspace.name,128 plan: workspace.plan,129 employees: workspace.employeeCount,130 mrr: workspace.mrr131});132133// Track key events134analytics.track('Feature Used', {135 feature: 'Email Finder',136 source: 'dashboard',137 credits_remaining: user.credits138});139```140141### Phase 3: System-Specific Event Analytics142143**Intercom Events:**144- Use as event triggers for: onboarding tours (if user does X, show tour Y),145 email sequences (if user reaches milestone, send email), chat targeting146 (if user is stuck, offer help), in-app messages (if feature unused, promote it)147- `Intercom('track', 'Feature Used', { feature: 'Reports' })`148149**Salesforce Events (via Platform Events):**150- Track: Lead Status Changed, Opportunity Stage Changed, Task Completed151- Use for: real-time dashboards, Slack alerts on key deals, enrichment triggers152153**HubSpot Events (via Custom Behavioral Events):**154- Track: Form Submission, Meeting Booked, Email Clicked, Page Viewed155- Use for: lead scoring, workflow triggers, list membership156157**Amplitude / Mixpanel:**158- Purpose: product analytics — not just what happened, but who did it,159 how often, and what happened next160- Key reports: retention curves, funnel analysis, behavioral cohorts,161 feature adoption, power user curve162163### Phase 4: Event-Driven GTM Automation164165**Example workflows:**166```167Event: "Signed Up" → source = Google Ads168 → Add to Ad Conversions in Google Ads169 → Add to HubSpot as Lead170 → Enrich with Clearbit / LeadMagic171 → Route to SDR if ICP match172 → Send welcome email sequence173174Event: "Feature Used" → feature = "Reports", 3rd time this week175 → Score: +10 engagement points176 → Trigger Intercom message: "Power user move: try Advanced Reports"177178Event: "Trial Expired" → no conversion179 → Send re-engagement email sequence (3 emails over 7 days)180 → If no response: move to nurture list181182Event: "NPS Submitted" → score < 6 (Detractor)183 → Create Zendesk ticket: "Follow up with Detractor"184 → Slack alert to CSM185 → Auto-schedule call with customer186```187188### Phase 5: Event Governance189190**Event dictionary (living document — reference per event):**191| Event Name | Properties | Trigger | Destinations | Owner |192|---|---|---|---|---|193| Signed Up | plan, source, referrer | POST /auth/signup | Segment → all | Eng |194| Feature Used | feature_name, context | Client-side track call | Amplitude, Intercom | Product |195196**Governance rules:**197- New events require: description, properties schema, destination list, owner198- No "track everything" — each event must have a purpose and an owner199- Deprecate, don't delete. Keep old events but stop sending them.200- Review event taxonomy quarterly. Remove unused events. Consolidate duplicates.201- Every event needs a test. CI/CD should verify events fire correctly.202203**Tools for event governance:**204- Avo (avo.app) — event taxonomy design, code generation, validation205- Segment Protocols — enforce event schemas, block malformed events206- Amplitude Data — govern events within Amplitude's ecosystem207208## Output Format209210```211EVENT ANALYTICS PLAN — [Company]212213CDP: [Segment / Rudderstack / mParticle / Snowplow / Custom]214215EVENT TAXONOMY:216[Docs link or table with event name, properties, trigger, destinations]217218IMPLEMENTATION:219- Client-side: [SDK / library]220- Server-side: [SDK / webhook pipeline]221- Testing: [how events are validated]222223DESTINATIONS:224| Tool | Purpose | Key Events |225|---|---|---|226| Amplitude | Product analytics | Feature Used, Signed Up |227| Intercom | Messaging automation | All usage + milestone events |228| HubSpot | CRM | Account events, revenue events |229| Data Warehouse | Analytics | All events |230231EVENT-DRIVEN WORKFLOWS:2321. [Event] → [Action] — [trigger condition]2332. [Event] → [Action] — [trigger condition]234```235236## Implementation Checklist237238- [ ] Event taxonomy documented with naming convention (Object-Action, past tense)239- [ ] 20+ core events implemented across Account, Usage, Engagement, Revenue240- [ ] Server-side tracking for critical events (not just client-side)241- [ ] Group/account-level context sent for B2B (workspace ID, plan, employees)242- [ ] Event dictionary maintained with owner, properties schema, destinations243- [ ] Event-driven workflows documented (event → action mapping)244- [ ] Event testing in CI/CD (events fire correctly, properties valid)245- [ ] No PII in event properties (email, name, IP — use pseudonymous IDs)246247## Quality Check248249Before delivering, verify:250251- [ ] Output matches the user's stated request252- [ ] Named frameworks or sources are reflected in the recommendation253- [ ] The deliverable is specific enough for an agent to execute254- [ ] Any assumptions, risks, or dependencies are explicit255- [ ] No unsupported claims, invented facts, or private/internal references are included256257## Common Pitfalls2582591. **Tracking everything.** 500 events, 50 properties each, no one knows what260 any of them mean. The data swamp. Fix: Every event must have a purpose.261 Start with 20. Add as needed.2622632. **Inconsistent naming.** `signed_up`, `userSignup`, `Sign Up Completed` all264 describe the same thing across different systems. Fix: One taxonomy. Object-265 action. Past tense. Documented in an event dictionary.2662673. **Client-side only tracking.** Ad blockers block client-side tracking268 (30-50% of users). Critical events lost. Fix: Server-side tracking for269 key events (signup, payment, subscription changes). Client-side for270 behavioral events.2712724. **No group/account context for B2B.** Events tracked to individual users273 but not linked to their company workspace. Can't answer "what are our top274 10 accounts doing?" Fix: `group()` call on login linking user to workspace.2752765. **PII in event properties.** `email: "person@example.com"` in event properties277 is a data privacy violation waiting to happen. Fix: Use user IDs. Store PII278 in your database, not your event pipeline.279280## Execution Artifacts281282- `references/framework-notes.md` — named frameworks, citation anchors, and operating assumptions283- `templates/output-template.md` — copy-paste deliverable structure for the user284- `scripts/check-output.py` — local checklist validator for required sections285This skill includes lightweight artifacts the agent can load on demand:286Use the artifacts when the user asks for an implementation-ready deliverable, a repeatable workflow, or a quality check rather than generic advice.287288## Related Skills289290- `cs-analytics-dashboards` — CS health scores and dashboards291- `gtm-metrics` — SaaS metrics stack292- `campaign-analytics` — Campaign performance analysis293- `1p-tagging-pixels` — First-party tracking implementation294- `a-b-testing` — Experiment design and analysis295- `attribution` — Multi-touch attribution models
Run npx skillmds@latest add leadmagic/event-analytics in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Customer event analytics across every GTM system — Intercom, Zendesk, Salesforce, HubSpot, Segment, Amplitude, Mixpanel, PostHog, and custom event pipelines. Covers event taxonomy design, tracking implementation, event-driven workflows, and unified customer views. Use when implementing event tracking, building a customer data pipeline, or designing event-driven GTM automations. Triggers on: "event analytics", "customer events", "event tracking", "product analytics", "Segment setup", "event pipeline". It is listed under Marketing & Growth on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under MIT.
LeadMagic (@leadmagic) published this skill. Their other Agent Skills are listed on their SkillMD profile.