Creates Amplitude charts from natural language by discovering events, applying filters, groupings, breakdowns, and selecting visualizations. Use for quick metric analysis without manual building.
From analytics-skillsnpx claudepluginhub amplitude/builder-skills --plugin analytics-skillsThis skill uses the workspace's default tool permissions.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Designs, audits, and improves analytics tracking systems using Signal Quality Index for reliable, decision-ready data in marketing, product, and growth.
Enforces A/B test setup with gates for hypothesis locking, metrics definition, sample size calculation, assumptions checks, and execution readiness before implementation.
Create charts from natural language by discovering events, building chart definitions, and verifying results.
Before any tool calls, decompose the request:
1. Identify chart components:
2. Plan event searches:
3. Plan parallel tool calls:
IMPORTANT: Cast a wide net before narrowing down
When the user's request is ambiguous or could map to multiple events:
Search for events:
Amplitude:search with entity_types=['EVENT', 'CUSTOM_EVENT']
Make informed decisions, then explain:
Decision criteria:
Examples:
Verify before use:
Get properties:
Amplitude:get_event_properties for exact property names/values
Find cohorts:
Amplitude:search with entity_types=['COHORT']
Amplitude:get_cohorts to get full definitions
| Chart Type | Use When |
|---|---|
eventsSegmentation | Counting events/users over time, trends, comparisons, KPIs, distributions, property analytics |
funnels | Multi-step conversion analysis with a known sequence, drop-off analysis, time between specific events, time-to-convert metrics |
retention | User return behavior, cohort retention curves, churn analysis |
dataTableV2 | Tabular comparisons, rankings, multi-dimensional breakdowns |
customerJourney | Path exploration, discovering unknown paths users take, comparing converted vs dropped-off paths |
sessions | Session duration, session frequency, time spent per user, session length distributions |
eventsSegmentation - Most versatile. Use for:
uniques metricAggregation Scope (eventsSegmentation):
PROPSUM(A) / metric: "sums" = Global sum across ALL eventsmetric: "frequency" = Distribution of per-user event counts (how many users did it 1x, 2x, 3x)metric: "frequency" for event count distributions, or use dataTableV2 grouped by user_id with PROPSUM, then export for external analysis.funnels - Conversion analysis with predefined steps. Use for:
customerJourney insteadretention - Return behavior. Use for:
dataTableV2 - Tabular data. Use for:
customerJourney - Path exploration and discovery. Use for:
sessions - Session-based engagement metrics. Use for:
Special metrics:
metric: "uniques"metric: "totals"metric: "sums" with property in group_byMeta events:
_active: Any active event (DAU, MAU)_new: New users (first-time event)_any_revenue_event: Revenue eventsCore parameters (all chart types):
{
"name": "Descriptive Chart Title",
"projectId": "12345",
"definition": {
"app": "12345",
"type": "eventsSegmentation",
"params": {
"range": "Last 30 Days",
"events": [{
"event_type": "Purchase Completed",
"filters": [],
"group_by": []
}],
"metric": "uniques",
"countGroup": "User",
"interval": 1,
"segments": [{"conditions": []}]
}
}
}
Key parameters:
countGroup: "User" (unique users) or "Event" (event occurrences)interval: 1 (daily), 7 (weekly), 30 (monthly)segments: User filters/groups (empty array = all users)Event filters (inline OR logic):
"filters": [{
"group_type": "User",
"subprop_key": "country",
"subprop_op": "is",
"subprop_type": "event",
"subprop_value": ["United States", "Canada"]
}]
User segments (conditions AND logic):
"segments": [{
"name": "Active Users",
"conditions": [{
"type": "property",
"group_type": "User",
"prop_type": "user",
"prop": "plan",
"op": "is",
"values": ["Pro", "Enterprise"]
}]
}]
Cohort segments: Search for cohort, get ID, then:
"segments": [{
"name": "My Cohort",
"conditions": [{
"type": "cohort",
"group_type": "User",
"cohort_id": "abc123",
"op": "is_in"
}]
}]
Amplitude:get_context (for projectId)
Amplitude:search for each distinct concept
- Use broad search terms initially
- Look for all related events, custom events, cohorts
- Review ALL results before selecting
Amplitude:search entity_types=['CHART'] query="similar concept"
Amplitude:get_charts to see definition structure
Amplitude:get_event_properties
Amplitude:query_dataset with full definition
Verify results - check data makes sense
Save chart:
Amplitude:save_chart_edits with editId from query_dataset
If query_dataset fails:
If zero results:
Naming:
Time ranges:
Verification:
Comparisons:
Always include: