mixpanel-automation
npx machina-cli add skill davepoon/buildwithclaude/mixpanel-automation --openclawMixpanel Automation via Rube MCP
Automate Mixpanel product analytics through Composio's Mixpanel toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/mixpanel
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Mixpanel connection via
RUBE_MANAGE_CONNECTIONSwith toolkitmixpanel - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitmixpanel - If connection is not ACTIVE, follow the returned auth link to complete Mixpanel authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Aggregate Event Data
When to use: User wants to count events, get totals, or track event trends over time
Tool sequence:
MIXPANEL_GET_ALL_PROJECTS- List projects to get project ID [Prerequisite]MIXPANEL_AGGREGATE_EVENT_COUNTS- Get event counts and aggregations [Required]
Key parameters:
event: Event name or array of event names to aggregatefrom_date/to_date: Date range in 'YYYY-MM-DD' formatunit: Time granularity ('minute', 'hour', 'day', 'week', 'month')type: Aggregation type ('general', 'unique', 'average')where: Filter expression for event properties
Pitfalls:
- Date format must be 'YYYY-MM-DD'; other formats cause errors
- Event names are case-sensitive; use exact names from your Mixpanel project
wherefilter uses Mixpanel expression syntax (e.g.,properties["country"] == "US")- Maximum date range may be limited depending on your Mixpanel plan
2. Run Segmentation Queries
When to use: User wants to break down events by properties for detailed analysis
Tool sequence:
MIXPANEL_QUERY_SEGMENTATION- Run segmentation analysis [Required]
Key parameters:
event: Event name to segmentfrom_date/to_date: Date range in 'YYYY-MM-DD' formaton: Property to segment by (e.g.,properties["country"])unit: Time granularitytype: Count type ('general', 'unique', 'average')where: Filter expressionlimit: Maximum number of segments to return
Pitfalls:
- The
onparameter uses Mixpanel property expression syntax - Property references must use
properties["prop_name"]format - Segmentation on high-cardinality properties returns capped results; use
limit - Results are grouped by the segmentation property and time unit
3. Analyze Funnels
When to use: User wants to track conversion funnels and identify drop-off points
Tool sequence:
MIXPANEL_LIST_FUNNELS- List saved funnels to find funnel ID [Prerequisite]MIXPANEL_QUERY_FUNNEL- Execute funnel analysis [Required]
Key parameters:
funnel_id: ID of the saved funnel to queryfrom_date/to_date: Date rangeunit: Time granularitywhere: Filter expressionon: Property to segment funnel bylength: Conversion window in days
Pitfalls:
funnel_idis required; resolve via LIST_FUNNELS first- Funnels must be created in Mixpanel UI first; API only queries existing funnels
- Conversion window (
length) defaults vary; set explicitly for accuracy - Large date ranges with segmentation can produce very large responses
4. Manage User Profiles
When to use: User wants to query or update user profiles in Mixpanel
Tool sequence:
MIXPANEL_QUERY_PROFILES- Search and filter user profiles [Required]MIXPANEL_PROFILE_BATCH_UPDATE- Update multiple user profiles [Optional]
Key parameters:
where: Filter expression for profile properties (e.g.,properties["plan"] == "premium")output_properties: Array of property names to include in resultspage: Page number for paginationsession_id: Session ID for consistent pagination (from first response)- For batch update: array of profile updates with
$distinct_idand property operations
Pitfalls:
- Profile queries return paginated results; use
session_idfrom first response for consistent paging whereuses Mixpanel expression syntax for profile properties- BATCH_UPDATE applies operations (
$set,$unset,$add,$append) to profiles - Batch update has a maximum number of profiles per request; chunk larger updates
- Profile property names are case-sensitive
5. Manage Cohorts
When to use: User wants to list or analyze user cohorts
Tool sequence:
MIXPANEL_COHORTS_LIST- List all saved cohorts [Required]
Key parameters:
- No required parameters; returns all accessible cohorts
- Response includes cohort
id,name,description,count
Pitfalls:
- Cohorts are created and managed in Mixpanel UI; API provides read access
- Cohort IDs are numeric; use exact ID from list results
- Cohort counts may be approximate for very large cohorts
- Cohorts can be used as filters in other queries via
whereexpressions
6. Run JQL and Insight Queries
When to use: User wants to run custom JQL queries or insight analyses
Tool sequence:
MIXPANEL_JQL_QUERY- Execute a custom JQL (JavaScript Query Language) query [Optional]MIXPANEL_QUERY_INSIGHT- Run a saved insight query [Optional]
Key parameters:
- For JQL:
scriptcontaining the JQL JavaScript code - For Insight:
bookmark_idof the saved insight project_id: Project context for the query
Pitfalls:
- JQL uses JavaScript-like syntax specific to Mixpanel
- JQL queries have execution time limits; optimize for efficiency
- Insight
bookmark_idmust reference an existing saved insight - JQL is a legacy feature; check Mixpanel documentation for current availability
Common Patterns
ID Resolution
Project name -> Project ID:
1. Call MIXPANEL_GET_ALL_PROJECTS
2. Find project by name in results
3. Extract project id
Funnel name -> Funnel ID:
1. Call MIXPANEL_LIST_FUNNELS
2. Find funnel by name
3. Extract funnel_id
Mixpanel Expression Syntax
Used in where and on parameters:
- Property reference:
properties["property_name"] - Equality:
properties["country"] == "US" - Comparison:
properties["age"] > 25 - Boolean:
properties["is_premium"] == true - Contains:
"search_term" in properties["name"] - AND/OR:
properties["country"] == "US" and properties["plan"] == "pro"
Pagination
- Event queries: Follow date-based pagination by adjusting date ranges
- Profile queries: Use
pagenumber andsession_idfor consistent results - Funnel/cohort lists: Typically return complete results without pagination
Known Pitfalls
Date Formats:
- Always use 'YYYY-MM-DD' format
- Date ranges are inclusive on both ends
- Data freshness depends on Mixpanel ingestion delay (typically minutes)
Expression Syntax:
- Property references always use
properties["name"]format - String values must be quoted:
properties["status"] == "active" - Numeric values are unquoted:
properties["count"] > 10 - Boolean values:
true/false(lowercase)
Rate Limits:
- Mixpanel API has rate limits per project
- Large segmentation queries may time out; reduce date range or segments
- Use batch operations where available to minimize API calls
Response Parsing:
- Response data may be nested under
datakey - Event data is typically grouped by date and segment
- Numeric values may be returned as strings; parse explicitly
- Empty date ranges return empty objects, not empty arrays
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List projects | MIXPANEL_GET_ALL_PROJECTS | (none) |
| Aggregate events | MIXPANEL_AGGREGATE_EVENT_COUNTS | event, from_date, to_date, unit |
| Segmentation | MIXPANEL_QUERY_SEGMENTATION | event, on, from_date, to_date |
| List funnels | MIXPANEL_LIST_FUNNELS | (none) |
| Query funnel | MIXPANEL_QUERY_FUNNEL | funnel_id, from_date, to_date |
| Query profiles | MIXPANEL_QUERY_PROFILES | where, output_properties, page |
| Batch update profiles | MIXPANEL_PROFILE_BATCH_UPDATE | (profile update objects) |
| List cohorts | MIXPANEL_COHORTS_LIST | (none) |
| JQL query | MIXPANEL_JQL_QUERY | script |
| Query insight | MIXPANEL_QUERY_INSIGHT | bookmark_id |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/mixpanel-automation/SKILL.mdView on GitHub Overview
Automate Mixpanel operations through Composio's Mixpanel toolkit using Rube MCP. Covers events, segmentation, funnels, cohorts, and user profiles, with support for JQL-style queries. Always call RUBE_SEARCH_TOOLS first to fetch current schemas.
How This Skill Works
Leverages Rube MCP to orchestrate Mixpanel tasks via predefined tool commands (e.g., MIXPANEL_GET_ALL_PROJECTS, MIXPANEL_AGGREGATE_EVENT_COUNTS, MIXPANEL_QUERY_SEGMENTATION, MIXPANEL_LIST_FUNNELS, MIXPANEL_QUERY_PROFILES, MIXPANEL_PROFILE_BATCH_UPDATE). Ensure an ACTIVE Mixpanel connection and run RUBE_SEARCH_TOOLS to fetch latest schemas before executing workflows.
When to Use It
- When you need counts or trends for Mixpanel events across projects
- When you want breakdowns by properties via segmentation queries
- When analyzing conversion funnels and identifying drop-offs
- When querying or updating user profiles in bulk
- When you need to verify and refresh current Mixpanel schemas before building workflows
Quick Start
- Step 1: Verify RUBE_SEARCH_TOOLS responds to fetch current tool schemas
- Step 2: Run RUBE_MANAGE_CONNECTIONS with toolkit mixpanel and complete authentication if needed; ensure status is ACTIVE
- Step 3: Run a core workflow (e.g., MIXPANEL_GET_ALL_PROJECTS then MIXPANEL_AGGREGATE_EVENT_COUNTS) and review results
Best Practices
- Always call RUBE_SEARCH_TOOLS first to fetch current tool schemas
- Ensure MIXPANEL connection status is ACTIVE before running workflows
- Use exact event names and from_date/to_date in YYYY-MM-DD format
- Limit high-cardinality segmentation and set a reasonable limit for results
- Test workflows incrementally and validate results against the Mixpanel UI
Example Use Cases
- Automate daily event counts for multiple Mixpanel projects and surface trends
- Run segmentation on country or platform to map user geography and device usage
- Evaluate onboarding or checkout funnels with a defined conversion window
- Query and batch-update user profiles with new attributes for a cohort
- Execute a JQL-style query to extract specific user data for advanced analyses
Frequently Asked Questions
Related Skills
amplitude-automation
davepoon/buildwithclaude
Automate Amplitude tasks via Rube MCP (Composio): events, user activity, cohorts, user identification. Always search tools first for current schemas.
ab-test-setup
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," or "how long should I run this test." Use this whenever someone is comparing two approaches and wants to measure which performs better. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.
analytics-tracking
coreyhaines31/marketingskills
When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.
google-analytics-automation
davepoon/buildwithclaude
Automate Google Analytics tasks via Rube MCP (Composio): run reports, list accounts/properties, funnels, pivots, key events. Always search tools first for current schemas.
segment-automation
davepoon/buildwithclaude
Automate Segment tasks via Rube MCP (Composio): track events, identify users, manage groups, page views, aliases, batch operations. Always search tools first for current schemas.
data-analysis
laragentic/agents
Analyze datasets, generate insights, and create visualizations