← Resources

Renewal & Expansion Cadence Template

Churn is decided at T-90, not at T-7. A renewal pipeline with verifiable stages, a T-90/T-60/T-30 touch cadence, an expansion-signal checklist, a 30-minute QBR skeleton - and copy-paste JSON that stands it all up in two API calls.

Who this is for

Teams with annual or multi-year contracts where a person - or an AI agent - owns the renewal book: a founder doing customer success, a first CSM, a RevOps lead wiring a motion an agent will run. It assumes roughly $5k+ ACV; below that, renewals should be automatic billing plus a health email, not a pipeline.

Use it when your first annual contracts are coming up with no renewal process, or after the classic failure: learning about a churn at T-7, when the only lever left was a discount.

Renewals get their own pipeline

The core opinion of this template: a renewal is a deal, and it lives in its own pipeline. Not a task, not a reminder, not a stage bolted onto new business. Renewals start at ~85-90% probability and decay when neglected; new business starts near 20% and climbs - mixing them corrupts both forecasts. A dedicated pipeline also makes revenue retention computable from the terminal stages.

StageEnter atThe deal is here when...Advance when
UpcomingT-120Renewal deal created with renewal date and current ARR.The clock hits T-90 - a mechanical daily move by an agent or automation.
Health checkT-90Usage and adoption under review; risk being graded.Account graded green/yellow/red, value review booked.
Value reviewT-60The QBR is scheduled or delivered.QBR held, expansion signals logged, buyer stated continuation intent out loud.
ProposalT-30Written renewal terms - including any scoped expansion - in the buyer's hands.Buyer engaged with the terms. Silence is not engagement.
Negotiation-Verbal yes; terms being finalized.Signature. Nothing else counts.
Renewed-Signed. Terminal. Amount = new ARR, expansion included.Never moves again.
Churned-Non-renewal confirmed or the date passed unsigned. Terminal.Record a churn reason. "No reason" should be an invalid move.

Auto-renew clauses do not exempt you from the cadence - a silent auto-renewal is churn risk deferred twelve months.

The T-90/T-60/T-30 cadence

Three outbound touches, each with one job, each earning the next - all anchored to the contract date.

TouchWhenChannelThe one job
Health checkT-90EmailSurface blockers while there is time to fix them. Nothing commercial - say so explicitly.
Value review inviteT-60Email → meeting at ~T-45Book the QBR. It builds the case the proposal rests on and scopes the expansion.
Renewal proposalT-30Email + documentDeliver written terms: same scope by default, expansion options priced in.
EscalationT-14HumanIf the proposal got silence, leave the cadence: call the champion, involve the exec sponsor. See the follow-up sequence templates.

Between the touches: grade health after T-90 (red means swarm now), prepare the QBR with the customer's own numbers, log expansion signals as they appear.

Expansion-signal checklist

Expansion is cheaper revenue than acquisition - if you catch the signals early enough to scope at T-60 and price into the T-30 proposal. Log each as an activity on the renewal deal the day you see it.

SignalWhere you see itThe move
Seat utilization >80%Usage dataPropose the next seat tier in the renewal, priced as growth, not penalty.
Repeated plan-limit hitsUsage data, support ticketsThe strongest signal. Scope the upgrade before the workaround hardens.
Invites from a new teamUser list, email domainsAsk who the new group is; a second use case is a second line item.
Sustained API usage growthUsage dataThey are building on you. Discuss volume tiers before an overage surprise.
Inbound "does it also do X"Support, sales inboxLog it - three of these is a roadmap slide in the QBR.
Champion promoted or new exec sponsorLinkedIn, meeting attendeesNew budget authority. Congratulate, then book 15 minutes to re-anchor goals.
Hiring spree or funding roundJob boards, newsHeadcount growth is seat growth. Put it on the T-60 agenda.

The QBR skeleton

Thirty minutes, five slides maximum, their data. QBRs die when they become feature tours; keep the agenda about the customer's numbers.

The artifact: renewal pipeline + T-minus sequence

Two payloads. The first creates the pipeline via POST /v1/pipelines - key, name, and an ordered stages array of {key, label} objects. The second creates the cadence via POST /v1/sequences: it enrolls the deal's primary contact the moment a deal in renewals moves into health_check, sends the T-90 email immediately and the T-60/T-30 emails 30 days apart. Each step's delay counts from the previous send, so the whole schedule hangs off that T-90 move into health_check - a move driven by an agent reading the deal's renewal_date custom field (create it with POST /v1/fields). exit_when is re-checked before every send and the instant the deal changes, so a deal that moves forward - or churns - never gets a stale email.

