From Silver to Gold: Turning SEO SaaS Upgrades into Loyalty Moments
This playbook shows how to turn SEO SaaS plan upgrades—like Silver to Gold—into automated, personalized journeys in Spreeflo that celebrate the moment, drive perk usage, and create clean data for retention and expansion.
Industry
Niche
Pattern
Loading sequence...
A customer jumps from $49 to $99 and your app quietly flips a plan flag in Stripe. Maybe a receipt goes out. Then… silence.
For an SEO SaaS, that “silent upgrade” is a missed loyalty moment. The user just voted with their wallet that your rank tracker, brief generator, or audit engine matters more to them than it did yesterday. If you don’t acknowledge that, you’re leaving lifetime value on the table.
The sequence at the top of this page is the whole journey, end to end. It’s built around a simple idea: when someone moves from Silver to Gold, you immediately celebrate it, explain what just changed, and gently nudge them to redeem the new perks that make Gold worth keeping.
Let’s walk through how to build that in Spreeflo, node by node, and how to adapt it for your own tier structure.
Why tier upgrades matter more than you think
Take RankPulse, our fictional 3‑person rank tracking SaaS doing ~$35k MRR. They’ve got three plans:
Silver: 500 keywords, 3 projects
Gold: 2,000 keywords, API access, priority refresh
Platinum: multi-domain, white label reports
Today, upgrades are handled by billing alone. A user moves from Silver to Gold, Stripe updates the subscription, and that’s that.
What they’re missing:
A clear “you’ve levelled up” story that makes the higher price feel good
Education on new features (API, more keywords, higher crawl limits) that actually drive stickiness
A trackable way to see who uses their new perks vs who upgrades for a single campaign and churns later
A good tier-up journey fixes all three. It uses customer detail you already have (plan, usage, account size) to speak to each upgrader like a real person, and it keeps working without extra headcount once you’ve set it up.
Step 1: Make “Gold” a clean segment, not a vague idea
Before you touch the journey, decide what “Gold” actually means in your data.
In Spreeflo, that definition lives in a segment. You can create it under Audiences using the same segment builder that powers journeys.
For RankPulse, “Gold tier” might be:
Contact attribute
plan_nameisGoldOR contact attribute
mrr_tierisGold(if you prefer billing language)
If you want it usage-based instead of plan-based (common in SEO tools), you might define:
Custom attribute
total_keywords_trackedgreater than 1000OR custom event
audit_generatedtriggered at least 10 times over all time
Whatever you choose, make sure the data is reliably updated:
Frontend: your app calls
Spreeflo.identify(email, { plan_name: 'Gold' })in the browser when the plan changes.Backend: your billing webhook posts a
plan_changedevent to the Spreeflo API and also keepsplan_nameandmrrattributes current.
Now create a saved segment “Tier: Gold” with that definition. The journey’s trigger will watch for contacts joining this segment — every time someone upgrades into Gold, they enter the flow.
Step 2: Trigger on “Join Segment (Tier: Gold)”
The first node in the sequence is a Join Segment trigger:
Node type: Join Segment
Segment:
Tier: GoldRe-enrollment: On
Why re-enrollment on? Because churn happens. An agency might downgrade to Silver during a quiet quarter, then move back up to Gold when a new client lands. You probably do want to celebrate that second upgrade: the context is different, and it’s a good time to reset expectations.
If you’re rigid about “one ceremony per lifetime,” you can turn re-enrollment off, but most SEO SaaS products benefit from treating every tier-up as a fresh commitment.
Once the contact joins Tier: Gold, they immediately move into the next node.
Step 3: Clean up tags so tiers are always obvious
Next, the journey standardizes how you mark tiers on the contact:
Remove Tag — take off the old tier
Add Tag — apply the new tier
Node type: Remove Tag
Tags:
tier_silverForce tag trigger: off (you don’t need downstream “removed tag” journeys here)
Node type: Add Tag
Tags:
tier_goldForce tag trigger: off
Why do this when you already have a segment? Because tags are quick to scan in your CRM, and they make ad‑hoc filters easier. You can also reuse tier_gold in other journeys (like VIP beta invites) without re-creating the tier logic.
If you manage more tiers (Bronze → Silver → Gold → Platinum), keep tags mutually exclusive: a contact should only ever have one tier_* tag.
Step 4: Update tier attributes for analytics and future journeys
Now we make the tier change visible as structured data:
Update Contact Attribute — set the tier name
Update Contact Attribute — record when this upgrade happened
Node type: Update Contact Attribute
Attribute:
loyalty_tier(TEXT)Update type:
UpdateValue: literal string
Gold
Node type: Update Contact Attribute
Attribute:
tier_upgraded_at(TIMESTAMP)Update type:
Set to now
These two attributes are small but powerful:
loyalty_tierlets you build future segments or campaigns and journeys that don’t care how someone got to Gold, only that they’re there.tier_upgraded_atlets you answer questions like “What’s churn look like 90 days after upgrade?” or “How many Gold customers upgraded in the last 30 days?”
Remember: Update Contact Attribute writes a static literal you configure when you build the node; it can’t “copy” the value from the event payload. That’s why you decide on a fixed string like Gold at design time.
Step 5: Alert your team when a valuable account upgrades
For many SEO SaaS products, Gold is where larger agencies and in‑house teams live. You may want a human to know about each upgrade.
Send Internal Email — notify sales or success
Node type: Send Internal Email
Recipient: a shared inbox like
sales@rankpulse.comorsuccess@…Content: include context fields such as current plan, number of projects, last login
This is your “heads up” to:
Check if the account is an agency managing multiple clients
Offer a quick onboarding call to configure API access or reporting templates
Tag a few accounts manually in your CRM for potential case studies
Because this is an internal email, it doesn’t affect what the customer sees. From their perspective, the first visible touchpoint is still the congratulations email.
Step 6: Send the “you’re Gold now” email that actually sells the upgrade
Send Email — the core tier-up message
Node type: Send Email
Send only once: on
Built with: Spreeflo’s email builder or a saved template
What should this email do for an SEO SaaS?
Think in three parts:
Acknowledge the moment
Translate features into outcomes
Drive a single, clear next action
“You’ve just levelled up to Gold at RankPulse — here’s what that gets you starting today.”
If you track company size or role, you can personalize: “Gold is where most of our SEO agency teams land.”
Instead of a raw feature checklist, frame it in how they work:
“Track up to 2,000 keywords so you can monitor every client and campaign.”
“Run technical audits 3x more often to catch issues before rankings drop.”
“API access for piping rankings straight into your internal reporting stack.”
Pull these claims from your own product, not generic copy. This is where detailed contact attributes pay off: segment by industry or use case so e‑commerce sites don’t get the same examples as B2B blogs.
The best CTAs trigger perk redemption directly:
“Connect Google Search Console to unlock full query data.”
“Add your next three client domains.”
“Generate your first Gold‑only content brief.”
Use AI personalization in Spreeflo to adapt subject lines or intro paragraphs to the contact’s usage: someone who already tracks 800 keywords gets different language from a brand-new agency that just added their first 50.
Step 7: Wait a few days, then check if they engaged
You don’t want to spam new Gold customers, but you also don’t want to assume they read or acted on the email. So the next two nodes are about timing and reading their behavior.
Time Delay — give them space
Node type: Time Delay
Value: 3 days
Unit: days
Three days is enough for most SEO teams to see the email, click around, and maybe try something new. If your cadence is slower (enterprise clients, monthly workflows), bump this to 5–7 days.
Check Email Activity — did they click?
Node type: Check Email Activity
Marketing email: the Gold tier-up email you just sent
Activities to branch on:
Link ClickedElse branch: everyone who didn’t click any link
This keeps it simple:
Branch A: people who clicked — they showed at least some intent
Else: people who didn’t — maybe they’re busy, maybe they didn’t care
You’ll handle these paths differently.
Step 8: Tag engaged upgraders for future VIP flows
For contacts in the “clicked” branch:
9a. Add Tag — mark perk interest
Node type: Add Tag
Tags:
tier_gold_perk_clicked
You now have a quick way to:
Build segments like “Gold + perk_clicked + >3 projects” for agency upsell campaigns
Compare churn between “clicked” and “didn’t click” cohorts over time
Trigger future VIP journeys only for people who actually engaged with their perks
You could also add a Webhook node here (Professional plan) to notify your CRM when a high‑value customer both upgrades and interacts with the email, but it’s optional at this stage.
After that tag, this path can end. You’ve captured the signal you need.
Step 9: For non-clickers, a single, focused reminder
For contacts in the else branch (no click after 3 days), you have a choice: leave them be, or send one more nudge. The sequence at the top of the page opts for a gentle reminder.
9b. Add Tag — mark non-engagement
Node type: Add Tag
Tags:
tier_gold_perk_not_clicked
This tag helps you answer “what percentage of Gold upgrades never even looked at the perks?” and prevents you from lumping them in with engaged Gold customers in future flows.
10. Time Delay — avoid feeling pushy
Node type: Time Delay
Value: 4 days
Unit: days
Now you’re a full week out from the upgrade. A follow-up here doesn’t feel like nagging; it feels like support.
11. Send Email — a short, pragmatic reminder
Node type: Send Email
Send only once: on
Content idea: “Quick ways to get ROI from Gold this week”
Keep it tight:
One paragraph acknowledging they’re busy
Three bullets, each a perk framed as a small win (“Add 3 more sites”, “Run a fresh audit”, “Generate a brief for next week’s post”)
One CTA that kicks off the easiest of those
This second email is optional. If your audience is very sensitive to marketing volume, you can stop at the first tier-up email and still get plenty of value from the earlier part of the journey.
Step 10: Measure what matters — tier-up rate and perk redemption
With this journey running, you can start treating tier-ups as a measurable lifecycle stage, not a binary “they upgraded or they didn’t.”
Two core metrics from the original pattern become easy to track:
Tier-up rate
Perk redemption per tier
Denominator: all active Silver customers in a given period
Numerator: contacts who joined the
Tier: Goldsegment in that period
Because the journey’s trigger is Join Segment, every upgrade is captured cleanly. You can slice by source (organic, content, affiliate) with tags or source attributes you already store in audiences.
Define one or two clear “redemption” events for Gold — for example:
generated_content_brieftriggered at least 1 time aftertier_upgraded_atOR
connected_search_consoleat least once post-upgrade
Track those as custom events via the SDK in your app or via the Spreeflo API from your backend. Then build segments:
“Gold + perk_clicked + redeemed_perk”
“Gold + perk_not_clicked + not redeemed”
This is where you see how much money you were previously leaving on the floor. The contacts who upgrade but never redeem perks are your churn risks. You can route them into separate re‑engagement journeys later.
Extending the pattern: Platinum, agencies, and long-time customers
The Silver→Gold journey is just one instance of this pattern. Once it’s in place, you can:
Clone it for Gold→Platinum by creating a
Tier: Platinumsegment and adjusting copy to focus on white label reporting, API caps, or multi‑brand management.Add a separate Join Segment journey for “Agency” if you tag certain Gold customers as agencies and want a more hands‑on sequence (manual outreach, scheduled onboarding).
Build anniversary-style journeys keyed off
tier_upgraded_atwith a Cyclic trigger that says “once a year, for everyone who upgraded to Gold a year ago, send a ‘here’s what you’ve achieved’ email.”
You’re using the same building blocks — segments, triggers, tags, and emails — to keep speaking to customers based on who they are and what they’ve done, not just what list they’re on.
The bigger win: from silent plan changes to lived-in loyalty
Most SEO SaaS products obsess over acquisition: more trials, more demos, more traffic. Meanwhile, high‑value moments like plan upgrades slip by with nothing but a Stripe receipt to mark them.
This journey flips that. By capturing detail on every customer — plan, usage, behavior — and wiring a simple tier-up flow on top, you:
Make each upgrade feel like a milestone, not a billing artifact
Teach customers how to actually use the things they’re paying more for
Create clean data you can use to spot churn risk and VIPs later
You build it once in Spreeflo and it runs quietly behind the scenes, turning every Silver→Gold jump into a chance to deepen the relationship instead of just increasing ARPU on a spreadsheet.
If you’re already tracking who’s on which plan and what they do in your app, you have everything you need to set this up. The only question is whether you want those tier-ups to be silent… or to be the start of your next wave of loyal, long‑term customers.