Built for startups,
scaled for unicorns
Successfully submitted!
Error! Please try again
Your most engaged users are already chatting with you through Intercom β making it the perfect channel to introduce your referral program. By integrating GrowSurf with Intercom, you can display referral prompts in the Intercom Messenger at strategic moments: after a positive support interaction, during product tours, or when users hit usage milestones.
This guide walks you through creating Intercom messages that promote your GrowSurf referral program, targeting the right users at the right time, and tracking how Intercom-driven referral prompts convert into actual referral sign-ups.
Add referral program data to Intercom user profiles so you can target prompts based on referral activity.
growsurf_participant (Boolean) β whether they've joined the referral programgrowsurf_referral_count (Number) β their referral countgrowsurf_referral_link (String) β their unique sharing URLPOST /users with custom attributesDesign an Intercom message that introduces your referral program to users who haven't joined yet.
growsurf_participant is false AND session count > 3 (engaged users)Show a referral prompt after a positive support interaction β the moment when satisfaction is highest.
Include a referral step in your Intercom Product Tours to introduce the program during onboarding.
Use Intercom's banner feature to display persistent referral CTAs to your most engaged users.
growsurf_participant is falseMeasure how effective your Intercom referral prompts are at driving program sign-ups.
// Update Intercom user with GrowSurf referral data
const Intercom = require('intercom-client');
const client = new Intercom.Client({ tokenAuth: { token: process.env.INTERCOM_TOKEN } });
app.post('/api/growsurf-to-intercom', async (req, res) => {
const { event, participant } = req.body;
try {
await client.users.update({
email: participant.email,
custom_attributes: {
growsurf_participant: true,
growsurf_referral_count: participant.referralCount || 0,
growsurf_referral_link: participant.shareUrl,
growsurf_referral_code: participant.referralCode
}
});
// Optionally trigger an Intercom event for flow targeting
await client.events.create({
event_name: 'referral-program-joined',
user_id: participant.email,
created_at: Math.floor(Date.now() / 1000),
metadata: {
referral_code: participant.referralCode
}
});
res.json({ success: true });
} catch (error) {
console.error('Intercom update error:', error);
res.status(500).json({ error: error.message });
}
});
// Intercom message targeting rules (pseudo-config):
const referralPromptTarget = {
audience: {
rules: [
{ attribute: 'growsurf_participant', operator: 'eq', value: false },
{ attribute: 'session_count', operator: 'gt', value: 3 },
{ attribute: 'last_seen_at', operator: 'within', value: '7 days' }
]
}
};The best time to ask for a referral is when the user is happiest. Trigger prompts after they complete a key action (like finishing a project or hitting a goal), after a positive support interaction, or after they've been a customer for 30+ days. Never interrupt a frustrated user with a referral ask.
Use Intercom's targeting rules to show referral prompts only to users who are not currently in a support conversation. Asking for a referral while someone is trying to resolve an issue is tone-deaf and will hurt your brand perception.
Instead of a static message, create an Intercom Custom Bot that walks users through the referral program interactively. Ask if they're interested, explain the reward, and generate their referral link β all within the messenger chat. Interactive experiences convert better than passive messages.
Intercom Messenger supports rich content including links and images, but not embedded JavaScript widgets. Instead, link to your referral landing page where the GrowSurf widget is embedded. Use Intercom's card-style messages to create a visually appealing CTA that drives users to the referral page.
Target messages to users where growsurf_participant is false. When a user joins the referral program, the GrowSurf webhook updates this attribute to true, automatically excluding them from future referral introduction messages. They'll only see messages designed for active referrers.
In-app messages have the highest engagement for referral prompts because they appear within your product where the user is already active. Use "Post" style for detailed introductions and "Banner" style for subtle, persistent reminders. Email-type messages work well for reaching users who haven't logged in recently.
Trusted by marketing and product teams at fast-growing B2C, fintech, and SaaS companies
