Back to Playbooks

Turn NPS Scores Into Saved Accounts and Public Proof: A Routing Journey for SEO SaaS

Free

A detailed Spreeflo journey for SEO SaaS teams to route every NPS response into targeted automation branches. Turn promoters into public reviews, flag detractors for fast human follow-up, and guide passives toward long-term product success.

Industry

Niche

Pattern

Loading sequence...

Your best customers are literally telling you how they feel about your product, and most of that signal dies in a dashboard.

For an SEO SaaS like RankPulse or BrieflySEO, every NPS response is a flashing light: “turn me into a review,” “I’m about to churn,” or “I’m on the fence.” The sequence at the top of this page is the whole journey, end to end, for catching those signals and acting on them automatically.

This playbook walks through that journey node by node so you can turn NPS from a vanity score into more reviews, fewer cancels, and a healthier MRR line.

Why NPS is too valuable to leave in a spreadsheet

If you’re running an SEO tool, your growth and churn are tied to a few things:

  • How fast people hit their “aha” moment (first rankings checked, first brief generated)

  • Whether they feel the product keeps making their job easier month after month

  • Whether bad experiences get spotted before they silently churn

NPS responses cut straight through all your proxy metrics. A 9–10 means “I’d bet my reputation on you.” A 0–6 usually means “I’m one friction away from canceling.”

Most teams:

  • Look at NPS quarterly.

  • Maybe send a one-off email to some detractors.

  • Never systematically convert promoters into reviews or case studies.

That’s wasted customer detail and a classic lifetime-value leak.

The journey you see above fixes that by doing three things the moment an nps_response comes in:

  1. Routes promoters into a review request branch.

  2. Routes detractors into a customer-success outreach branch.

  3. Tags everyone so you can speak to each group differently later.

We’ll build this as a continuous journey in Spreeflo, not a one-off campaign, so it runs quietly in the background for every account. If you’re new to the canvas UI, the overview of campaign and journey automation is a good quick primer.

Step 0: Get NPS responses into Spreeflo as a behavioral event

Before the journey can do anything, Spreeflo needs to see the NPS responses.

In this pattern we assume you’re collecting NPS in a tool you don’t fully control (e.g. Delighted, AskNicely, or a module in your billing app), and that tool sends results to your backend.

From there you have two clean options:

  • If your backend handles the NPS webhook, have it POST each response into the events endpoint of the Spreeflo API with:
    - event: "nps_response"
    - email: "user@example.com" (or a user ID Spreeflo can map)
    - properties: { score: 0–10, comment: "...", source: "delighted" }

  • If NPS is a custom widget in your web app, call Spreeflo.track('nps_response', { score, comment }) from the browser when a logged-in, identified user submits their score.

Either way, the important piece is consistency:

  • Every response produces a nps_response event tied to a contact.

  • The event has a score property (0–10). Optionally, you can also send a segment property set to "promoter", "passive", or "detractor" if your NPS tool does that for you.

Once Spreeflo is ingesting these events, you’re ready for the journey.

Step 1: Custom Event trigger on every NPS response

Node: Custom Event trigger
Event name: nps_response
Re-enrollment: ON

This is the entry point for the journey. Configure the trigger to fire whenever Spreeflo receives a nps_response custom event for a contact.

Leave property conditions off at the trigger level. You want every score, from furious 0 to ecstatic 10, to enter the journey so the next node can route them correctly.

Set Re-enrollment to true. An NPS program is recurring by design; if you run it twice a year you want the same customer to be processed each time they respond. Spreeflo will still prevent duplicates while a contact is mid-journey, but this toggle lets the flow run again once they’ve exited.

Why this matters for SEO SaaS:

  • NPS on a long-term rank tracking account tells you if your “always on” value is holding up.

  • NPS on a brand-new BrieflySEO subscriber tells you whether your onboarding is landing.

Step 2: Multi-way Split into promoter, passive, detractor

Node: Multi-way Split
Conditions: three branches based on NPS segment

You now want to fork the journey into three distinct experiences. A Multi-way Split is the cleanest way to do that.

Use Spreeflo’s segment builder inside each branch condition, referencing Custom Events:

  • Promoter branch (e.g. branch name: promoter):
    - Custom event nps_response
    - score GREATER_THAN or IS rules to capture 9–10

  • Passive branch (passive):
    - score equal to 7 or 8

  • Detractor branch (detractor):
    - score less than or equal to 6

