Install
openclaw skills install mixpanelQuery Mixpanel analytics with funnels, retention, segmentation, and event tracking via REST API.
openclaw skills install mixpanelOn first use, read setup.md for integration guidelines.
User needs product analytics from Mixpanel. Agent handles event queries, funnel analysis, retention cohorts, user segmentation, and profile lookups.
Memory lives in ~/mixpanel/. See memory-template.md for structure.
~/mixpanel/
├── memory.md # Projects, saved queries, insights
└── queries/ # Saved JQL queries
| Topic | File |
|---|---|
| Setup process | setup.md |
| Memory template | memory-template.md |
Requires a Mixpanel Service Account:
export MP_SERVICE_ACCOUNT="your-service-account"
export MP_SERVICE_SECRET="your-service-secret"
export MP_PROJECT_ID="123456"
Create a service account in Mixpanel → Organization Settings → Service Accounts.
Use the Query API for insights, funnels, retention:
BASE="https://mixpanel.com/api/query"
AUTH=$(echo -n "$MP_SERVICE_ACCOUNT:$MP_SERVICE_SECRET" | base64)
# Insights query (event counts)
curl -s "$BASE/insights?project_id=$MP_PROJECT_ID" \
-H "Authorization: Basic $AUTH" \
-H "Content-Type: application/json" \
-d '{
"params": {
"event": ["Sign Up", "Purchase"],
"type": "general",
"unit": "day",
"from_date": "2024-01-01",
"to_date": "2024-01-31"
}
}' | jq
curl -s "$BASE/funnels?project_id=$MP_PROJECT_ID" \
-H "Authorization: Basic $AUTH" \
-H "Content-Type: application/json" \
-d '{
"params": {
"events": [
{"event": "Sign Up"},
{"event": "Complete Onboarding"},
{"event": "First Purchase"}
],
"from_date": "2024-01-01",
"to_date": "2024-01-31",
"unit": "day"
}
}' | jq '.data.meta.overall'
curl -s "$BASE/retention?project_id=$MP_PROJECT_ID" \
-H "Authorization: Basic $AUTH" \
-H "Content-Type: application/json" \
-d '{
"params": {
"born_event": "Sign Up",
"event": "App Open",
"from_date": "2024-01-01",
"to_date": "2024-01-31",
"unit": "week",
"retention_type": "birth"
}
}' | jq
curl -s "https://mixpanel.com/api/query/engage?project_id=$MP_PROJECT_ID" \
-H "Authorization: Basic $AUTH" \
-H "Content-Type: application/json" \
-d '{
"filter_by_cohort": {"id": 12345},
"output_properties": ["$email", "$name", "plan"]
}' | jq
curl -s "https://data.mixpanel.com/api/2.0/export?project_id=$MP_PROJECT_ID" \
-H "Authorization: Basic $AUTH" \
-d "from_date=2024-01-01" \
-d "to_date=2024-01-07" \
-d "event=[\"Purchase\"]"
// Mixpanel JQL (JavaScript Query Language)
function main() {
return Events({
from_date: "2024-01-01",
to_date: "2024-01-31",
event_selectors: [{event: "Purchase"}]
})
.groupByUser(["properties.$city"], mixpanel.reducer.sum("properties.amount"))
.groupBy(["key.$city"], mixpanel.reducer.avg("value"))
.sortDesc("value")
.take(10);
}
| Goal | Endpoint | Key Params |
|---|---|---|
| Event counts | /insights | event, type, unit, dates |
| Conversion funnel | /funnels | events array, dates |
| User retention | /retention | born_event, event, unit |
| User segments | /engage | filter_by_cohort, properties |
| Raw event export | /export | dates, event filter |
YYYY-MM-DD, not timestamps.take(N) to limit results| Endpoint | Data Sent | Purpose |
|---|---|---|
| mixpanel.com/api/query/* | Credentials, project ID, query params | Analytics queries |
| data.mixpanel.com/api/2.0/* | Credentials, project ID, date range | Raw data export |
No other data is sent externally.
Data sent to Mixpanel (over HTTPS):
Data that stays local:
This skill does NOT:
By using this skill, analytics data is queried from Mixpanel. Only install if you trust Mixpanel with your product data.
Install with clawhub install <slug> if user confirms:
analytics — multi-platform analyticsdata-analysis — data processing patternsapi — REST API best practicesclawhub star mixpanelclawhub sync