seojuice

SaaS Upselling and Cross-Selling Without the Hunted Feeling

Vadim Kravcenko
Vadim Kravcenko
Dec 12, 2024 · 13 min read

TL;DR: Most SaaS expansion revenue is lost before anyone writes an upsell email. The customer never activated, the value metric was wrong, or the add-on solved a problem the account did not have yet. The fix is almost never a better script. It is upstream, in pricing and onboarding, where nobody calls it expansion work.

I want to make an argument before I make a list, because the list is the part everyone already has. Here it is: if your expansion motion needs a clever rep and a quarter-end discount to work, the motion was already broken three steps earlier. The rep is just where it became visible.

Through mindnow I have watched a dozen SaaS teams try to fix weak activation with sales pressure. It always looks like a pipeline problem on the dashboard. It is almost always a sequencing problem in the product. On seojuice.com the question we keep returning to is not “what can we sell this account next?” but “what signal proves the customer is ready?” I learned the same thing the expensive way on vadimkravcenko.com: buying more tools never once made me get more value from the ones I already had. (The graveyard of half-onboarded annual plans in my own bank statements is evidence enough.)

The expansion you can see is the cheap part. The expansion you lose is upstream.

This is the whole article, so I will spend the most time here and rush the rest. When an upsell fails, it feels like the failure happened at the offer. It did not. It happened at one of three earlier moments, and by the time the offer arrives the outcome is mostly decided.

The first moment is activation. A customer who has not reached the first promised outcome should never be pitched into a bigger contract. That is not expansion. It is impatience wearing a revenue hat. Asking for more money before the first promise is kept reads exactly like what it is.

The second moment is the value metric. If a customer pays more because they are sending more emails, storing more data, or saving more hours, the upsell feels fair when it arrives. If they pay more because a pricing page invented a wall, it feels like a tax. The metric was chosen long before any rep got involved, which is why sales inherits the pain of a bad one.

The third moment is the trigger: behavior, not the calendar. The best time to expand is when behavior proves the current package has become the constraint. Not day 30. Not day 90. Not three weeks before renewal because the forecast needs it.

Lincoln Murphy has been arguing the customer-success-driven version of this for years, and his line is the cleanest statement of the whole sequence:

“When your customers achieve their Desired Outcome through their interactions with your company, that is customer success.” — Lincoln Murphy, Sixteen Ventures

Desired outcome first. Commercial motion later. Murphy is not making the soft point that customers should feel appreciated; he is explicit that customer success is a growth engine, not a hug delivery service:

“Customer Success-driven Growth – seeing Customer Success not as a way to make customers 'happy,' but as a true Growth Engine – is all about expansion.” — Lincoln Murphy, Sixteen Ventures

Set against Murphy is the pricing camp. Patrick Campbell, through the ProfitWell research, hammers the same upstream point from the money side: the value metric you pick decides how much expansion you can ever earn, and that choice is made before sales touches anything.

“If you're feature-differentiated, your expansion revenue (money coming from your existing user base) is actually much lower than those folks using a function value metric (such as cost per user) versus folks using an outcome value metric (cost per dollar I save you, or 100 dollars I bring you).” — Patrick Campbell / ProfitWell, ProfitWell research

These two are not in conflict. Murphy says expansion is a customer-success sequencing problem; Campbell says it is a pricing-architecture problem. Both are saying the same thing in different vocabulary: the upsell email is the last 5% of the work, and by the time you reach it you are mostly collecting on decisions made far upstream.

You can watch a healthy version in public. Slack’s Fair Billing Policy is the cleanest example I can point to of tying the meter to delivered value instead of to a wall: they automatically credit accounts for inactive users rather than billing for seats that sit idle. That is an upstream design choice, not a sales tactic, and it is what makes the eventual seat expansion feel earned rather than extracted. The PLG crowd, Wes Bush and the product-led growth camp, make the matching argument from onboarding: if the product does not surface the constraint and route the customer to the obvious next step, you are paying humans to do work the product should have done for free.

So here is the sequence the rest of this article assumes. I am writing it down once and then not repeating it as a framework graphic, because the point is that you internalize it, not that you laminate it:

  1. Desired outcome — what the customer actually hired the product to achieve.
  2. Success milestone — the moment they have proof of value.
  3. Expansion signal — behavior showing the current package is now too small.
  4. Offer — the plan, add-on, seat pack, or product that fits the next job.
  5. Guardrail — the condition that blocks the pitch if the account is not healthy.
