Sales use cases
Sales

Prep renewals and spot upsell openings

Build a repeatable agent that pulls usage, support, and account data into a per-customer renewal brief flagging churn risk and concrete upsell openings, 90 days ahead of each renewal date.

7 min read2026-06-17Human in the loopMedium-sensitivity data
Ease
4/5
Impact
5/5
Risk
3/5

Tools you'll use

Claude CodeCodexClaude Cowork

Renewal prep is the work of reviewing each customer account before its contract ends, confirming they are getting value, surfacing any churn risk, and identifying where they could reasonably buy more (more seats, a higher tier, an added product). Done well, it turns the renewal date from a deadline you scramble toward into a planned conversation you walk into knowing the answer. The "upsell opening" half is spotting, from real signals like usage and growth, where expanding makes sense for the customer, not just for your quota.

This matters because expansion is where the money is. In ChartMogul's analysis of more than 2,500 SaaS businesses, companies with net revenue retention at or above 100% grew more than twice as fast year-over-year as companies below 100% (ChartMogul, 2024). The same report found that for those high-retention companies, expansion accounts for over half of their revenue, while low-retention companies lean on new business for about 70% and get only 15% from expansion (ChartMogul, 2024). The accounts you already have are the growth engine. The problem is that prep is slow manual work: a rep pulls usage from one system, support tickets from another, the contract from a third, and stitches it into a story. So it gets skipped, and renewals get worked late and reactively.

An agent does the stitching. You point it at your CRM, your product usage data, your support queue, and your contract records, and it produces a per-account renewal brief: contract value and end date, usage trend, adoption gaps, open support issues, and a short list of upsell openings with the evidence behind each. Your reps read the brief, judge it, and walk into the renewal prepared. The team owns the brief generator, so they can tune what counts as a signal as they learn.

Moriva's take

This clears all three gates cleanly. It is real recurring work (every account renews on a clock, and prep happens weekly), it is ownable (one person can stand up a brief generator your reps run and adjust themselves), and it is measurable (track renewal rate, expansion revenue, and hours saved on prep). It lands GO rather than CAREFUL because the agent drafts internal briefs, not customer-facing emails or price changes; a rep always reads and decides before anything reaches a customer. Keep that human checkpoint and this is one of the highest-payoff use cases in sales.

How do you prep renewals and spot upsell openings?

  1. 1

    Pick the signals that actually predict renewal and expansion

    Before any tooling, write down in plain English what a good renewal looks like and what an upsell opening looks like for your business. Examples: usage up 20%+ over last quarter, seats near the licensed limit, a new department logging in, a feature on a higher tier being requested in support tickets. Also write your churn-risk signals: usage down, key champion gone quiet, unresolved escalations. This list is the agent's brain. Keep it short and concrete.

  2. 2

    Map where each signal lives

    List the systems that hold each signal: CRM (contract value, renewal date, owner), product analytics or your app database (usage, seats, feature adoption), support tool (open tickets, sentiment), and contract or billing records (current tier, terms). Note how each can be exported or queried (CSV export, API, read-only database access). You do not need to connect everything at once; start with the two or three that matter most.

  3. 3

    Have Claude Code or Codex build the brief generator

    In your repo or a working folder, point Claude Code (or Codex) at sample exports from those systems and describe the brief you want in plain English: 'For each account renewing in the next 90 days, pull usage trend, seat utilization, open tickets, and contract value, then write a one-page brief flagging churn risk and listing upsell openings with the evidence.' It writes the script that joins the data and produces the briefs. Your team owns this code and can change the rules later.

  4. 4

    Calibrate against accounts you already know

    Run the generator on ten accounts your reps know cold, including a couple you expect to churn and a couple ripe for expansion. Read the briefs next to reality. Where the agent missed a risk or invented a weak upsell, adjust the signal definitions and rerun. This is the step that earns rep trust; do not skip it. Ask Claude Code or Codex to tweak the logic as you find gaps.

  5. 5

    Put it on a weekly schedule

    Once the briefs are reliable, schedule the generator to run weekly and produce briefs for every account hitting the 90-day renewal window. Output them where reps already work: a shared folder, a CRM note, or an email digest to each account owner. Now prep happens automatically and on time instead of being remembered late.

  6. 6

    Let non-coding reps go deeper with Claude Cowork

    For a high-value renewal, a rep can take the generated brief into Claude Cowork and ask it to research the customer's recent news, draft talking points, and outline an expansion proposal, without writing any code. This keeps the heavy lifting in the owned generator while giving individual reps a research assistant for the accounts that warrant extra attention.

  7. 7

    Measure and review monthly

    Track renewal rate, expansion revenue per renewal, and prep hours saved before and after. Review the numbers monthly with the team and feed what you learn back into the signal list. The whole point is that the team owns the loop: when a signal stops predicting well, they change it themselves.

