Generate a renewal-risk brief for each account

Combine usage decline, errors, seat utilization, and support friction into a renewal-risk brief CS can act on before the renewal date.

Published

difficulty advanced · time to value 10 minutes

Start from this

Generate renewal-risk briefs for accounts renewing in the next 60 days. Include usage trend, errors, seat utilization, support friction, and recommended CS action.

Why this matters

CS teams do not need another dashboard. They need a brief: what changed, why the account is at risk, and what to do before renewal.

What you get

  • Accounts renewing soon
  • Usage trend and seat utilization
  • Error/support friction
  • Recommended CS motion for each account

Walk through it

You

Which renewals are at risk this quarter?

Agent

I’ll find renewal cohorts and join them with usage and friction signals.

POST /v1/projects/:project_id/analytics/query {
  project_id: "default",
  hogql: "SELECT properties.account_id AS account, argMax(properties.renewal_date, timestamp) AS renewal_date, count() AS recent_events FROM events WHERE timestamp > now() - INTERVAL 60 DAY GROUP BY account HAVING renewal_date != '' ORDER BY renewal_date ASC LIMIT 50"
}

The output

The agent returns one brief per account: risk level, evidence, and action. It should be written for a CSM, not for an engineer.

Setting it up

Emit renewal_upcoming or attach renewal date to account snapshot events. Keep account IDs consistent across usage, errors, and billing.

Variations

  • “Only include enterprise renewals.”
  • “Draft the CSM email for the top three at-risk accounts.”
  • “Create a weekly renewal-risk digest.”

Try this recipe in your own agent.

Ask your agent to adapt the starter prompt to your saved signal map and live events, then run it against your data.

Install agentry.sh/install.md for me
Agent will onboard itself and then your app