SaaS expansion sequence diagram from desired outcome through success milestone, signal, offer, and guardrail
SOURCE: SEOJuice expansion reference, drawing on Lincoln Murphy's customer success-driven growth framework.

The guardrail is the step everyone skips, and it saves the account from your own ambition. If activation is weak, if usage is falling, if the champion has gone quiet, or if support tickets show unresolved confusion about the basics, the pitch waits. (Side note: the tell is always the same. A fat discount on a bigger plan, offered to a customer who has not finished onboarding. It buys 30 days of silence and costs you the account in Q2. I have signed off on this exact move and regretted it both times.)

Upsell and cross-sell are different motions, and the difference is the trigger

Quick, because the definitions are not the interesting part. Upselling asks the customer to buy a bigger version of what they already use: a higher tier, more seats, more usage, advanced controls. Cross-selling asks them to buy an adjacent product: a CRM customer buying marketing automation, an SEO customer buying content-refresh automation after pages start to decay. The definitions matter less than the signal. If the customer is bumping into a real ceiling, upsell. If a neighboring workflow has shown up in the product data, cross-sell. The motion works when the ask matches the customer’s next job, not when the account happens to be on a campaign list.

Motion What changes Good trigger Bad trigger
Upsell Same product, more value Limit reached or new team need End-of-quarter quota
Cross-sell Adjacent product or add-on Related workflow appears “They bought one thing, pitch another”

The upsell path that breaks most often: feature-tier gating

There are five upsell motions people like to name: seat, usage, feature-tier, support, and outcome. I am going to spend almost all of my space on one of them, because it is where I have personally done the most damage, and because the failure mode is the most seductive.

Feature-tier expansion is the maturity jump: SSO, audit logs, custom permissions, multi-workspace controls, advanced reporting, approval flows, compliance exports. The legitimate trigger is a customer trying to do mature work with immature tools. They have outgrown the simple version and are now doing real organizational work manually, in spreadsheets, around your product instead of inside it.

Here is where it goes wrong, and where I went wrong. Feature gating only creates an upsell path if the lower tier already delivers the core promised outcome. The moment you gate something the customer needs to reach that first outcome, you have not built an upgrade path. You have sabotaged your own activation so the upgrade looks necessary. The customer cannot tell the difference between “advanced feature for mature teams” and “they crippled the thing I actually need so I would pay more.” Honestly, neither could I, staring at our own pricing page later.

I have watched this exact failure on SEOJuice. We once gated a genuinely useful report behind the higher tier before the lower tier was useful enough to justify the account at all. The gating did not create an upsell path. It made people leave, and they churned quietly rather than angry, which is worse, because you never get the exit-survey signal that tells you why. We had confused “make the upgrade attractive” with “make the base plan worse,” and those are opposite strategies that look identical on a pricing matrix.

The fix was upstream, not in the offer. We moved the report back, fixed the base plan until it actually delivered the first outcome, then let the genuinely-mature features sit behind the wall. Expansion on that feature went up once we stopped using it as bait. That is the whole thesis in one product decision: the lever was three steps before the upsell, in what the base plan was allowed to deliver.

The other four motions, since I promised five:

  • Seat expansion surprises founders because the signal is admin friction, not a request: five people sharing one login, the admin quietly deleting old users to make room. The bad version nags every admin before the first team is even active.
  • Usage expansion fits infrastructure, AI, email, storage, and API products: consistent usage near plan limits. It only works when the meter tracks customer value, not vendor convenience.
  • Outcome expansion works when you can price against a result the customer cares about: revenue influenced, hours saved, incidents prevented, pages refreshed. They pay more because the result grew.
  • Support and service expansion belongs to higher-ACV accounts with real implementation risk. Premium support should de-risk a serious rollout, never charge people extra because the product is confusing.

Campbell’s number on value metrics is the reason the usage and outcome paths are worth getting right rather than defaulting to per-seat:

“Companies using value metrics typically grow at double the rate with half the churn and 2x the expansion revenue when compared to companies that charge a flat fee.” — Patrick Campbell / ProfitWell, ProfitWell research

Cross-sell, when it does not feel random

One rule covers almost all of it: cross-sell should mean the product now sees enough context to recommend the next workflow, not “show every customer every add-on.” When a support tool watches the same five issues generate tickets and then offers a knowledge-base add-on with draft articles, that does not feel like a pitch. The product is naming a friction the customer already feels every day.

