Back to Playbooks

One Referral Event, Two Perfect Emails (SEO SaaS Referral Trigger Playbook)

Free

Playbook showing how to turn every successful SEO SaaS referral into two automated journeys in Spreeflo: one for advocates and one for referred users, so you track referrals properly, send tailored emails, and improve activation and conversion.

Industry

Niche

Pattern

Loading sequence...

A good SEO SaaS gets referrals by accident. A great one turns every single referral into a mini campaign.

Picture this: RankPulse, a 3-person rank-tracking startup doing ~$40k MRR, has a “give 1 month, get 1 month” referral program. Users share links. New trials trickle in. But there’s no consistent “thank you” to the advocates, and the referred users drop into the same generic trial welcome flow as everyone else.

Referrals feel warm, but they perform like cold signups.

The sequence at the top of this page is the whole journey, end to end. One event from your product triggers two distinct flows: a tailored “thanks for referring” to the advocate and a tuned welcome/onboarding to the new contact.

This article breaks that journey down node by node so you can wire it into your own SEO SaaS: rank tracking, briefs, audits, whatever you sell.

Why referrals deserve their own automation

A referred trial is not just “another signup from Organic / Direct.”

For an SEO tool, referrals tend to share three traits:

  • They come from your best customers: power users who rank for hard keywords, agencies who trust your data, or in-house teams basing strategy on your reports.

  • They arrive pre-sold: someone already explained your value, usually in language more credible than your own landing page.

  • They skew high LTV: referred users who activate tend to stick, because they share profile and intent with the advocates.

And yet most teams:

  • Don’t distinguish “referred” from “non-referred” in their CRM.

  • Send the same onboarding to everyone.

  • Forget to acknowledge or reward the advocate in a timely way.

That’s a classic lifetime-value leak. You earn the referral once, then treat it like a random sign-up.

The pattern here fixes that in two ways:

  1. It captures referral detail at the contact level so you can speak differently to advocates and referred users later.

  2. It nurtures both sides of the referral moment so you’re not wasting your highest-intent leads.

The core idea: one referral event, two paths

Let’s translate the pattern into plain language first.

When a referral is successful (however you define “successful” in your product), your backend posts a single referral_converted event into the Spreeflo API. That event carries enough context to know:

  • Who the advocate is.

  • Who the new referred contact is.

  • Which “side” of the referral this particular event is about.

In Spreeflo, you build a single Journey with two separate Custom Event triggers that listen for that same event name:

  • Trigger A: fires for the advocate and runs a short “thank you + reward” branch.

  • Trigger B: fires for the new contact and runs a “you were referred, here’s your tailored onboarding” branch.

Because the journey is continuous, this runs forever in the background. Every time a referral converts, both parties get the right email, automatically.

Let’s wire that up.

Step 1: Get a clean referral event into Spreeflo

First, decide what “successful referral” means in your product:

  • For a rank tracker: maybe when the referred account adds their first domain and pulls initial SERP data.

  • For a content-brief tool: when the referred user generates their first brief.

  • For an audit platform: when they run their first full site crawl.

You don’t want to trigger on “signed up but ghosted.” You want “hit first value.”

When that happens, have your backend POST to the Spreeflo API twice:

  • Once with the advocate as the contact (the email Spreeflo should map the event to).

  • Once with the referred user as the contact.

Use the same event name (for example, referral_converted) and differentiate the two with a property such as role = advocate vs role = referred.

Conceptually:

  • Event 1: contact = advocate email, event = referral_converted, property role = advocate.

  • Event 2: contact = referred email, event = referral_converted, property role = referred.

You can also include other properties you care about (plan, reward amount, etc.) for analytics later.

Once that’s going, those events will be visible in Spreeflo and available to Custom Event triggers.

Step 2: Build the advocate path (thank, track, and encourage)

Now you switch into the visual editor to build a journey.

2.1 Custom Event trigger for advocates

Drop in a Custom Event trigger for the advocate side:

  • Event name: referral_converted.

  • Property condition: role is advocate.

  • Re-enrollment: turn this on.

Re-enrollment matters. You want a referrer who brings you 10 agencies over a year to get this sequence every time a referral converts, not only the first time.

