Contract Renewal Follow-Up
Renewal pipeline snapshot with risk flags. Per-account: 90/60/30/7-day touch cadence executed, proposal status, signature status, and risk level. Slack alert for at-risk renewals.
Before you start
- Renewal pipeline tracked in CRM with renewal dates
- Customer health score or usage data accessible
- Approved renewal pricing and discount guardrails
- Customer record with contract end date and current ACV
- Usage data for the prior 90 days (logins, feature adoption, value delivered)
- CSM notes from the most recent QBR or check-in
The steps
- Pull renewals due in the next 90 days — Query the CRM for accounts with contract end dates inside the next 90 days. Group by tier (enterprise, mid-market, SMB) and current ACV. For each, log: renewal owner, prior renewal history, expansion potential flag, and current health score.
- Pull usage and value-delivered metrics — For each account, pull active users, feature adoption rate, and any value-tracking metric (tickets resolved, hours saved, leads generated). Compare to onboarding-promised outcomes. Flag any account with usage <40% of seats or below the activation benchmark.
- Draft a per-account renewal narrative — For each renewal, draft a 4-sentence narrative: (1) what they signed up to do, (2) what they actually accomplished (with numbers), (3) what's next on the roadmap that benefits them, (4) the renewal proposal. Pull the prior CSM notes to make this concrete, not generic.
- Send the 90-day check-in email — Send a check-in 90 days before renewal: thank them, share the value summary from step 3, propose a renewal call, and include 2-3 calendar slots. Send from the CSM or AE who owns the relationship — never a generic alias. Subject: '[Company] — quick renewal check-in for [date]'.
- Send 60-day formal proposal — If they engaged in the 90-day check-in, send a formal renewal proposal at 60 days: PDF/PandaDoc with current pricing, any approved expansion options, and contract terms. Include a one-page value summary as the cover page. CC the CSM/AE on every proposal.
- Escalate at 30 days if no signature — At T-30, if proposal is unsigned: send a personal note from the AE/CSM asking what's blocking, alert the AE manager in Slack, and schedule a meeting with the buyer's procurement contact if known. Do not auto-send discount offers — flag for human review.
- Final 7-day reminder and risk flag — At T-7, send a final reminder: time-sensitive, restates the proposal, asks for signature or notice. If still unsigned at T-3, mark in CRM as 'Renewal at Risk', notify VP Sales and CSM lead, and prepare a churn-recovery handoff packet (usage data, contract, contact map) for negotiation.
If it goes wrong
Champion left and replacement hasn't been identified
Pull the org chart from LinkedIn or company site, map likely replacement, and book a 'reintroduction' meeting before the renewal proposal goes out. Add 30 days to the cadence in this scenario.
Usage data shows the account is dead but renewal is auto-renewing
Flag for a churn-prevention save play — do not let it auto-renew silently. Engage with a 'before you renew' email that surfaces the gap and offers a re-onboarding path.
Procurement requires a security questionnaire and slows close
Auto-attach the latest SOC 2 + security questionnaire response pack to the proposal. If procurement requires a custom version, escalate to the AE on day 1, not at T-7.
All OpenLabor playbooks