The same logic covers role expansion (one team’s exports flow to another department every week, so widen the seats) and integration cross-sell (requests for warehouse sync, CRM sync, or compliance logging mean the product moved from “tool” to “system of record,” so the add-on solves coordination risk, not convenience). The multi-product suite is this idea at larger scale, and it only works when each product solves a genuine adjacent job rather than previewing churn behind a pricing page.

When to make the ask

Behavior beats the calendar. The triggers worth wiring up are the ones below; the rest is sales pressure with a timestamp.

Behavioral trigger matrix comparing good signals and bad calendar triggers for SaaS upsell and cross-sell timing
SOURCE: SEOJuice expansion reference, separating behavioral signals from calendar-driven sales pressure.
Trigger Likely motion Why it works
Repeated limit hits Upsell Customer has outgrown the current package
More users invited Seat expansion Value is spreading inside the account
Advanced feature workaround Tier upgrade Customer is doing mature work manually
New department activity Cross-sell The account’s job set is expanding
Integration requests Add-on or tier Product is becoming part of the operating system
Strong health score plus renewal window Expansion Trust exists before the commercial ask

Bad triggers are easy to spot: arbitrary lifecycle emails, quarter-end pressure, renewal hostage-taking, discount-led upgrades aimed at unhealthy accounts. The account may buy once. The downgrade arrives later, on a quarter where you have stopped watching. Campbell is blunt about the discount version:

“Discounts are pretty terrible for your unit economics. As the discount goes up, the churn rate goes up as well.” — Patrick Campbell, Turing Fest 2018

A discount closes the conversation by changing the price, not by proving the next package fits the next job. It is the upstream failure showing up at the worst possible moment, with a coupon attached.

Who owns it

Short version, because ownership is logistics, not strategy. Low-touch SaaS lets product and lifecycle marketing own most expansion: the UI detects the signal, explains the constraint, routes to a self-serve upgrade. Mid-market needs customer success to spot the milestone and sales to package the ask. Enterprise often needs account management on the commercial process, but customer success must keep veto power over timing. The risk is the one Murphy warns about: when expansion becomes quota-only, account managers start shoving products down customers’ throats, and expansion quietly becomes erosion.

ACV / motion Product Lifecycle CS Sales / AM
Low ACV usage upgrade High High Low Low
Seat expansion Medium Medium Medium Medium
Enterprise tier upgrade Low Low High High
Cross-sell suite Medium Medium High High

The only two numbers that keep you honest

Expansion bookings will lie to you. They look great in the quarter you book them and tell you nothing about whether they survive. Two numbers actually report what happened after the upgrade.

  • Net revenue retention. NRR = (Starting MRR + Expansion MRR - Contraction MRR - Churned MRR) / Starting MRR. Below 100% and your expansion is not outrunning the leaks, no matter how good the bookings looked.
  • Post-expansion churn and downgrade rate. If customers upgrade and then churn or downgrade, the offer was mis-sold, mistimed, or mispackaged. This is the number that catches the upstream failure you papered over with a discount.

For seojuice.com the expansion metric I care about is not “who clicked upgrade,” it is whether upgraded customers keep publishing, refreshing, and ranking more pages after the upgrade. If they upgrade and go quiet, the upgrade was a mistake we got paid for once.

Examples by product type

SaaS type Upsell example Cross-sell example Readiness signal
CRM More seats, advanced reporting Sales engagement add-on More reps and pipeline reports
Project management Portfolio tier Time tracking Multiple teams sharing workspaces
SEO software More tracked pages or AI refreshes Content planning or link monitoring Pages ranking but decaying
Support desk Automation tier Knowledge base Repeated tickets and SLA pressure
Data warehouse More compute Governance add-on Usage spikes and compliance needs
HR software Higher employee band Payroll add-on Headcount growth
Dev tool More usage or private repos Security scanning Team adoption and release volume
Email platform More contacts SMS or deliverability tools List growth and campaign frequency

Good: a support desk notices 40 percent of an account’s tickets are about the same five issues, offers a knowledge-base add-on with draft articles, and shows the expected ticket reduction. The offer names the friction. Bad: a CRM sees a customer bought the starter plan yesterday and pitches enterprise forecasting before the first pipeline is imported. That is not timing. It is automation with no manners.

What the message actually says