If your NPS tool already passes a segment property ("promoter", "passive", "detractor"), you can simplify each condition to “Custom event nps_response WHERE property segment is promoter,” and so on.

Order the branches clearly in the Multi-way Split config: promoters first, passives second, detractors third, with an else branch catching anything unexpected (missing data, malformed score). You can route the else branch to a tag-only path or an internal alert.

Design rationale:

  • Using event properties here keeps the logic grounded in the actual response, not a static contact field that can drift over time.

  • The split holds the whole journey together visually; every subsequent node clearly belongs to one emotional state.

Promoter branch: turn satisfaction into public proof

Promoters are gold for an SEO SaaS. They tend to be the ones who have seen ranking lifts, smoother reporting, or happier clients because of your tool.

We’ll use three elements here:

  1. Tagging

  2. A review request email

  3. A check on whether they actually clicked

3A. Tag the contact as a promoter

Node: Add Tag
Tags: nps_promoter

The first action is purely data hygiene. An Add Tag node right after the promoter branch marks the contact for all future segmentation:

  • Build a “NPS Promoters” segment for early access features.

  • Exclude them from certain churn-prevention flows.

  • Later, run a referral campaign for this exact group.

This speaks directly to Spreeflo’s core idea: capture detail on every customer so you can speak to each uniquely.

3B. Send a focused review request email

Node: Send Email
Spacing: This is the first outbound message on this branch, so no delay is needed before it.

Use Spreeflo’s email builder to create a simple, plain-feeling email:

  • Subject: “Quick favor?” or “Can you help another SEO team find us?”

  • Body:
    - Thank them for their feedback.
    - Acknowledge their specific use case (“Agency reporting is smoother now that you can track 2,000 keywords by client.”).
    - Include one clear CTA button to your preferred review platform (G2, Capterra, Product Hunt, etc).

Set “Send only once” on this node so a contact doesn’t get duplicate asks if they respond promoter multiple times in a short period.

3C. Wait, then branch on email activity

Node: Time Delay
Value: 3 days

Node: Check Email Activity
Email: the review request
Branches: clicked_review_link, else

A couple of days later, insert a Check Email Activity node:

  • Create a positive branch for “Link Clicked.”

  • Let everyone else fall into the else path.

On the clicked_review_link branch you might:

  • Add a left_review tag.

  • Optionally send an internal email to yourself or a teammate with the subject “New likely review from {company}” so you can keep an eye on that account.

On the else branch, you can choose to:

  • End the journey (one ask is enough), or

  • After another Time Delay, send a lighter “Any chance you’d still be up for leaving a quick review?” follow-up.

Make sure there’s always at least a 1-day Time Delay node between every Send Email on the same path to avoid feeling spammy.

Detractor branch: triage, respond, and try to save the account

Detractors are where you hemorrhage MRR if you’re not careful. A low NPS on a rank tracking or technical audit tool usually means broken expectations: data they don’t trust, a feature gap, or an onboarding miss.

This branch focuses on two things:

  1. Making sure a human sees the issue fast.

  2. Giving the customer a direct line back to you.

4A. Tag the contact as a detractor

Node: Add Tag
Tags: nps_detractor

Again, start with an Add Tag node on the detractor path. This tag becomes:

  • A filter for your churn-risk dashboards.

  • A condition for dedicated win-back campaigns later.

  • Input for prioritizing product improvements (“show me all detractors mentioning ‘site audits’”).

4B. Alert customer success or the founder

Node: Send Internal Email

Send an internal email to your “success@” inbox or directly to the founder, with:

  • Customer name, email, company, plan, MRR.

  • NPS score and the free-text comment.

  • Recent key events: last login, last keyword added, last brief generated (if you track them as custom events).

Because internal emails don’t hit the customer, you can send this immediately without a delay. It creates an instant to-do in your real workflow: “call this person,” “reply personally,” or “investigate their complaint.”

4C. Follow up personally with the customer

Node: Time Delay
Value: 1 hour

Node: Send Email
From: Founder or Head of Product persona

After a short Time Delay (an hour is enough to avoid two emails hitting at the same timestamp), send a simple, non-templated-feeling message from a real person:

  • Subject: “Mind if I ask 2 quick questions?”

  • Body:
    - Acknowledge that they gave you a low score.
    - Thank them for being honest.
    - Ask one or two specific questions, not a vague “any feedback?” (e.g. “Was it data accuracy, speed, or workflow where we fell short?”).
    - Invite them to reply directly.