{
  "key": "renewals",
  "name": "Renewals",
  "is_default": false,
  "stages": [
    { "key": "upcoming",     "label": "Upcoming" },
    { "key": "health_check", "label": "Health check (T-90)" },
    { "key": "value_review", "label": "Value review (T-60)" },
    { "key": "proposal",     "label": "Proposal (T-30)" },
    { "key": "negotiation",  "label": "Negotiation" },
    { "key": "renewed",      "label": "Renewed" },
    { "key": "churned",      "label": "Churned" }
  ]
}
{
  "name": "Renewal T-minus cadence",
  "trigger": {
    "event": "deal.stage_changed",
    "filter": [
      { "field": "pipeline", "op": "eq", "value": "renewals" },
      { "field": "stage", "op": "eq", "value": "health_check" }
    ]
  },
  "exit_when": [
    { "field": "stage", "op": "in", "value": ["proposal", "negotiation", "renewed", "churned"] }
  ],
  "steps": [
    {
      "wait_days": 0,
      "subject": "Quick check-in - anything in the way?",
      "body": "<p>Hi {{first_name}},</p><p>Your renewal is about three months out, so this is the point where I ask: is anything in the way of you getting full value? Blockers, missing features, teammates who never onboarded - reply with whatever is on the list and we will clear it while there is time.</p><p>Nothing commercial in this email. That conversation comes later, and it goes better when everything works.</p>"
    },
    {
      "wait_days": 30,
      "subject": "30 minutes on your numbers this quarter",
      "body": "<p>Hi {{first_name}},</p><p>I would like to walk you through what your team actually did with the product this quarter - adoption, outcomes against the goals we set, and what is underused. Thirty minutes, five slides, your data.</p><p>If there is anything you want on the agenda, reply and I will add it.</p>"
    },
    {
      "wait_days": 30,
      "subject": "Your renewal - written terms this week",
      "body": "<p>Hi {{first_name}},</p><p>Your renewal date is about 30 days out. You will have written terms from me this week - same scope by default, plus the options we discussed in the review if you want them.</p><p>If anything changed on your side - budget, team, scope - tell me now and I will build it into the proposal instead of negotiating it later.</p>"
    }
  ],
  "enroll_existing": false
}

Note: deals without a primary_contact_id do not enroll; enroll_existing: true would immediately enroll deals already in health_check. Enrollment is idempotent per contact.

Apply it with your agent

If your agent speaks MCP, point it at https://api.relmcrm.com/mcp with a bearer key and paste:

Connect to the Relm MCP server. Then:
1. Call relm_describe_schema. Create the custom deal field renewal_date (date)
   via relm_create_field if it does not exist.
2. Create the "Renewals" pipeline exactly as in the pipeline JSON above.
3. Create the "Renewal T-minus cadence" sequence exactly as in the sequence
   JSON above, then preview it and confirm the step schedule is 0 / 30 / 60 days.
4. For every customer on an annual contract, create a deal in the Renewals
   pipeline, stage "upcoming", amount = current ARR, custom_fields.renewal_date
   set, and the account champion as primary contact.
5. Every day, move deals in "upcoming" whose renewal_date is 90 days out or
   less into "health_check" - that move enrolls the champion in the cadence.
Use my test key first; only repeat on live after I confirm.

Over REST, post the sequence payload from a file. Rehearse with a relm_test_ key - test-mode sends are simulated, never delivered - then re-run with relm_live_:

curl https://api.relmcrm.com/v1/sequences \
  -H "Authorization: Bearer relm_test_..." \
  -H "Content-Type: application/json" \
  -d @renewal-cadence.json

Before enabling anything on live, hit GET /v1/sequences/{id}/preview - a dry run that returns the step schedule and who would enroll right now, with no side effects. Full reference in the docs; if the agent is new to CRM work, start with how to give your AI agent a CRM. For what should fire on every pipeline move beyond email, see the stage-change playbooks; for accounts already dark, use the re-engagement sequence instead.

FAQ

When should a renewal cadence start?

Ninety days before the contract date at minimum, 120 for enterprise accounts with procurement or legal review. At T-90 you can still fix a red account; at T-30 you can only discount it. The first touch is a health check with nothing commercial in it - the commercial conversation earns its place at T-30.

Should renewals get their own pipeline?

Yes. Renewal deals start at roughly 85-90% probability and fall when neglected, while new business starts near 20% and climbs - mixing them makes both forecasts wrong. A separate pipeline also makes revenue retention computable straight from the terminal stages.

What are the strongest expansion signals?

Seat utilization above 80% of the licensed count, repeated hits on plan limits, invites landing in a new team or department, sustained API usage growth, and inbound "does it also do X" questions. Log each one on the renewal deal; scope the expansion in the T-60 value review and price it into the T-30 renewal proposal.

What does a good QBR agenda look like?

Thirty minutes, five blocks: restate their goals (3 min), outcomes against those goals using their numbers (10), adoption gaps (5), roadmap items relevant to them only (5), next-quarter success plan plus the renewal and expansion path (7). No feature tour. If you cannot show outcome data, that absence is the health finding - grade red and fix measurement first.

Can I use this cadence without Relm?

Yes. The T-90/T-60/T-30 structure, the pipeline stages, the expansion checklist and the QBR skeleton are tool-agnostic - run them from any CRM plus a calendar. Relm is simply the fastest way to apply them: two API calls or one MCP prompt, free on 1,000 requests a month.

Never learn about a churn at T-7 again

1,000 requests a month on the Free plan, no card. See pricing.

Start free →