Built for startups,
scaled for unicorns
Successfully submitted!
Error! Please try again
ActiveCampaign's automation builder is one of the most powerful in email marketing β and it becomes even more powerful when fed referral event data from GrowSurf. By connecting referral events to ActiveCampaign automations, you can create sophisticated nurture sequences, trigger reward notifications, segment contacts by referral activity, and build multi-channel campaigns that keep your referral program top-of-mind.
This guide walks you through connecting GrowSurf to ActiveCampaign, building automations for key referral events, and using ActiveCampaign's CRM features to track referral-sourced deals alongside your other pipeline activities.
Create custom contact fields to store GrowSurf referral data on each contact record.
Referral Code (Text) β GrowSurf referral codeReferral Link (Text) β unique sharing URLReferral Count (Number) β number of successful referralsReferral Status (Dropdown: Participant, Active Referrer, Converted)Referred By (Text) β referrer's emailReferral Program Join Date (Date)Set up the data pipeline that sends GrowSurf events to ActiveCampaign.
Create an automation that welcomes new referral program participants.
Referral Count > 0Trigger actions when a participant makes a referral or reaches milestones.
Referral Count valueUse ActiveCampaign's CRM to create deals when referral leads are qualified.
Track automation performance and referral program impact.
// Connect GrowSurf to ActiveCampaign via API
const ActiveCampaign = require('activecampaign');
const ac = new ActiveCampaign(process.env.AC_URL, process.env.AC_API_KEY);
app.post('/api/growsurf-to-activecampaign', async (req, res) => {
const { event, participant, referrer } = req.body;
// Create or update contact
const contactData = {
email: participant.email,
firstName: participant.firstName || '',
lastName: participant.lastName || '',
fieldValues: [
{ field: 'REFERRAL_CODE_FIELD_ID', value: participant.referralCode },
{ field: 'REFERRAL_LINK_FIELD_ID', value: participant.shareUrl },
{ field: 'REFERRAL_COUNT_FIELD_ID', value: (participant.referralCount || 0).toString() },
{ field: 'REFERRED_BY_FIELD_ID', value: referrer?.email || '' }
]
};
const contact = await ac.api('contact/sync', contactData);
const contactId = contact.subscriber_id || contact.contact?.id;
// Add event-specific tags
const tagMap = {
'PARTICIPANT_CREATED': 'referral-participant',
'PARTICIPANT_REFERRED': 'has-referred',
'CAMPAIGN_REFERRAL_CONVERTED': 'referral-converted'
};
if (tagMap[event]) {
await ac.api('contactTag/add', {
contactId: contactId,
tagId: await getOrCreateTag(tagMap[event])
});
}
// Update referral count on existing contact
if (event === 'PARTICIPANT_REFERRED' && referrer) {
await ac.api('contact/sync', {
email: referrer.email,
fieldValues: [
{ field: 'REFERRAL_COUNT_FIELD_ID', value: referrer.referralCount.toString() }
]
});
}
res.json({ success: true, contactId });
});ActiveCampaign supports conditional content blocks in emails. Use them to show different content based on referral status β for example, show the referral link only to participants, or show a "join the program" CTA to non-participants. This lets you use fewer email templates while maintaining personalization.
Add referral activity to your ActiveCampaign lead scoring rules. Award points when a contact has the "referral-participant" tag, additional points for "has-referred", and bonus points for contacts referred by high-performing referrers. This helps your sales team prioritize referral leads.
Add an automation goal that marks when a participant makes their first referral. Goals in ActiveCampaign let you measure what percentage of people entering the automation achieve the desired outcome β giving you a clear conversion rate for your referral onboarding flow.
ActiveCampaign doesn't have a native GrowSurf integration, but you can connect them via Zapier or direct API integration. Zapier is simpler to set up; direct API gives you more control and faster event processing. Both approaches support real-time data syncing.
Yes. Use GrowSurf's webhooks to call ActiveCampaign's API directly. The key is adding tags to contacts β ActiveCampaign automations can trigger on tag addition, so your webhook handler adds the right tag and ActiveCampaign's automation takes it from there.
Use ActiveCampaign's "Wait Until" conditions and automation goals to prevent overlap. You can also add conditions that check if the contact is already in another automation before enrolling them. ActiveCampaign's "Only enter once" setting on automations prevents duplicate enrollments.
Trusted by marketing and product teams at fast-growing B2C, fintech, and SaaS companies
