Built for startups,
scaled for unicorns
Successfully submitted!
Error! Please try again
A referral program is only as strong as its weakest conversion point. Mixpanel's funnel analysis reveals exactly where participants drop off β is it after receiving their referral link? After sharing but before friends sign up? Or after friends sign up but before they convert? With GrowSurf referral events flowing into Mixpanel, you can build detailed funnels that pinpoint optimization opportunities.
This guide covers sending GrowSurf referral events to Mixpanel, building referral-specific funnels, analyzing conversion rates at each step, segmenting funnel performance by user properties, and using Mixpanel's insights to improve your referral program's conversion rate.
Set up the integration that sends referral events from GrowSurf to Mixpanel's ingestion API.
POST https://api.mixpanel.com/trackReferral Program JoinedReferral Link Shared (if trackable via client-side SDK)Referral Friend Signed UpReferral ConvertedReferral Reward EarnedCreate a funnel in Mixpanel that shows the complete referral journey.
Break down funnel performance by user segments to find patterns.
Identify the biggest drop-offs in your referral funnel and hypothesize solutions.
Configure Mixpanel alerts when funnel metrics change significantly.
Combine funnel analysis with other referral metrics in a Mixpanel dashboard.
// Send GrowSurf referral events to Mixpanel
const Mixpanel = require('mixpanel');
const mixpanel = Mixpanel.init(process.env.MIXPANEL_TOKEN);
app.post('/api/growsurf-to-mixpanel', async (req, res) => {
const { event, participant, referrer } = req.body;
const eventMap = {
'PARTICIPANT_CREATED': 'Referral Program Joined',
'PARTICIPANT_REFERRED': 'Referral Friend Signed Up',
'CAMPAIGN_REFERRAL_CONVERTED': 'Referral Converted',
'PARTICIPANT_REACHED_REWARD': 'Referral Reward Earned'
};
const mixpanelEvent = eventMap[event];
if (!mixpanelEvent) return res.json({ skipped: true });
// Track event for the participant
mixpanel.track(mixpanelEvent, {
distinct_id: participant.email,
referral_code: participant.referralCode,
referrer_email: referrer?.email || null,
referrer_id: referrer?.id || null,
campaign_id: participant.campaignId,
referral_count: participant.referralCount || 0,
is_referred: !!referrer
});
// Set user profile properties
mixpanel.people.set(participant.email, {
$email: participant.email,
$first_name: participant.firstName,
$last_name: participant.lastName,
referral_code: participant.referralCode,
total_referrals: participant.referralCount || 0,
referral_participant: true,
referred_by: referrer?.email || 'organic'
});
// If this is a referral, also track for the referrer
if (event === 'PARTICIPANT_REFERRED' && referrer) {
mixpanel.track('Referral Made', {
distinct_id: referrer.email,
referred_email: participant.email,
referral_number: referrer.referralCount
});
mixpanel.people.set(referrer.email, {
total_referrals: referrer.referralCount
});
}
res.json({ success: true });
});Mixpanel's funnel analysis shows the median time between each step. If the gap between "Link Shared" and "Friend Signed Up" is 3+ days, your referral landing page may not be compelling enough. If it's under 1 hour, your sharing experience is working well β focus optimization efforts on other steps.
If you run multiple GrowSurf campaigns, create separate funnels for each by filtering on the campaign_id property. This reveals which campaign designs, rewards, and audiences produce the best conversion rates, helping you double down on what works.
Mixpanel lets you export funnel data via API. Export weekly funnel data to a spreadsheet for deeper analysis, including statistical significance testing on conversion rate changes. This helps you make data-driven decisions about program changes.
For statistically meaningful funnel analysis, you need at least 100 entries at the first funnel step. With fewer events, conversion rate variations could be due to chance. For segmented funnel analysis, each segment needs 30+ entries at minimum. If your program is smaller, use longer time windows (90 days instead of 30).
Mixpanel funnels track a single user through multiple steps. To analyze the referrer-to-friend journey, you'd need to track events on both users and join them. Instead, create two separate funnels: one for the referrer journey (join β share β friend signs up) and one for the referred friend (click link β sign up β purchase).
Client-side tracking captures sharing actions within your app (clicking the share button, copying the link). For shares that happen via email, text, or social media, track the sharing intent (button click) rather than the actual share. Use GrowSurf's link click tracking as a proxy for how many people received and clicked shared links.
Trusted by marketing and product teams at fast-growing B2C, fintech, and SaaS companies
