Integration Inventory
Native Integration Partners
Mixpanel offers extensive native integrations for product analytics and user engagement:
Data Warehouses & Storage
- Amazon S3 - Raw data export for archival
- Google BigQuery - SQL-based analysis and reporting
- Snowflake - Enterprise data platform integration
- Azure Synapse - Microsoft cloud analytics
- Amazon Redshift - Data warehouse connectivity
- Databricks - Lakehouse platform integration
Customer Data Platforms
- Segment - Unified customer data collection
- mParticle - Cross-platform event orchestration
- RudderStack - Customer data infrastructure
- MetaRouter - Enterprise CDP platform
Marketing & Advertising
- Google Ads - Conversion tracking and optimization
- Facebook Ads - Custom audience sync
- Braze - Multi-channel messaging automation
- Iterable - Growth marketing platform
- Customer.io - Behavioral email campaigns
- SendGrid - Email engagement tracking
CRM & Sales Tools
- Salesforce - Lead qualification and attribution
- HubSpot - Marketing automation workflows
- Pipedrive - Sales pipeline analytics
- Zendesk - Customer support correlation
- Intercom - In-app messaging and chat
Business Intelligence
- Looker - Custom dashboards and visualization
- Tableau - Data exploration and reporting
- Mode Analytics - SQL-based analytics platform
- Sigma Computing - Cloud-native BI tool
Product & Development
- Amplitude - Cross-platform behavioral analysis
- LaunchDarkly - Feature flag analytics
- Optimizely - A/B testing and experimentation
- Split.io - Feature delivery platform
- Firebase - Mobile app integration
Mixpanel Warehouse Connectors
Data Pipeline Architecture
Mixpanel Warehouse Connectors enable bi-directional data flow:
- Export to Warehouse - Send Mixpanel events to your data warehouse
- Import from Warehouse - Bring warehouse data into Mixpanel for analysis
- Cohort Sync - Export user cohorts to activation platforms
Supported Connectors
- BigQuery - Native real-time streaming
- Snowflake - Daily batch or continuous sync
- Amazon S3 - Raw JSON export
- Redshift - PostgreSQL-compatible sync
API Access & Custom Integrations
Query API
- JQL (JSON Query Language) for flexible data extraction
- Segmentation, Funnel, and Retention queries
- Event and User profile export
- Rate limits based on plan tier
Ingestion API
- HTTP endpoint for event tracking
- Batch import capability (up to 2000 events per request)
- User profile updates
- Group analytics support
Data Export API
- Raw event export for custom processing
- People (user) export for CRM enrichment
- Engage API for messaging campaigns
Lexicon API
- Programmatic schema management
- Event and property definitions
- Data governance automation
Plan-Based Feature Access
Mixpanel Pricing Tiers
| Feature | Free | Growth | Enterprise |
|---|---|---|---|
| Monthly events | 20M | Custom | Custom |
| Warehouse connectors | - | Limited | All |
| API rate limits | 60/hour | 400/hour | Custom |
| Data retention | 1 year | 5+ years | 7+ years |
| Cohort sync destinations | Limited | Standard | All + custom |
| Group analytics | - | Yes | Yes |
| Premium integrations | - | Yes | Yes + dedicated |
Implementation Playbooks
Salesforce Integration Setup
Connect Mixpanel with Salesforce for closed-loop attribution and lead enrichment:
Prerequisites
- Salesforce Professional or higher
- Mixpanel Growth or Enterprise plan
- Admin access to both platforms
Configuration Steps
- In Mixpanel, navigate to Project Settings > Integrations > Salesforce
- Click "Connect" and authorize Salesforce OAuth
- Map Mixpanel user properties to Salesforce fields
- Configure sync direction and frequency
- Select Salesforce objects (Leads, Contacts, Opportunities)
- Enable and test sync
Field Mapping Configuration
// Mixpanel user identification for Salesforce sync
mixpanel.identify('user_12345');
mixpanel.people.set({
'$email': 'user@example.com',
'$name': 'Jane Smith',
'Company': 'Acme Corp',
'Industry': 'Technology',
'Product_Qualified_Lead': true,
'Engagement_Score': 85,
'Trial_Stage': 'Active',
'Features_Adopted': 12,
'Last_Active': new Date().toISOString()
});
// These properties sync to Salesforce custom fields
// Lead__Engagement_Score__c, Lead__PQL__c, etc.
Automated Lead Scoring
// Track product engagement events for lead scoring
mixpanel.track('Feature Used', {
'Feature Name': 'Advanced Analytics',
'Usage Count': 15,
'First Time': false,
'Plan Type': 'Trial'
});
mixpanel.track('Key Action Completed', {
'Action': 'Invited Team Member',
'Team Size': 5
});
// Mixpanel calculates engagement score
// Syncs to Salesforce Lead_Score__c field
Bi-Directional Sync
Map Salesforce fields back to Mixpanel for analysis:
| Salesforce Field | Mixpanel Property | Sync Direction |
|---|---|---|
| Bidirectional | ||
| Lead Status | SF_Lead_Status | SF → Mixpanel |
| Opportunity Amount | SF_Opportunity_Value | SF → Mixpanel |
| Account Owner | SF_Account_Owner | SF → Mixpanel |
| Last Modified Date | SF_Last_Modified | SF → Mixpanel |
BigQuery Export Configuration
Stream Mixpanel events to BigQuery for advanced SQL analysis:
Setup Process
- Create Google Cloud Platform project
- Enable BigQuery API and create dataset
- Create service account with BigQuery Data Editor role
- In Mixpanel, navigate to Project Settings > Data & Privacy > Export Data
- Select BigQuery as export destination
- Upload service account credentials JSON
- Configure export schedule and event filters
- Test and enable export
Export Options
- Real-time streaming - Events appear within minutes (Enterprise only)
- Daily batch - Complete daily export by 9 AM UTC
- Event filtering - Export specific events only
- Property selection - Choose which properties to export
BigQuery Schema
-- Mixpanel events table schema
CREATE TABLE mixpanel.events (
event_name STRING,
time TIMESTAMP,
distinct_id STRING,
insert_id STRING,
mp_processing_time_ms INT64,
event_properties JSON,
user_properties JSON
)
PARTITION BY DATE(time)
CLUSTER BY event_name, distinct_id;
-- Query: User funnel analysis
WITH funnel_events AS (
SELECT
distinct_id,
COUNTIF(event_name = 'Signup Started') as signup_started,
COUNTIF(event_name = 'Email Verified') as email_verified,
COUNTIF(event_name = 'Profile Completed') as profile_completed,
COUNTIF(event_name = 'First Purchase') as first_purchase
FROM
mixpanel.events
WHERE
DATE(time) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY
distinct_id
)
SELECT
COUNTIF(signup_started > 0) as step1_signup,
COUNTIF(email_verified > 0) as step2_verified,
COUNTIF(profile_completed > 0) as step3_completed,
COUNTIF(first_purchase > 0) as step4_purchased,
ROUND(COUNTIF(email_verified > 0) / COUNTIF(signup_started > 0) * 100, 2) as signup_to_verified_rate,
ROUND(COUNTIF(first_purchase > 0) / COUNTIF(profile_completed > 0) * 100, 2) as completed_to_purchase_rate
FROM
funnel_events
WHERE
signup_started > 0;
-- Query: Retention cohort analysis
SELECT
DATE_TRUNC(DATE(first_seen), WEEK) as cohort_week,
COUNT(DISTINCT distinct_id) as cohort_size,
COUNTIF(DATE_DIFF(DATE(last_seen), DATE(first_seen), DAY) >= 7) as retained_day_7,
COUNTIF(DATE_DIFF(DATE(last_seen), DATE(first_seen), DAY) >= 30) as retained_day_30,
ROUND(COUNTIF(DATE_DIFF(DATE(last_seen), DATE(first_seen), DAY) >= 7) / COUNT(DISTINCT distinct_id) * 100, 2) as retention_rate_7d,
ROUND(COUNTIF(DATE_DIFF(DATE(last_seen), DATE(first_seen), DAY) >= 30) / COUNT(DISTINCT distinct_id) * 100, 2) as retention_rate_30d
FROM (
SELECT
distinct_id,
MIN(time) as first_seen,
MAX(time) as last_seen
FROM
mixpanel.events
WHERE
DATE(time) >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY
distinct_id
)
GROUP BY
cohort_week
ORDER BY
cohort_week DESC;
Braze Integration for Messaging
Sync Mixpanel cohorts to Braze for targeted messaging campaigns:
Setup Steps
- In Mixpanel, navigate to Project Settings > Integrations > Braze
- Enter Braze API credentials (REST API URL and API Key)
- Create cohorts in Mixpanel based on user behavior
- Enable cohort sync to Braze
- Access synced cohorts in Braze for campaign targeting
Cohort Creation Examples
// Define behavioral cohorts in Mixpanel
// Example 1: Power users for upsell
// Criteria:
// - Last active within 7 days
// - Feature usage > 50 events in 30 days
// - Plan type = Free
// Example 2: At-risk users for re-engagement
// Criteria:
// - Last active 14-30 days ago
// - Previous active user (30+ sessions)
// - No activity in last 2 weeks
// Example 3: Onboarding incomplete
// Criteria:
// - Signed up within 7 days
// - Email verified = true
// - Profile completion < 50%
// - Key action not completed
Real-Time Messaging Triggers
// Track events that trigger Braze messages
mixpanel.track('Cart Abandoned', {
'Cart Value': 125.50,
'Items Count': 3,
'Abandonment Reason': 'Checkout Started'
});
mixpanel.people.set({
'Cart_Abandoned': true,
'Cart_Value': 125.50,
'Abandon_Timestamp': Date.now()
});
// Braze receives cohort update
// Triggers automated email campaign
Data Activation
Audience Segmentation & Targeting
Leverage Mixpanel's behavioral data for precise audience targeting:
Advanced Segmentation
// Programmatic cohort creation via API
const createCohort = async (cohortData) => {
const response = await fetch('https://mixpanel.com/api/2.0/cohorts/create', {
method: 'POST',
headers: {
'Authorization': 'Basic ' + btoa(API_SECRET + ':'),
'Content-Type': 'application/json'
},
body: JSON.stringify({
cohort_name: 'High Value Cart Abandoners',
filters: {
events: [{
event: 'Add to Cart',
where: {
'cart_value': { '$gt': 100 }
},
time_period: 'last_7_days'
}],
exclusions: [{
event: 'Purchase',
time_period: 'last_7_days'
}]
}
})
});
return response.json();
};
Predictive Cohorts
Use Mixpanel's ML capabilities for predictive segmentation:
| Cohort Type | Prediction | Activation Use Case |
|---|---|---|
| Likely to Convert | Probability of purchase within 7 days | Targeted ads, promotional offers |
| Churn Risk | Probability of churning within 30 days | Re-engagement campaigns |
| Upsell Ready | Likelihood of upgrading plan | Sales outreach, feature education |
| High LTV Potential | Predicted lifetime value > threshold | VIP treatment, referral programs |
Personalization & Product Optimization
A/B Test Analysis
// Track experiment exposure and outcomes
mixpanel.track('Experiment Viewed', {
'Experiment Name': 'Homepage Hero Redesign',
'Variant': 'Control',
'Session ID': session_id
});
mixpanel.track('Experiment Converted', {
'Experiment Name': 'Homepage Hero Redesign',
'Variant': 'Control',
'Conversion Type': 'Signup',
'Session ID': session_id
});
// Analyze in Mixpanel or export to BigQuery for advanced stats
Feature Flag Analytics
Integrate with LaunchDarkly or Split.io for feature rollout analysis:
// Track feature flag exposure
const featureFlag = launchDarkly.variation('new-checkout-flow', user, false);
mixpanel.track('Feature Flag Evaluated', {
'Flag Key': 'new-checkout-flow',
'Variation': featureFlag ? 'Treatment' : 'Control',
'User Segment': user.segment
});
// Track feature-specific outcomes
if (featureFlag) {
mixpanel.track('New Checkout Started', {
'Feature Flag': 'new-checkout-flow'
});
}
Marketing Attribution
Multi-Touch Attribution
// Track campaign touchpoints
mixpanel.track('Campaign Touchpoint', {
'Campaign Name': 'Summer Sale 2025',
'Channel': 'Email',
'Medium': 'Newsletter',
'Campaign ID': 'camp_12345',
'Touchpoint Position': 2 // Second touchpoint in journey
});
mixpanel.track('Purchase', {
'Revenue': 149.99,
'Attribution Campaign': 'Summer Sale 2025',
'Attribution Channel': 'Email',
'Touchpoints Count': 4
});
// Analyze attribution in Mixpanel's Impact report
UTM Parameter Tracking
// Automatically capture UTM parameters
mixpanel.track_pageview({
'utm_source': getQueryParam('utm_source'),
'utm_medium': getQueryParam('utm_medium'),
'utm_campaign': getQueryParam('utm_campaign'),
'utm_content': getQueryParam('utm_content'),
'utm_term': getQueryParam('utm_term')
});
// Set as user properties for attribution
mixpanel.people.set_once({
'$initial_utm_source': getQueryParam('utm_source'),
'$initial_utm_medium': getQueryParam('utm_medium'),
'$initial_utm_campaign': getQueryParam('utm_campaign')
});
Data Sync Schedules & Ownership
Integration Refresh Cadences
| Integration | Sync Frequency | Latency | Direction | Notes |
|---|---|---|---|---|
| Salesforce | 15-60 minutes | Near real-time | Bidirectional | Configurable by plan |
| BigQuery Export | Streaming/Daily | under 5 min / 24 hours | Mixpanel → BQ | Streaming = Enterprise only |
| Braze Cohorts | Hourly | ~1 hour | Mixpanel → Braze | Automatic updates |
| Segment | Real-time | under 30 seconds | Bidirectional | Event streaming |
| Google Ads | Daily | 24 hours | Mixpanel → Ads | Audience sync |
| Webhook Events | Real-time | under 1 minute | Mixpanel → Endpoint | Custom integrations |
Team Responsibilities
- Product Team - Event tracking schema, feature analytics, funnel optimization
- Marketing Team - Campaign attribution, cohort creation, A/B testing
- Data Team - Warehouse integration, SQL analysis, data modeling
- Engineering Team - SDK implementation, API integrations, data quality
- Growth Team - Activation metrics, retention analysis, monetization funnels
Compliance & Security
Privacy & Data Governance
// Implement consent management
if (userConsent.analytics) {
mixpanel.init('YOUR_PROJECT_TOKEN', {
opt_out_tracking_by_default: false
});
} else {
mixpanel.opt_out_tracking();
}
// Handle data deletion requests
const deleteUserData = async (distinctId) => {
const response = await fetch(`https://mixpanel.com/api/2.0/engage?data=${encodeURIComponent(JSON.stringify({
'$delete': distinctId,
'$token': PROJECT_TOKEN,
'$ignore_time': true
}))}`);
return response.json();
};
// Export user data (right to access)
const exportUserData = async (distinctId) => {
const response = await fetch(`https://mixpanel.com/api/2.0/engage?where=properties["$distinct_id"]=="${distinctId}"`, {
headers: {
'Authorization': 'Basic ' + btoa(API_SECRET + ':')
}
});
return response.json();
};
PII Management
// RECOMMENDED: Hash or use opaque identifiers
mixpanel.identify('user_8a7d9f23c1b4e5f6');
// AVOID: Using PII as distinct_id
// DON'T DO THIS:
// mixpanel.identify('user@example.com'); // Email as ID - avoid
// Safe property tracking
mixpanel.people.set({
'Account Type': 'Enterprise',
'Plan Level': 'Pro',
'Industry': 'Technology',
'Company Size': '100-500',
'Region': 'North America'
});
// NEVER track sensitive data
// DON'T DO THIS:
// mixpanel.track('Payment Made', {
// 'credit_card': '4111-1111-1111-1111', // NEVER
// 'ssn': '123-45-6789' // NEVER
// });
Data Residency
Mixpanel offers EU data residency for GDPR compliance:
- EU Data Residency option (Enterprise plan)
- Data stored in Frankfurt, Germany
- Separate API endpoints for EU projects
- Compliance with EU data protection regulations
Access Control & Security
Role-Based Permissions
- Owner - Full project access, billing, user management
- Admin - All features except billing and user roles
- Member - Standard analytics access, limited admin functions
- Consumer - View-only access to reports and dashboards
API Authentication
# Python SDK with secure token management
import mixpanel
import os
# Load token from environment variable
mp = mixpanel.Mixpanel(os.environ.get('MIXPANEL_TOKEN'))
# Track events server-side
mp.track('user_12345', 'Signup Completed', {
'source': 'web',
'plan': 'pro'
})
# Update user profiles
mp.people_set('user_12345', {
'$email': 'user@example.com',
'Plan': 'Pro',
'Signup Date': '2025-12-26'
})
Service Account Best Practices
# Secure credential storage
# Use environment variables
export MIXPANEL_TOKEN="your_project_token"
export MIXPANEL_API_SECRET="your_api_secret"
# Rotate credentials quarterly
# Document in security runbook
# Monitor API usage for anomalies
Integration Security
Webhook Signatures
// Verify Mixpanel webhook signatures
const crypto = require('crypto');
function verifyWebhookSignature(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
// Validate incoming webhooks
app.post('/mixpanel-webhook', (req, res) => {
const signature = req.headers['x-mixpanel-signature'];
if (!verifyWebhookSignature(req.body, signature, WEBHOOK_SECRET)) {
return res.status(401).send('Invalid signature');
}
// Process webhook
processWebhookData(req.body);
res.status(200).send('OK');
});
Advanced Integration Opportunities
Warehouse Bidirectional Sync: Use Mixpanel's data pipeline to export events to your warehouse, and reverse ETL tools (Census, Hightouch) to import enriched data back. This enables attribution models that combine Mixpanel behavioral data with backend transaction data.
CRM Integration: Connect Mixpanel to HubSpot or Salesforce via Segment or direct API integration to enrich CRM profiles with product usage data. Use Mixpanel cohorts to trigger CRM workflows when users match behavioral criteria.
E-commerce Personalization: Forward Mixpanel events to Klaviyo or Braze for behavior-triggered email campaigns. Track cart abandonment, feature adoption, and engagement drop-offs to drive retention workflows.