← View All Guides
ActiveCampaign logo
Integration Guide

How to Tag Contacts by Referral Activity in ActiveCampaign with GrowSurf

Automatically tag ActiveCampaign contacts based on their GrowSurf referral program participation and performance.

Tags are the backbone of ActiveCampaign's segmentation and automation system. By tagging contacts based on their GrowSurf referral activity, you unlock the ability to target specific groups with relevant messaging, trigger automations at the right moments, and keep your contact database organized by referral program participation.

This guide covers designing a comprehensive tagging strategy for your referral program, automating tag application from GrowSurf events, using tags to trigger automations and segment contacts, and maintaining tag hygiene as your program scales.

Integration Steps

Step 1: Design Your Referral Tag Taxonomy

Plan a structured tagging system that covers all referral program states and activities.

  • Use a consistent naming convention with a prefix: ref- for all referral tags
  • Status tags (mutually exclusive):
    • ref-participant β€” joined the referral program
    • ref-active-referrer β€” has made at least one referral
    • ref-power-referrer β€” 5+ successful referrals
    • ref-champion β€” 10+ successful referrals
  • Source tags:
    • ref-referred-lead β€” this contact was referred by someone
    • ref-organic-participant β€” joined on their own (no referrer)
  • Event tags (additive, multiple can apply):
    • ref-earned-reward β€” has earned at least one reward
    • ref-converted-referral β€” their referral led to a conversion

Step 2: Automate Tag Application from GrowSurf Events

Set up the automation that applies tags when GrowSurf events occur.

  • Create a Zapier Zap or webhook handler for each event type
  • On PARTICIPANT_CREATED: add ref-participant tag. If referredBy exists, also add ref-referred-lead
  • On PARTICIPANT_REFERRED: add ref-active-referrer to the referrer. Check count for ref-power-referrer or ref-champion
  • On PARTICIPANT_REACHED_REWARD: add ref-earned-reward
  • Remove outdated tags when upgrading (e.g., remove ref-active-referrer when adding ref-power-referrer)

Step 3: Build Tag-Based Segments

Create ActiveCampaign segments using your referral tags for campaign targeting.

  • Go to Contacts > Advanced Search
  • Create saved searches (segments) for each referral persona:
    • "Invite to Program": contacts without ref-participant tag AND customer = true
    • "Needs First Referral": has ref-participant but NOT ref-active-referrer
    • "Celebrate and Encourage": has ref-active-referrer
    • "VIP Referrers": has ref-champion

Step 4: Trigger Automations from Tag Changes

Use tag additions as automation triggers for the right-time, right-message flow.

  • Tag added ref-participant β†’ start welcome automation
  • Tag added ref-active-referrer β†’ send first-referral celebration
  • Tag added ref-power-referrer β†’ send upgrade notification with new perks
  • Tag added ref-champion β†’ trigger VIP outreach from account manager
  • Tag added ref-referred-lead β†’ start referred lead nurture sequence

Step 5: Maintain Tag Hygiene

Keep your tagging system clean and accurate as your program evolves.

  • Audit tags monthly: check for contacts with conflicting tags (e.g., both ref-participant and ref-champion should only have the highest tier)
  • Remove stale tags: if a contact's referral program is deactivated, remove all ref- tags
  • Document your tagging rules in a shared document so your whole team understands the system
  • Use ActiveCampaign's tag cleanup tools to merge or remove unused tags

Step 6: Report on Tag-Based Referral Metrics

Use tag distributions to track program health and growth.

  • Track the count of contacts with each referral tag over time
  • Monitor the ratio of ref-participant to ref-active-referrer (activation rate)
  • Compare email engagement metrics across tag groups
  • Calculate revenue attributed to contacts with ref-referred-lead tag

Code Snippets

// Automated tag management for ActiveCampaign referral program
async function updateReferralTags(contactId, event, participantData) {
  const tagActions = [];

  switch (event) {
    case 'PARTICIPANT_CREATED':
      tagActions.push({ action: 'add', tag: 'ref-participant' });
      if (participantData.referredBy) {
        tagActions.push({ action: 'add', tag: 'ref-referred-lead' });
      } else {
        tagActions.push({ action: 'add', tag: 'ref-organic-participant' });
      }
      break;

    case 'PARTICIPANT_REFERRED':
      const count = participantData.referralCount || 1;
      if (count >= 10) {
        tagActions.push({ action: 'add', tag: 'ref-champion' });
        tagActions.push({ action: 'remove', tag: 'ref-power-referrer' });
        tagActions.push({ action: 'remove', tag: 'ref-active-referrer' });
      } else if (count >= 5) {
        tagActions.push({ action: 'add', tag: 'ref-power-referrer' });
        tagActions.push({ action: 'remove', tag: 'ref-active-referrer' });
      } else {
        tagActions.push({ action: 'add', tag: 'ref-active-referrer' });
      }
      break;

    case 'PARTICIPANT_REACHED_REWARD':
      tagActions.push({ action: 'add', tag: 'ref-earned-reward' });
      tagActions.push({ action: 'add', tag: 'ref-converted-referral' });
      break;
  }

  // Execute tag changes via ActiveCampaign API
  for (const { action, tag } of tagActions) {
    const tagId = await getOrCreateTag(tag);
    if (action === 'add') {
      await ac.api('contactTag/add', { contactId, tagId });
    } else {
      await ac.api('contactTag/remove', { contactId, tagId });
    }
  }
}

// Tag hierarchy enforcement
const tagHierarchy = ['ref-champion', 'ref-power-referrer', 'ref-active-referrer', 'ref-participant'];
// When adding a higher-tier tag, remove lower-tier tags

Tips

Use a Hierarchical Tag Structure

Design referral tags hierarchically so higher-tier tags replace lower-tier ones. When someone becomes a champion referrer, remove the active-referrer and power-referrer tags. This prevents tag bloat and ensures automations triggered by specific tiers only fire once at the right level.

Prefix All Referral Tags Consistently

Using a consistent prefix like ref- makes it easy to find all referral tags, manage them in bulk, and prevent collisions with other marketing tags. It also makes it simple for team members to identify referral-related tags when viewing a contact record.

Create an "Anti-Tag" for Program Opt-Outs

Add a ref-opted-out tag for contacts who explicitly decline the referral program. Use this tag to suppress them from future referral program invitations while keeping the door open for them to rejoin later. This respects user preferences and prevents annoying opt-out contacts.

FAQ

How many tags should I use for my referral program?

Start with 6-8 tags covering the essential states (participant, active referrer, power referrer, champion, referred lead, earned reward, opted out). Add more tags only when you have a specific automation or segment that requires them. Too many tags create maintenance burden without adding value.

Should I use tags or custom fields for referral data in ActiveCampaign?

Use both strategically. Tags are best for categorical/binary states (is a participant, has referred, earned reward) that trigger automations. Custom fields are best for quantitative data (referral count, join date, referral link) that you want to display and use in personalization. They serve different purposes.

How do I handle contacts who participate in multiple GrowSurf campaigns?

Add the campaign name to your tags: ref-participant-q1-2026, ref-participant-summer-promo. Alternatively, use a single set of tags and store the campaign name in a custom field. The first approach gives you campaign-specific automation triggers; the second keeps your tag list shorter.

Set up your refer a friend program with customer referral and affiliate program software that lowers your acquisition costs, increases customer loyalty, and saves you gobs of time.

Trusted by marketing and product teams at fast-growing B2C, fintech, and SaaS companies