Skip to main content
This guide walks you through configuring an expansion job in Trig, with detailed explanations of why each configuration choice matters and how to think through decisions for your specific business.
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

MetricNew Customer AcquisitionCustomer Expansion
Sales cycle30-90 days typicalDays to weeks
Win rate15-25% typical40-60% typical
CAC payback12-18 monthsOften immediate
RelationshipBuilding trustTrust already established
Product knowledgeStarting from zeroAlready using and loving
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
Trig solves the timing problem by monitoring expansion signals in real-time and triggering outreach when conditions are optimal.

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?
Exit considerations:
  • They expanded (success!)
  • They declined and shouldn’t be asked again for X months
  • They churned (no longer relevant)

Example configuration

Stage Duration: Day 60 to ongoing (continuous monitoring)

Entry Criteria:
- Onboarding stage = Complete
- Customer tenure ≥ 60 days
- Customer health = Good or Excellent
- Current contract value > $0 (excludes free trials)

Exit Criteria:
- Customer completes expansion purchase (success)
- Customer explicitly declines (90-day cooldown)
- Customer health drops to At-Risk (moved to renewal job)

Step 2: Identify your expansion signals

Types of expansion signals

Signal CategoryWhat It IndicatesExamples
Limit-basedCustomer hitting constraintsApproaching seat limit, storage full
Usage-basedGrowing engagementActive users increasing, feature adoption expanding
Behaviour-basedExploring upgradeViewing pricing page, clicking upgrade buttons
Milestone-basedBusiness growthTeam size increased, new department added
Time-basedNatural expansion momentsAnniversary, renewal approaching (healthy customer)

Example: TeamFlow’s expansion signals

SignalHow We Detect ItExpansion OpportunityConversion Rate
Admin invite blockedinvite_blocked_seat_limit eventAdd seats (urgent)72% 🔴
Seat utilisation >85%active_users/licensed_seats > 85%Add seats or upgrade tier58% 🔴
Integration interest>3 integration page views/30 daysUpgrade to Business34% 🟡
Power users emerging3+ users with >20hrs/week usageUpgrade tier28% 🟡
Company growingCRM headcount up >20%Proactive expansion19% 🟢
Prioritise by conversion rate. A customer who just tried to invite someone and hit a seat cap is 72% likely to expand. That’s a hot lead—act immediately.

Step 3: Define expansion ownership

Ownership models

ModelHow It WorksBest For
Self-serve firstAutomated email → in-app upgrade flowSMB, low ACV, high volume
Sales-assistedSignal triggers sales outreachMid-market, complex pricing
CSM-ledCSM owns relationship + expansionEnterprise, strategic accounts
Tiered hybridRoute based on signal type or customer valueMixed customer base

Example: TeamFlow’s tiered routing

Signal TypeOwnerMotion
Seat limit (Starter/Pro)Self-serveAutomated email → in-app upgrade
Seat limit (Business+)CSMPersonal outreach
Tier upgrade interestSelf-serveAutomated email → in-app upgrade
Integration interestCSMDiscovery call, Business tier pitch
Power users (SMB)AutomatedEmail nurture toward tier upgrade
Power users (Mid-market)CSMBusiness review, expansion discussion
Enterprise signals ($25K+)AE + CSMJoint outreach, custom pricing

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

Condition: invite_blocked_seat_limit event firedTiming: Immediate (within 25 minutes)Cooldown: None (always trigger—this is urgent)Owner: Self-serve email + in-app prompt
Condition: seat_utilisation > 85% for 7+ consecutive daysTiming: Next business day, 10 AM customer timezoneCooldown: 30 days since last seat expansion messageOwner: Self-serve email
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)
Condition: power_users >= 3 for 14+ consecutive days AND tier ∈ [Starter, Professional]Timing: Next business dayCooldown: 60 days since last tier upgrade messageOwner: CSM outreach
Condition: tier = Business AND seat_utilisation > 80% AND contract_value > $25,000Timing: Route to AE within 24 hoursCooldown: 90 daysOwner: AE + CSM joint outreach

Step 5: Write your expansion messages

Message philosophy

Expansion messages should feel like service, not sales.
Feels Like SalesFeels Like Service
”Your account is ready for an upgrade!""I noticed you’re almost out of seats…"
"Unlock premium features today!""I saw your team trying to connect Slack…"
"Contact us to discuss pricing""Here’s a quick link to add more seats”

Example messages

This is TeamFlow’s highest-converting message because it arrives at the exact moment of need.
Subject: Quick fix for that invite issue

Hi {first_name},

I saw you tried to invite someone to [Product] but hit your
seat limit. Here's a quick link to add more seats so you can
get them in:

[Add Seats →]

Takes about 30 seconds. Let me know if you need anything else.

Sarah
Customer Success

Step 6: Configure internal notifications

Routing alerts

SignalRoutingSLA
Urgent seat expansionSelf-serve (automated)Immediate
High-value ($25K+) any signalCSM Slack DM + AE alert4 hours
Enterprise expansion signalsAE + CSM + Manager24 hours
Declined expansionLog for analysisN/A

Sample alert

🚀 Expansion Opportunity

Customer: Acme Corp ($28,000/year, Business tier)
Signal: Seat utilisation at 92% (23/25 seats)

Context:
• Added 5 users in last 30 days
• Using 8 of 12 advanced features
• No support tickets in 60 days

Recommended Action: CSM outreach for Enterprise conversation

📊 View in Trig → [link]
📞 Book Call → [link]

Step 7: Define success metrics

Metrics to track

MetricWhat It Measures
Signal-to-opportunity rate% of signals that become conversations
Opportunity-to-close rate% of conversations that expand
Time from signal to expansionHow quickly do they expand?
Expansion revenueTotal revenue from expansion jobs
Signal accuracyDo signals actually predict expansion?

Benchmarking

Signal TypeExpected Conversion
Invite blocked (urgent)60-80%
Seat utilisation >85%40-60%
Feature interest25-40%
Usage-driven upgrade20-35%
Proactive (company growth)15-25%

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