Expansion Opportunity Detection Upsell signals scored weekly, with the play
Every week, the accounts ready to buy more are ranked from their own usage, with an opener the CSM can send as is.
- Installed for you · one-time$249
- Run for you$297/month
- Custom build · this process$4,500–8,000 one-time
- Starts whenSchedule Trigger (weekly) + instant triggers
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. Custom builds start at $2,000 site-wide; this band is for this process and its integrations.
Expansion Opportunity Detection is an automation Agentmelt installs in Google Sheets. The free template is a file you import yourself; the kit ($49) adds the setup guide and prompts. Installed for you costs $249 one-time and is live within two working days of access, with a recorded walkthrough and 30 days of fixes. Run for you costs $297/month, with setup and maintenance included. A custom build of this process is $4,500–8,000 one-time; custom builds start at $2,000 site-wide. No call is needed for any option. Written by Max Zeshut; last revised 2026-09-18.
Reference stack: Claude + n8n. Node names are on each step; the file is under the template.
Founder at Agentmelt
Reviews every build before it goes live; the workflow escalates to a person, never past one.
What is expansion opportunity detection?
Expansion opportunity detection is the weekly scoring of every account for readiness to buy more — more seats, a higher tier, an add-on — from signals that already exist: seats used against seats bought, usage against plan limits, breadth of feature adoption, pricing-page visits, support questions about premium features, new integrations connected, funding or headcount changes. A workflow pulls those from product analytics, billing and the CRM, computes a readiness score with weights per segment that RevOps keeps in a spreadsheet, matches the pattern to a play (seat expansion, tier upgrade, add-on, multi-year, or not yet), and gives each customer success manager a short ranked list with a three-sentence opener grounded in the account’s actual usage. Outcomes are tracked per signal, so the weights are tuned from what converted.
- Customers hit their plan limit, work around it, and nobody offers the upgrade.
- Expansion depends on which CSM remembers to look at usage before the QBR.
- Product analytics knows which accounts are growing; the CRM does not.
- The upsell email is generic, so it reads as a sales push instead of help.
- We cannot say which signals actually led to expansions last quarter.
If two of these are yours, this is the process to look at first. Free audit — or read on.
What it looks like once it runs.
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.
- Monday 7:00 Usage, seats, feature adoption and buying signals are pulled for every account.
- 7:10 Each account gets a readiness score and a matching play: seats, tier, add-on, multi-year — or not yet.
- 7:15 For each account on the list, a three-sentence opener grounded in its own activity is drafted.
- 8:00 The CSM has the list, the openers and an opportunity on each account; outcomes are tracked back to the signals.
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.
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.
All seven steps run without anyone; a person sees only what the guardrails escalate.
Schedule Trigger (weekly) + instant triggers
Pull usage and account data
Active 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
Pricing-page visits, webinar attendance, support questions about premium features, new integrations connected, and firmographic changes (funding, hiring) from enrichment tools.
Compute the readiness score
Weighted 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
Signal 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
For 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
Creates 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
Every surfaced opportunity is tracked to won/lost/ignored, so the score weights are tuned quarterly from what actually converted.
No step waits for a person.
What the workflow hands to someone, by rule:
- Accounts with an open escalation, a churn-risk flag or a renewal within 30 days are excluded or routed to a different play.
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
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.
No decisions needed. Anything the guardrails flag is handed to a person; the rest ran alone.
Each pattern page explains it in plain words and lists every automation that uses it.
The template is built on n8n (how the n8n AI Agent node works); the same steps run on Make, Zapier or plain code. The tool is chosen to fit your accounts, you own the result, and the template comes in all three formats.
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.
What it connects to.
| 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?
$297/month
We set it up in your tools, run it on our servershost it on our n8n cloud (or deploy it to your own n8n, Make or Zapier), watch it, and fix it when something changes. Setup included, cancel monthly; the automation stays yours if you leave.
$4,500–8,000 one-time
Your systems, your rules, your edge cases. A one-off build delivered into your accounts to keepon Claude and n8n, delivered into your accounts to keep, with documentation and a recorded 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.
Also sold one-time, installed in your own accounts, as part of the customer success managers package and the customer success teams package — do it yourself $49 · installed for you $249 · done for you $490.
When this becomes a custom build.
The subscription covers the standard version — $297/month, setup and maintenance included. Three things move it to a custom build ($4,500–8,000 one-time), delivered into your accounts to keep. If one of them is you, say so on the audit and the plan prices both.
Product-led motions where the upgrade prompt has to appear inside the app, not in a rep’s inbox.
More than 2,000 accounts, or usage data spread across several analytics sources and CRMs.
Pricing logic with tiers, seats and add-ons that the opportunity score has to model, not just flag.
Running the standard version first is the usual path: the exceptions it logs in the first month are the scope of the custom build, with your own numbers. How custom builds work.
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.
How can AI help identify expansion opportunities in accounts?
Mostly by reading signals at a scale a person cannot: hundreds of accounts, weekly, across analytics, billing and the CRM. The scoring itself is weighted rules you can see and change; the AI agent’s job is the opener — three sentences that name what the account is doing and offer the next step as help. Where conversations are available (support tickets, call notes), it also flags mentions of premium features or growth.
Can I get automated alerts when customers show expansion opportunities?
Yes. The workflow creates or updates an expansion opportunity on the account in HubSpot or Salesforce with the score, the signals and the recommended play, and posts each CSM’s weekly list to Slack. Alerts fire when a score crosses the threshold or on a strong single signal — a plan limit hit, a pricing-page visit by an admin — not on every change.
How is expansion opportunity detection different from a customer health score?
Same data, opposite question. Health scoring looks for accounts at risk of leaving; expansion detection looks for accounts ready to grow. Running both from the same weekly pull means a CSM’s Monday list has the accounts to save and the accounts to grow, and an account is never pitched an upgrade while its health is red.
What this blueprint is built on.
Vendor documentation the steps rely on, and the rules the guardrails are written against.
- HubSpot — API overview developers.hubspot.com/docs/api-reference/latest/overview
- Amplitude — API reference amplitude.com/docs/apis
- n8n docs — AI Agent node docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/