What could go wrong (and how to handle it)

The agent flags a weak or wrong upsell, and a rep pitches something the customer does not need, damaging trust.

Briefs are internal drafts, never auto-sent. Require every upsell opening to carry its supporting evidence so the rep can judge it. Calibrate on known accounts before rollout.

Bad or stale data produces confident-but-wrong briefs (e.g. usage feed lagging a month).

Stamp each brief with the data's as-of date and source. Start with the two or three cleanest systems. Have reps spot-check briefs against reality during the first few weeks.

Customer usage, contract, and support data is sensitive and now flows through a new process.

Use read-only access, keep data in systems you control, and exclude personal or regulated fields you do not need. Treat briefs as internal-confidential. Confirm the approach with whoever owns data policy before connecting live systems.

Reps stop thinking and treat the brief as gospel, missing context the data cannot see.

Frame the brief as a starting point, not a verdict. Keep the human in the loop as the decision-maker for every renewal and pitch. Review misses monthly so reps stay engaged with the logic.

The agent misses churn risk because the warning signal lives in a system you did not connect.

Treat the signal list as living. When a churn surprise happens, trace which signal would have caught it and add that source. Because your team owns the generator, this is a quick change, not a vendor ticket.

It becomes one person's side project that breaks when they leave.

Keep the code in a shared repo with a short README. Because Claude Code and Codex produce plain, owned scripts, another team member can read, run, and extend them.

Prompts to get started

Build the renewal brief generator
Here are sample CSV exports from our CRM (account, owner, contract value, renewal date), product usage (account, monthly active users, seats licensed, key feature usage), and support tool (account, open tickets, last sentiment). Write a script that, for every account renewing in the next 90 days, joins these and outputs a one-page brief per account: contract value and renewal date, usage trend vs prior quarter, seat utilization, open support issues, a churn-risk flag (red/amber/green) with reasons, and a list of upsell openings each with the evidence behind it. Keep the code readable and explain how I change the risk and upsell rules.
Calibrate the signals
Run the brief generator on these ten accounts. I will tell you which two churned and which two expanded last year. Compare the briefs to what actually happened, tell me where the logic was wrong or weak, and propose specific changes to the churn-risk and upsell rules so the briefs match reality more closely.
Schedule weekly briefs
Set this up to run every Monday morning, generate briefs for all accounts entering the 90-day renewal window, and email each account owner the briefs for their accounts as a single digest. Stamp every brief with the as-of date and the source of each data point.
Deepen a single high-value renewal (Cowork)
Here is the generated renewal brief for our largest account due in 60 days. Research the customer's recent public news and any signals of growth or change, then draft talking points for the renewal call and a one-page outline of an expansion proposal grounded only in the evidence in the brief. Flag anything in the brief that looks thin so I can verify it before the call.

FAQ

Will this just push reps to oversell and annoy our customers?

No, because the agent never contacts a customer. It produces an internal brief that a rep reads and judges. Every upsell opening comes with the evidence behind it, so a rep can drop weak ones before any conversation. The goal is a better-prepared rep, not an automatic pitch.

Our data is messy and spread across systems. Is this realistic for us?

Yes, and you do not need to fix everything first. Start with the two or three cleanest sources, usually CRM plus usage data. The agent works with what you give it, and you can add sources over time. Calibrating on accounts you already know surfaces data problems early.

How is this different from the renewal dashboard our CRM already has?

A dashboard shows you numbers; you still do the reading, joining, and judgment. This produces a written brief that combines usage, support, contract, and risk into a story with specific upsell openings and evidence. And you own it: you decide what counts as a signal and change it yourself, instead of waiting on a vendor's roadmap.

What happens when our business changes and the old signals stop working?

You change them. Because Claude Code or Codex builds a plain script your team owns, adjusting the churn-risk or upsell rules is a quick edit, not a support ticket. The monthly review is where you catch drift and feed fixes back in.

How do we know it is actually working?

Measure it. Track renewal rate, expansion revenue per renewal, and hours spent on prep before and after. If renewals are getting worked earlier, more expansion openings are converting, and reps are spending less time stitching data, it is working. If not, you have the logic in hand to fix it.

Sources

Want help shipping this?

We'll build it with your team on your real work — and leave you owning it, not renting it.