Expansion Opportunity Detection Workflow: Upsell Signals to CSM Plays
Expansion revenue is the cheapest growth there is, and most of it is missed because the signals live in product analytics no CSM has time to read. The workflow pulls usage, seat counts, feature adoption, plan-limit proximity and buying signals for every account, scores expansion readiness weekly, and gives each CSM a short ranked list with the recommended play and a drafted opening message.
Written by Max Zeshut
Founder at Agentmelt · Last updated Sep 11, 2026
The problem
Upsell conversations happen when the customer asks — usually at renewal, when leverage is lowest. CSMs manage 40–80 accounts and cannot monitor usage for all of them. Expansion playbooks exist on paper and are executed inconsistently.
What changes when it runs
Every Monday each CSM opens a list of five to ten accounts ranked by expansion readiness, each with the signal that put it there (“at 92% of seat limit, three new departments active”) and the play to run. Expansion pipeline created per quarter goes up because opportunities are surfaced when the customer is already growing, not when the contract ends.
Trigger, then 7 steps
Trigger
Schedule Trigger (weekly) + instant triggers
Weekly scoring run; instant Webhook triggers for high-value signals like hitting a plan limit or a pricing-page visit by an admin.
Pull usage and account data
HTTP RequestActive users, seats used vs. purchased, feature adoption, API/usage volume vs. plan limits from product analytics and billing; ARR, plan, renewal date and owner from the CRM.
Pull engagement and buying signals
HTTP RequestPricing-page visits, webinar attendance, support questions about premium features, new integrations connected, and firmographic changes (funding, hiring) from enrichment tools.
Compute the readiness score
CodeWeighted score per account from usage growth, limit proximity, adoption breadth, engagement and buying signals; weights per segment live in a sheet the RevOps lead can tune.
Match to a play
SwitchSignal pattern → play: seat expansion, tier upgrade, add-on module, multi-year, or a 'not yet' hold. Each play has a target offer, a talk track and a timing rule.
Draft the opener
AI AgentFor each account on the list the agent writes a three-sentence opener for the CSM, grounded in the account's actual usage and phrased as help, not a pitch. CSMs edit before sending.
Route to the owner
HubSpotCreates or updates an expansion opportunity on the account with the score, signals and play; posts the CSM's weekly list to Slack.
Track outcomes by signal
PostgresEvery surfaced opportunity is tracked to won/lost/ignored, so the score weights are tuned quarterly from what actually converted.
Data it touches
- Product analytics (Amplitude, Mixpanel, Pendo, PostHog)
- Billing and entitlements (Stripe, Chargebee, in-house)
- CRM accounts, ARR, renewal dates, owners (HubSpot, Salesforce)
- Web analytics (pricing-page visits) and enrichment (Clearbit, Apollo)
Guardrails
- Scores explain themselves — each account shows the signals behind it.
- Accounts with an open escalation, a churn-risk flag or a renewal within 30 days are excluded or routed to a different play.
- The agent drafts openers; CSMs send them. No automated upsell emails.
- Weights are tuned from tracked outcomes, quarterly, by RevOps.
The signals that actually predict expansion
Across SaaS businesses the same handful of signals precede expansion: seat utilisation above 80–90% of the purchased amount; usage growing month over month for three months; adoption spreading to new teams or departments; hitting or approaching a plan limit (API calls, storage, projects); admins visiting the pricing page; and support questions about features on a higher tier. Firmographic signals — a funding round, a hiring spike — are weaker but useful for timing. The score is simply a weighted combination, and the weights should come from your own won/lost history, which is why the workflow tracks outcomes from day one.
Why the CSM stays in the loop
Automated upsell emails from a usage trigger feel like a vending machine and damage the relationship that makes expansion easy. The workflow's output is a list and a draft, not a send. The CSM reads why the account is on the list, edits the opener so it sounds like them, and decides when to send. What the workflow removes is the reading — the hours of scanning dashboards to find the five accounts worth a conversation this week.
Product-led variation
For self-serve products, the same score can drive in-app prompts: an account at 90% of its seat limit sees a contextual upgrade message, a team using a premium feature on trial gets a nudge before it ends. That path is a custom build because it touches your product, and it needs an approval rule so the in-app message only fires where a CSM would not be reaching out.
Tools in the stack
| Tool | Role in this workflow |
|---|---|
| n8n | Data pulls, scoring, routing, tracking |
| Amplitude / Mixpanel / Pendo | Usage signals |
| HubSpot / Salesforce | Opportunities and owners |
| Claude | Opener drafts |
| Google Sheets | Score weights and plays, editable by RevOps |
Want this running without building it?
Automation workflow
$297/month
We set up, host and maintain this workflow on n8n and connect it to your tools. Setup included, cancel monthly, you keep the JSON.
Custom build
$4,500–8,000 one-time
Your systems, your rules, your edge cases. A one-off build on Claude and n8n, delivered with documentation and a walkthrough.
Covers up to 2,000 accounts with one analytics source and one CRM. Product-led motions with in-app upgrade prompts are a custom build.
Frequently asked questions
What if we do not have product analytics?
Billing and entitlement data (seats used vs purchased, usage vs limits) plus CRM activity is enough to start. Product analytics adds adoption breadth, which improves the score, and can be added later.
Can it create the opportunities in Salesforce?
Yes — HubSpot and Salesforce are supported; the opportunity is created with the score, the signals and the play so pipeline reporting works without extra fields.
How is this different from Gainsight or ChurnZero?
Those platforms are full CS suites priced for large teams. The workflow gives a small CS team the expansion-detection piece inside the tools they already use, and it is tuned to your own conversion data rather than a generic model.
The pillar
AI Customer Success Agent
Automate onboarding, monitor customer health scores, identify expansion opportunities, and prevent churn.