Worked Example: Throughout this guide, we’ll follow TeamFlow, a collaborative project management tool with tiered pricing (Starter, Professional, Business, Enterprise). TeamFlow has identified that their most efficient revenue growth comes from existing customers expanding—but their small sales team can’t monitor every customer for expansion signals.
Why expansion matters
The economics of expansion
Expansion revenue is often 3 to 5x more efficient than new customer acquisition. A customer hitting their seat limit is pre-sold—they’ve already decided your product works.
The timing problem
The challenge isn’t identifying that expansion opportunities exist—it’s identifying them at the right moment:- Too early: “Want to upgrade?” feels like a sales ambush
- Too late: They’ve already worked around the limitation or found an alternative
- Just right: “I noticed you’re running low on seats…” feels helpful
Step 1: Define your expansion stage
How to think about expansion stage boundaries
Entry considerations:- Has the customer completed onboarding?
- Are they healthy (not at-risk)?
- Have they been a customer long enough to form an opinion?
- They expanded (success!)
- They declined and shouldn’t be asked again for X months
- They churned (no longer relevant)
Example configuration
Step 2: Identify your expansion signals
Types of expansion signals
Example: TeamFlow’s expansion signals
Step 3: Define expansion ownership
Ownership models
Example: TeamFlow’s tiered routing
Step 4: Configure expansion triggers
Trigger design principles
- Specificity: One trigger per expansion type (don’t bundle seat expansion with tier upgrade)
- Confidence threshold: Multiple signal instances or combined signals for higher confidence
- Cooldown logic: Don’t re-trigger if already in an expansion conversation
- Timing sensitivity: Some signals are time-sensitive (blocked invite), others aren’t
Example trigger configurations
Trigger A: Seat Expansion (Urgent)
Trigger A: Seat Expansion (Urgent)
Condition:
invite_blocked_seat_limit event firedTiming: Immediate (within 25 minutes)Cooldown: None (always trigger—this is urgent)Owner: Self-serve email + in-app promptTrigger B: Seat Expansion (Proactive)
Trigger B: Seat Expansion (Proactive)
Condition:
seat_utilisation > 85% for 7+ consecutive daysTiming: Next business day, 10 AM customer timezoneCooldown: 30 days since last seat expansion messageOwner: Self-serve emailTrigger C: Tier Upgrade (Feature Interest)
Trigger C: Tier Upgrade (Feature Interest)
Condition:
integration_page_views > 3 in last 30 days AND tier ∈ [Starter, Professional]Timing: 48 hours after threshold crossed (let them explore)Cooldown: 60 days since last tier upgrade messageOwner: CSM (mid-market) / Self-serve (SMB)Trigger D: Tier Upgrade (Usage-driven)
Trigger D: Tier Upgrade (Usage-driven)
Condition:
power_users >= 3 for 14+ consecutive days AND tier ∈ [Starter, Professional]Timing: Next business dayCooldown: 60 days since last tier upgrade messageOwner: CSM outreachTrigger E: Enterprise Expansion
Trigger E: Enterprise Expansion
Condition: tier = Business AND
seat_utilisation > 80% AND contract_value > $25,000Timing: Route to AE within 24 hoursCooldown: 90 daysOwner: AE + CSM joint outreachStep 5: Write your expansion messages
Message philosophy
Expansion messages should feel like service, not sales.Example messages
- Seat Expansion (Urgent)
- Seat Expansion (Proactive)
- Feature Interest (Integrations)
- Usage-Driven Upgrade
- Enterprise (AE Intro)
This is TeamFlow’s highest-converting message because it arrives at the exact moment of need.
Step 6: Configure internal notifications
Routing alerts
Sample alert
Step 7: Define success metrics
Metrics to track
Benchmarking
Summary checklist
Expansion stage defined (entry after onboarding + healthy)
Expansion signals identified with conversion data
Ownership model defined (self-serve, CSM, hybrid)
Triggers configured with appropriate thresholds and cooldowns
Service-oriented messages written for each signal
Internal routing configured for high-value opportunities
Success metrics defined
Next steps
Configure Renewal Jobs
Proactive renewal management that prevents churn
Building Jobs Guide
Detailed guide on job configuration