Behind the scenes, re-enrollment is journey-scoped, so this setting explicitly allows this trigger to enroll the same advocate again after they exit the journey.

2.2 Increment their referral count

Next, connect an Update Contact Attribute action.

Create a number attribute on your contacts called something like referral_count. Then configure:

  • Attribute: referral_count.

  • Update type: INCREMENT.

  • New value: 1.

Because this value is a static literal, every time the node runs it simply adds 1 to the advocate’s existing referral_count. Over time, this becomes the single source of truth for “how many successful referrals has this person brought in?”

That’s your foundation for VIP treatment later.

2.3 Tag them as a referrer

Right after that, add an Add Tag action:

  • Tags: at least referrer, and optionally something like referral-program-2024.

You can manage tags centrally from the tags help doc, but the key idea here is binary: has this person ever successfully referred someone?

That tag lets you:

  • Filter segments of “referrers vs non-referrers.”

  • Suppress referrer recruitment emails to people who are already active advocates.

  • Trigger other journeys later based on tag changes.

You don’t need re-enrollment logic here; the tag will simply be present.

2.4 Send the “thank you” email

Now the fun part: drop a Send Email action.

A few details worth getting right:

  • Sender: choose the identity that feels personal. For low-volume SEO SaaS, “founder@” often works better than “no-reply@.”

  • “Send only once”: turn this off. The default is on, which would block this email on second and later referrals. You want advocates to feel thanked every time they bring you business.

  • Content: build it in Spreeflo’s email builder.

For advocates, the copy should:

  • Acknowledge the behavior: “You just referred someone to [Product].”

  • Make the reward tangible: “We’ve added 1 free month to your account” (or whatever your offer is).

  • Reinforce why referrals matter: “Teams who use [Product] together tend to see better rankings across the board.”

You don’t need any further steps on this path for the base pattern. They get their thanks, their counter ticks up, and your data stays neat.

Step 3: Build the referred-user path (welcome like you mean it)

Next, wire the branch that handles the referred user.

3.1 Custom Event trigger for referred users

Add a second Custom Event trigger to the same journey (separate, unconnected trigger):

  • Event name: referral_converted.

  • Property condition: role is referred.

  • Re-enrollment: leave this off.

A referred user should only get this exact onboarding once, even if something odd happens with duplicate events.

Now you have two independent entry points in one journey: one for the advocate, one for the referred contact.

3.2 Mark acquisition channel and referral status

From the referred trigger:

  1. Add an Add Tag action:
    - Tags: referred, and optionally acquisition-referral.

  2. Add an Update Contact Attribute action for acquisition channel:
    - Attribute: a TEXT attribute like acquisition_channel.
    - Update type: Append.
    - New value: referral.

This is pure data discipline: you’re capturing how this user found you at the attribute and tag level so you can speak to them differently later.

Because Append uses a static string, everyone through this path gets “referral” attached in a consistent format.

3.3 Send a referral-aware welcome email

Now add a Send Email node for the initial welcome.

Keep “Send only once” on; nobody should receive the same welcome twice.

The difference from your generic trial welcome is tone and offer:

  • Subject: reference the referral and the benefit. For example, “You were invited to [Product] — here’s your extra month.”

  • Body:
    - Acknowledge who referred them in general terms (“A teammate recommended [Product] to you”) even if you don’t name them.
    - Re-state the promise that made them click: extra month, shared project, agency workflow, etc.
    - Give one clear next step tied to your core value: “Connect your domain and track 10 keywords” or “Paste your next content brief URL.”

  • Under the hood, this email uses the same rendering pipeline as any other marketing email, so you can bring in contact attributes and AI-powered copy personalization if you wish. The win is that it’s only going to people tagged referred.

3.4 Time the second touch

After the welcome email, insert a Time Delay:

  • Duration: 2 days.

  • Unit: Day(s).

This respects inboxes and gives the referred user space to actually try the tool before you nudge them again.

You now have a path like:

Trigger → Tag + attribute → Welcome email → [2-day delay] → …

3.5 Branch on activation vs non-activation

Two days after the welcome, split users based on whether they’ve hit your activation event.

