Renew

Flag at-risk renewals

Surfaces accounts with low health scores and upcoming or recently expired renewals, ranked by ARR-at-risk impact

One of 51 free, open-source prompts from Sonora — copy-paste-ready AI prompts for customer success and account management, organized by customer lifecycle stage. Copy this into any AI assistant, or run it on autopilot inside Sonora.

The prompt

Steps:

  1. Pull all accounts from the Customer 360 where the renewal date falls within the next 90 days OR expired within the last 30 days.
  2. Filter to accounts with a Health Score below 5.
  3. For each qualifying account, retrieve: ARR, renewal date, Health Score, account tier, CSM, primary contact, and exec sponsor.
  4. Pull the top 3 open / recent issues by severity for each account. If more than 3, note the total count.
  5. Check for recent sentiment signals from the past 30 days: detractor NPS, escalations, or champion departure alerts.
  6. Rank accounts by ARR.

Formatting: Present a consolidated ranked list. Keep it scannable — this is a triage view, not a deep dive.

Header line (regular text, bolded labels): Accounts flagged: [N] | Total ARR at risk: $X | Expired renewals: [N] | Renewing within 30 days: [N]

For each account, use this compact block format:

[Customer Name] — Health: [status, e.g. at risk, emerging concerns, healthy, thriving] | ARR: $X | Renewal: [date] ([N] days out or [N] days past due) | Tier: [tier] CSM: [name] | Primary: [name] | Exec Sponsor: [name] Top risks:

  • [Severity]: [Issue or signal — one sentence with evidence]. (Source)
  • [Severity]: [Issue or signal — one sentence]. (Source)
  • [Severity]: [Issue or signal — one sentence]. (Source) Recommended action: [One specific, actionable next step tied to the top risk — include who should own it and by when.]

Separate each account block with a horizontal rule.

Pagination:

  • Show the top 20 accounts ranked by impact (ARR × risk severity).
  • End with: “Showing top 20 by ARR-at-risk impact. [N] total accounts flagged. Want me to show the rest?”
  • If fewer than 20 accounts qualify, show all and skip the pagination prompt.

Edge cases:

  • If no accounts meet the at-risk + approaching renewal criteria, state that clearly and suggest broadening the window or adjusting the Health Score threshold.
  • If Health Score data is unavailable or stale (>30 days old) for an account, flag it with “[Health Score data unavailable]” and still include the account if it has approaching/expired renewal.
  • If an account has no open issues, state: “No open issues identified.”
  • Expired renewals should be prominently flagged with “EXPIRED” in the renewal field.
  • Every risk must cite a specific data point, date, or interaction. No generic statements.

Data sources required

CRM / customer dataSalesforce, HubSpotSupport ticketsZendesk, Intercom, PylonMeeting transcriptsGong, Granola, FirefliesCustomer communicationsemail, Slack

The catch

A prompt is only as good as the data you feed it.

Run this well and you'll be stitching together 4 disconnected systems by hand, for one account at a time — and the answer is only ever as fresh as your last copy-paste. Sonora already has the context, live:

  • CRM / customer data — connected and continuously synced
  • Support tickets — connected and continuously synced
  • Meeting transcripts — connected and continuously synced
  • Customer communications — connected and continuously synced

Inside Sonora this prompt runs grounded in your real customer data, on a schedule, across every account at once — and flags what needs you, before you have to ask.