Review account-health evidence before outreach

Combine verified account usage, revenue context, and support-friction signals into a review queue without pretending a universal score proves churn or intent.

Updated · published

markdown for agents →

difficulty advanced · time to value 10 minutes · execution human review required

Start from this

Prepare an account-health review for the current and prior 30-day periods. Use only verified account-level usage, revenue, and support-friction signals, show each component separately, flag missing data, and stop before contacting anyone.

Why this matters

Customer-success teams need a prioritized review queue, but a single opaque “health score” can hide missing data and encode arbitrary weights. Low usage can mean churn risk, seasonality, successful automation, or simply a quiet account. High ticket volume can mean friction or a deeply engaged implementation.

Use Agentry to assemble the verified components and their trends. If the team wants a composite score, show the formula, owners, missing-data behavior, and validation history. Keep the source components visible so a reviewer can challenge the conclusion.

What you get

  • Current and prior-period value-event counts by account
  • Latest verified plan and revenue context
  • Support-friction counts only when the signal is actually wired
  • A human-reviewed priority queue with missing data and alternative explanations

Walk through it

You

Which paid accounts deserve a health review this week?

Agent

I will verify the account-level signals, compare exact periods, and show the components separately. I will not contact customers or infer churn intent.

GET /v1/projects/:project_id/signal-map
GET /v1/projects/:project_id/onboarding
# Require status: "verified"; use live event/property reads for the selected signals.
GET /v1/projects/:project_id/event-property-keys?events=account_snapshot,product_value_completed,support_ticket_opened

If the three signals and account key are observed, run a bounded owner-side aggregate query using the current OpenAPI schema:

Endpoint: POST /v1/projects/:project_id/analytics/query
Query plan:
  - bind exact current and immediately preceding half-open periods
  - use the latest account_snapshot for plan and MRR context
  - count product_value_completed separately in both periods
  - count support_ticket_opened separately in the current period
  - return account-level aggregate rows only; no user identities
{
  "rows": [
    {
      "account_id": "<account>",
      "plan": "enterprise",
      "mrr": 5000,
      "value_events_current": 42,
      "value_events_prior": 91,
      "support_tickets_current": 6
    }
  ]
}

This row establishes a usage decline and measured support load for the declared signals. It does not establish why usage changed or whether the customer plans to churn.

The output

Account-health review — <exact periods>

Priority review
- <account id>
  revenue context: <plan/MRR and source timestamp>
  product value: <current> vs <prior> (<delta>)
  support friction: <count/topic or not measured>
  missing evidence: <gaps>
  hypotheses: <labelled alternatives>
  human next step: <review owner and question to answer>

Healthy / no action
- <accounts with adequate evidence and no material change>

Method
- exact event definitions, time bounds, thresholds, and any score formula

The account identifier and revenue context make this a private owner-side report. Do not turn it into a public-query publication.

Setting it up

Emit a stable account_id on the small set of events used for account-level decisions. Record periodic account snapshots from the trusted billing or account system, not from client claims. Choose one value event that reflects delivered product value rather than raw pageviews or total event volume.

If support tickets are imported as analytics events, include a bounded topic or reason code and the same account ID; do not copy message bodies or personal data. Operational error cases are a separate evidence source unless you have a verified account-level mapping—do not silently join them into an analytics score.

Variations

  • “Review only accounts renewing in the next 60 days, using a verified renewal signal.”
  • “Show the components for the five accounts with the largest value-event decline.”
  • “Compare the queue with seat utilization, but keep both definitions visible.”
  • “Draft a CSM brief for review; do not choose recipients or send it.”

Adapt this workflow in your own agent.

Ask your agent to map the starter prompt to your saved signal map, live events, and the current HTTP API before answering.

Agentry gives coding agents production context from errors, product analytics, and deploys through one HTTP API. Fetch and read https://agentry.sh/install.md completely, then install Agentry's full first-time telemetry baseline in this repository. I authorize device-code login, saving the owner key only to ~/.agentry/credentials.json, creating one Agentry project for this repository, and read-only inspection of shipped source plus hidden CI/provider configuration. Deeply analyze the product's business logic and complete value flow before choosing telemetry. Save the complete source-backed plan and show me its exact contents and hash. Until I explicitly approve that plan or request a replacement, do not edit app/CI source, place runtime/CI credentials, commit, exercise product traffic, start proof, push, or deploy. After approval, I authorize only the reviewed targets: place the required scoped browser/server/CI credentials through the established environment or secret mechanism, preserve existing telemetry, implement and test the baseline, commit it, push that reviewed commit when the shipped CI/provider path requires it, exercise safe proof paths with test/non-customer data, and perform one deployment through the reviewed shipped CI/provider path. Ask first if proof would charge money, contact a third party, change real customer data, or require new external access. After the plan is saved, immediately before every onboarding state-changing POST, GET current onboarding state, perform only its single returned next_action, then read state again; do not batch or infer later stages. Continue until status is verified, installation_complete is true, and next_action is null. Keep all secrets, source snapshots, proof markers, and scratch files outside the repository.

+ Full access
5.5 Extra High
  1. 1. Open your repo in Codex, Claude Code, Cursor etc.
  2. 2. Paste the install prompt.
  3. 3. Your agent reads the install doc and shows you an implementation plan for approval.