5 min read

How to Set Up Alerts for Power Users in Mixpanel

Power users generate most of your revenue, but you won't know they're at risk until they're gone. Mixpanel's alerts let you monitor power user engagement in real-time and catch activity drops before they turn into churn. Here's how to set it up.

Define Power Users with Cohorts or Properties

Before alerting on power users, you need to identify them in Mixpanel. Use a combination of event frequency, custom properties, or a formal cohort.

Track User Activity as a Custom Property

Set a custom property on users that marks them as power users. You can base this on event count, subscription tier, or days active. Use mixpanel.people.set() to mark users with a Power User property.

javascript
// Mark users as power users based on their activity
mixpanel.people.set({
  'Power User': true,
  'Power User Tier': 'gold',
  'Monthly Events': 250,
  'Days Active': 45,
  'Last Active': new Date().toISOString()
});

// Track when users enter power user status
mixpanel.track('Power User Status Changed', {
  'new_status': 'gold',
  'trigger': 'monthly_events_threshold',
  'monthly_events': 250
});
Use people properties to identify power users at scale

Build a Power User Cohort in Mixpanel

Go to People > Cohorts and create a new cohort filtered by your power user property. Name it Power Users (Gold Tier) so it's reusable. You can filter on custom properties, event counts, or device properties—whatever defines your power users.

javascript
// Segment events by power user properties in your application
if (userProperties['Power User'] === true) {
  mixpanel.track('Power User Action', {
    'action': 'advanced_feature_used',
    'feature': 'custom_dashboards',
    'user_tier': userProperties['Power User Tier']
  });
}

// Structure cohort queries
const powerUserFilter = "properties['Power User'] == true AND properties['Power User Tier'] == 'gold'";
console.log('Querying cohort with filter:', powerUserFilter);
Organize power users into cohorts for consistent alerting
Tip: Power user definitions change as your product grows. Review and update your definition each quarter—last year's power users might be this year's standard users.

Create and Configure the Alert

Once power users are identified in Mixpanel, set up an alert that fires when their engagement drops.

Create an Alert in the Mixpanel UI

In your workspace, click Alerts in the left sidebar, then Create Alert. Choose a metric to monitor—typically Events or a chart you've built. Name it Power User Activity Drop so your team knows what it watches.

javascript
// Prepare structured data for alert configuration
const powerUserAlertConfig = {
  metric: 'Events',
  eventName: 'Power User Action',
  filters: [
    {
      property: 'Power User',
      operator: 'equals',
      value: true
    },
    {
      property: 'Power User Tier',
      operator: 'equals',
      value: 'gold'
    }
  ],
  aggregation: 'count',
  timeframe: 'day'
};

const alertCondition = {
  type: 'anomaly',
  sensitivity: 'medium',
  window: '24_hours',
  lookback: '30_days'
};

console.log('Power user alert configured');
Structure your alert to catch power user activity drops

Set the Alert Threshold or Anomaly Sensitivity

Choose between Anomaly Detection (Mixpanel's ML) or Fixed Threshold. Anomaly detection is better for power users—it learns normal variation and only fires on unusual drops. Set sensitivity to medium to avoid false positives.

javascript
// Configure alert thresholds
const alertThresholds = {
  // Anomaly detection (recommended)
  anomaly: {
    type: 'std_dev',
    threshold: 2, // Fire if 2 standard deviations below baseline
    baseline_days: 30,
    check_frequency: 'hourly'
  },
  // Fixed threshold (alternative)
  fixed: {
    type: 'absolute_change',
    min_events: 100,
    drop_percentage: 30, // Alert if drops by 30% or more
    lookback_hours: 24
  }
};

const activeThreshold = alertThresholds.anomaly;
console.log(`Using ${activeThreshold.type} with ${activeThreshold.threshold} std devs`);
Anomaly detection prevents false positives from normal variation

Configure Alert Recipients and Delivery

Click Notifications and choose your delivery method: Email, Slack (via Mixpanel integration), or Webhook. For critical alerts on power users, prefer Slack or Webhooks—email gets lost. Test the integration before going live.

javascript
// Handle incoming webhook alerts from Mixpanel
const express = require('express');
const app = express();

app.post('/webhooks/mixpanel-alert', express.json(), (req, res) => {
  const { alert_name, alert_message, timestamp } = req.body;
  
  console.log(`Alert: ${alert_name}`);
  console.log(`Message: ${alert_message}`);
  
  // Route to incident management system
  notifyOnCall({
    title: `🚨 ${alert_name}`,
    severity: 'high',
    message: alert_message,
    timestamp: timestamp
  });
  
  res.status(200).json({ received: true });
});

app.listen(3001);
Receive and route alerts to your incident system
Watch out: Mixpanel alert history only shows recent triggers. Save important alerts to a log or incident system so you can analyze patterns later.

Validate and Iterate on Your Alert

A live alert is just the start. Tune it over the first few weeks to eliminate false positives while catching real issues.

Backtest Your Alert Against Historical Data

Before enabling the alert fully, check how it would have performed over the last 30-60 days. Use Mixpanel's Dashboards to build a chart of power user events, then visually mark where your alert would have fired. Adjust thresholds if needed.

javascript
// Query historical power user data for backtest validation
const validateAlertBacktest = async () => {
  const response = await fetch('https://data.mixpanel.com/api/2.0/events', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${process.env.MIXPANEL_API_TOKEN}`
    },
    body: JSON.stringify({
      from_date: '2026-01-26',
      to_date: '2026-03-26',
      event: 'Power User Action',
      where: "properties['Power User'] == true",
      unit: 'day',
      interval: 1
    })
  });

  const data = await response.json();
  console.log('Historical data:', data);
  return data;
};

await validateAlertBacktest();
Backtest your threshold against 30-60 days of historical data

Review Alert Performance After 2 Weeks

Check your Alert History in Mixpanel. Count true positives (alerts that led to action), false positives (noise), and false negatives (you spotted issues manually). Adjust sensitivity up if noisy; down if you're missing issues.

javascript
// Track alert outcomes for analysis
const logAlertOutcome = (alertName, fired, actionTaken) => {
  mixpanel.track('Alert Outcome', {
    'alert_name': alertName,
    'alert_fired': fired,
    'action_taken': actionTaken,
    'outcome_type': fired && actionTaken ? 'true_positive' : 
                    fired && !actionTaken ? 'false_positive' : 
                    'true_negative',
    'evaluated_at': new Date().toISOString()
  });
};

// Track a real incident
logAlertOutcome('Power User Activity Drop', true, true);
// Track a false positive
logAlertOutcome('Power User Activity Drop', true, false);
Log alert outcomes to identify tuning opportunities
Tip: Pair this alert with a Cohort Retention Dashboard to correlate power user activity drops with actual churn. If the alert fires but retention is stable, you can relax the threshold.

Common Pitfalls

  • Setting alert thresholds too tight. Daily fluctuations of 10-20% are normal—aim for 30%+ anomalies before alerting.
  • Using email as the only notification channel. Emails get lost in inboxes. Always configure Slack or Webhooks for high-priority alerts.
  • Treating power user definitions as static. Your power users will evolve as your product grows—review the definition every quarter or after major features.
  • Creating too many alerts. Teams ignore noisy alert systems. Start with one critical power user metric, then add more only after proving it drives action.

Wrapping Up

You've set up monitoring that protects your most valuable customers. When the alert fires, you'll have hours to respond instead of days. Your power users are the foundation of your business—treat their engagement like you'd treat a payment system outage. If you want to track this automatically across tools, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free