Write it around the customer’s current friction, not your feature list. Bad: “Upgrade now to unlock premium features.” Good: “You’ve hit the reporting limit three times this month. The next tier gives your team unlimited dashboards and scheduled exports, so finance does not have to ask marketing for manual CSVs every Friday.” (The Friday CSVs detail came straight out of a real support ticket. If it sounds oddly specific, that is because it is.) The good message does not beg. It explains why the next package removes a constraint the customer already feels.

The mistakes that make expansion feel predatory

  • Pitching before activation. You cannot expand value that has not arrived.
  • Confusing discounting with value. A cheaper upgrade trains the customer to negotiate instead of commit.
  • Locking the core outcome behind a higher tier. Gating maturity features is fine. Gating the basic promise breaks trust.
  • Sending every add-on to every customer. Relevance is the minimum bar.
  • Letting sales own timing without a customer success veto. Revenue pressure needs a health check.
  • Treating expansion as a renewal surprise. The customer should know the value story before procurement sees the number.
  • Measuring bookings without post-expansion retention. This celebrates future churn.
  • Calling every upgrade “AI” because the pricing page needed a new badge. (I am guilty of this one. We relabeled a feature in 2024 and customers noticed immediately.) People can smell it.

The reason any of this is worth the effort is leverage. Campbell’s framing is that small monetization and retention gains compound harder than acquisition:

“With that same 1% improvement in your monetisation or retention, all of a sudden we're looking at a world with 4-8x the impact.” — Patrick Campbell, Business of Software

That upside only exists if expansion is healthy. Bad expansion is not growth. It is delayed churn you booked early and will pay back with interest.

Earn the right to expand

This is the framework I would build for SEOJuice’s own expansion if we get there. We are not running a formal motion yet at our scale, two people and a $29 starting price, but the principle holds even for tiny SaaS: earn the right before you make the ask. And here is the harder question that sits underneath everything above, the one most SaaS teams cannot answer cleanly: do you actually know whether this customer reached the first outcome yet? Until that is measurable, the whole motion is theater, and the upsell email is just where the theater becomes obvious.

Before you pitch, ask Good answer
Has the customer reached the first promised outcome? Yes
What signal proves they need more? Usage, seats, workflow, integration, or maturity
Does the offer remove a real constraint? Yes
Who should own the ask? Product, lifecycle, CS, sales, or AM
Will we track retention after expansion? Yes

FAQ

What is the difference between upselling and cross-selling in SaaS?

Upselling moves an existing customer into a bigger version of the same product: more seats, more usage, higher tiers, better controls, or more support. Cross-selling adds a related product, add-on, or workflow beside the original purchase.

What is the best SaaS upsell strategy?

The best SaaS upsell strategy starts with a success milestone, then waits for a readiness signal. A customer who has reached value and keeps hitting a limit is a good candidate. A customer who is still confused is not.

How do you build a SaaS cross-sell strategy?

Start with adjacent workflows. Find the moments where product data shows a related job: repeated tickets, manual exports, new departments, integration requests, or compliance risk. Then offer the add-on that removes that friction.

Which metric matters most for expansion revenue?

Net revenue retention is the headline metric because it includes expansion, contraction, and churn across the current revenue base. Pair it with post-expansion churn and downgrade rate, or you may mistake short-term bookings for real growth.

When should customer success get involved in expansion?

Customer success should protect timing. Sales can own the commercial process, but CS should confirm the account is healthy, the outcome has been reached, and the offer fits the customer’s next job.

Related reading:

Want expansion that customers do not resent?

If your SaaS expansion motion depends on pressure, the system is already weak. Build the signal first, make the offer useful, and let the customer’s progress create the next sale. If you’re running SEO for a SaaS product and want to see which pages your customers actually return to, the free SEOJuice audit surfaces the engagement and decay signals that map to the readiness patterns above in the first scan.

Discussion (1 comment)

Emma Thompson, Growth Marketing Manager

Emma Thompson, Growth Marketing Manager

8 months, 2 weeks

The article’s framing of upselling as “showing better value” (not pushing) is spot on — in my experience running growth for B2B SaaS we used contextual in-app offers and a post-checkout micro-upgrade on Shopify to lift AOV without increasing churn. When you test this, prioritize timing (post-purchase vs. pre-checkout), segment by LTV, and measure ARPU + net retention; happy to connect and share our A/B test setup and results.