Add an If/Else process node with a condition using the segment builder:

  • Condition:
    - Category: Custom Events.
    - Event: your activation event (for example, added_first_keyword or generated_first_brief).
    - Operator: “at least 1 time”.
    - Time window: “over all time.”

If true: they’ve activated.
If false: they haven’t done the core action yet.

This gives you two branches without changing your product instrumentation.

3.6 Send behavior-specific follow-ups

On the “activated” branch, connect a Send Email action:

Purpose: deepen engagement and surface more value.

Example angles:

  • Highlight advanced features (alerts, white-label reports, API).

  • Introduce your referral program more explicitly now that they’ve seen value.

  • Invite them to a “how agencies use [Product]” webinar if that fits your motion.

On the “not activated” branch, connect a different Send Email:

Purpose: unstick them.

Example angles:

  • Short checklist: “Three steps to get value from [Product] in 10 minutes.”

  • Offer a loom video or template for their first project.

  • Ask a simple question: “What’s blocking you from tracking your first keyword?”

Because the Time Delay sits before the If/Else, every path respects the spacing rule: nobody goes from one Send Email to another without at least a 2-day gap.

Step 4: Measure referral activation and referred conversion

With the journey live, you can start treating referrals as their own growth channel, not a fuzzy “nice to have.”

Two simple metrics to watch:

Referral activation rate

Definition: among referred signups, what share hit your activation event within a reasonable window?

In Spreeflo, you can compute this with two segments using the segment builder:

  • Segment A (denominator): contacts where
    - Tags contain referred.

  • Segment B (numerator): contacts where
    - Tags contain referred, and
    - Custom event added_first_keyword (or your equivalent) triggered at least 1 time in the last 14 days.

Activation rate ≈ |Segment B| ÷ |Segment A|.

If this number is low, your referred welcome and follow-up need tightening. You’re burning social capital from advocates without getting trials to first value.

Referred conversion rate

Definition: among referred signups, what share become paying customers?

Again, define two segments:

  • Referred signups (as above).

  • Referred paying customers:
    - Tags contain referred, and
    - Either custom event upgraded_plan triggered at least 1 time over all time, or a contact attribute like plan_type is one of your paid tiers.

The ratio between these is the real ROI of your referral program. The journey you just built is how you move it upward over time.

Because you tagged and attributed contacts on entry, you can now slice almost any performance report across “referred vs non-referred” without touching your product again.

That’s what “capture detail on every customer so you can speak to each uniquely” looks like in practice.

Adapting this pattern to your specific SEO SaaS

The skeleton of the journey is stable:

  • Custom Event triggers for advocate and referred user.

  • Data capture (tags, attributes).

  • Timed, behavior-aware emails.

What changes is the specifics:

  • Activation event:
    - Rank tracker: first domain added, daily rank refresh run.
    - Content brief tool: first brief fully generated and exported.
    - Technical SEO tool: first crawl completed without errors.

  • Messaging:
    - Agencies care about multi-client workflows and reports.
    - In-house SEOs care about collaboration with content and dev.
    - Solo site owners care about “don’t lose your weekends to audits.”

You can reflect that inside the same referred-user path by inserting a Multi-way Split on a contact attribute like customer_type or primary_use_case, and sending slightly different emails on each branch. The data you already store for onboarding becomes routing logic in the journey.

The point isn’t to build something ornate for its own sake. It’s to stop treating your highest-intent leads and your best advocates as “just another email address.”

The quiet compounding effect

Most SEO SaaS founders obsess over acquisition: new visitors, trial signups, demo requests. Referrals get a line item on a slide, maybe, but not a system.

This journey is that system.

You wire the referral_converted event into the Spreeflo API once. You set up one journey with two clear paths. From then on:

  • Every advocate is thanked, tracked, and ready for future VIP treatment.

  • Every referred user gets a welcome and nudge tailored to how they arrived.

  • You can see, in hard numbers, whether referrals are producing active, paying users.

For a founder-led team with limited time, that’s the kind of automation that quietly compounds. You build it once, and it plugs a leak you probably didn’t realize was costing you real lifetime value.

When you’re ready to stop treating referrals like background noise, open the journey editor and make the sequence at the top of this page real for your own product.