Later, you can build a separate journey with an Email Action trigger on “Replied” to this email, tagging “nps_save_conversation_started” so you can measure how many detractors engage.

Passive branch: tip the fence-sitters toward success

Passives (7–8) are a quieter risk: they’re not angry enough to complain, not happy enough to rave, and very likely to leave if a cheaper or shinier SEO tool appears.

You don’t need a big play here, but you should do something intentional.

5A. Tag passives for future segmentation

Node: Add Tag
Tags: nps_passive

As with the other branches, tag them immediately. Over time this lets you answer questions like:

  • “How many passives eventually upgrade?”

  • “Do passives cluster around certain features or plans?”

5B. Send a value-building nudge

Node: Send Email

Send a short email focused on one thing that usually moves people from “it’s fine” to “this is crucial” for your product:

  • For a rank tracker: a short guide on setting up alerts for big ranking drops.

  • For a content brief SaaS: a walkthrough of turning briefs into a repeatable content calendar.

  • For a technical SEO platform: a way to turn your crawl reports into client-ready PDFs.

This isn’t a generic nurture email. It’s the one action that, based on your data, tends to correlate with long-term retention. Space it out properly: it’s the first outbound on this path, so no delay is needed here, but if you plan a second email later, insert at least a 1-day Time Delay first.

Shared utilities: attributes, segments, and follow-on journeys

Once this journey is in place, your audience becomes richer in two key ways:

  1. Every contact now has one of nps_promoter, nps_passive, or nps_detractor tags (and possibly a left_review tag).

  2. Every NPS response is mapped to a contact’s activity history.

You can build saved segments off those tags for new campaigns and journeys:

  • “All NPS promoters on the Agency plan” → invite to beta features that improve reporting.

  • “NPS detractors who visited /pricing in the last 7 days” → targeted outreach before they downgrade.

  • “NPS passives who have never generated a content brief” → an educational onboarding sequence.

If you also want to store the latest NPS score as a contact attribute (for reporting outside of event views), make sure your NPS integration sends that value as part of an identify or contact-update call into Spreeflo. The Update Contact Attribute node is great for writing static literals or numeric increments, but it doesn’t pull dynamic values out of events, so the upstream system should keep latest_nps_score in sync.

This is the bigger pattern at work: the more granular your customer data, the more precisely you can tailor copy, timing, and offers. Spreeflo’s job is to turn that granularity into automated behavior instead of one-off manual campaigns.

Measuring success: from NPS number to NPS revenue

Three core metrics tell you if this NPS routing journey is doing its job:

  1. NPS response rate
    - How many nps_response events you see versus how many surveys you send. If you’re not getting responses, no journey can help. Use your NPS tool and Spreeflo’s web analytics side by side here.

  2. Promoter-to-review conversion
    - Among contacts tagged nps_promoter, what share end up with left_review or at least “clicked review link”? That’s your new “public proof” pipeline, and you can track it simply by counting tags or using segments in Spreeflo’s audiences view.

  3. Detractor save rate
    - For detractors, define a “save” as “still an active paying customer 30 or 60 days after the NPS response” or “upgraded instead of churning.” You can approximate this by combining the nps_detractor tag with plan and activity data in your own reporting, while the journey guarantees every detractor at least gets timely attention.

Over time, you should see:

  • More fresh reviews showing up on the platforms that drive signups.

  • Fewer surprise churns from customers who “never heard from you” after a bad experience.

  • A clearer map of which features move people from detractor → passive → promoter.

If you already have a sense of your contact volumes and want to sanity check cost, the breakdown in about Spreeflo pricing plans explains how marketing contacts are counted for journeys like this.

Bringing it back to the bigger game

For an SEO SaaS, NPS isn’t a quarterly slide in an investor deck. It’s a live feed of who might churn, who might expand, and who might send you your next ten customers.

Routing each NPS response through a journey like the one at the top of this page does two things:

  • It respects the detail you’ve captured on every customer by turning “score + comment” into tailored follow-up, not a generic mass email.

  • It plugs one of the quieter leaks in your lifetime value: unhappy or lukewarm users who would have stayed if someone had reached out at the right moment.

You don’t need a big success team to run this. You need one well-designed automation that catches every signal, every time, and lets your small team focus on the conversations that matter.

When you’re ready to move NPS from dashboard to driver, this is a journey worth building once and letting it work for you indefinitely.