Creates Amplitude charts from natural language descriptions, handling event selection, filters, groupings, and visualization choices. Use when you know what you want to measure but prefer not to build the chart manually.
84
81%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
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/valuesFind 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 selectingAmplitude:search entity_types=['CHART'] query="similar concept"
Amplitude:get_charts to see definition structureAmplitude:get_event_propertiesAmplitude:query_dataset with full definitionVerify results - check data makes sense
Save chart:
Amplitude:save_chart_edits with editId from query_datasetIf query_dataset fails:
If zero results:
Naming:
Time ranges:
Verification:
Comparisons:
Always include:
221ffaa
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.