# Account Health Autopilot: Weekly Customer Health Scoring in Your CRM

> **Version 1.1.0 · Last updated 2026-10-22 · Difficulty: Advanced · Setup time: 60–120 minutes**

Every week your clone reads the last 7 days of calls, emails, support cases and tickets for every customer, grades each account's health, and writes the results into three fields in your CRM (Salesforce or HubSpot), after you approve the changes. You get one report with who moved, why, and which accounts are quietly at risk.

---

## 1. Overview and value

Health scores in most CRMs are stale. Someone updates them before a QBR or a renewal, and by then the signals are weeks old. The facts that matter (an angry email, a cluster of bugs, a champion who stopped joining calls, an integration request nobody logged) are scattered across transcripts, inboxes, the CRM and the ticket tracker.

The Account Health Autopilot fixes that. Every week at `{RUN_TIME}` your clone:

- sweeps the **previous 7 days** across four sources: call transcripts, email, CRM support signal (Salesforce Cases, or HubSpot notes/tasks/engagements) and the Linear tracker,
- tells **"no results"** apart from **"lookup failed"**, so a broken connection never makes an account look healthy,
- **verifies** keyword hits by reading the source, so a customer named after a common word doesn't get false signals,
- grades each in-scope account on a **6-level health scale**,
- drafts updates to **three CRM fields**: pain points, health grade and integrations needed,
- shows you the **full proposed changes** and writes only after you say yes,
- sends **one weekly report** with the health distribution, movers, silent-risk accounts and tracking gaps.

**What you get:**

| Benefit | What it looks like |
|---|---|
| Current health grades | Every in-scope account graded weekly from real evidence, not memory |
| Evidence you can trust | Direct quotes, case IDs and ticket IDs behind every grade |
| Early warning | "Silent risk" accounts flagged before they show up as churn |
| Clean CRM data | Pain points and integration requests kept current, never blank |
| Fewer surprises at renewal | Downgrades and their reasons surface the week they happen |
| Time back | Hours of manual account review per week replaced by a 15-minute approval |

> **Quick-start alternative:** the prebuilt skill **Weekly-Account-Health-Update** can be attached through the platform for a faster start. This card's custom skill gives you full control over the scale, the sources, the three fields and the approval flow.

## 2. Who it's for

- **Customer Success teams** who own health scores and renewals and want them current every week.
- **RevOps** who want health data in the CRM to be consistent, evidence-based and reportable.
- **Leadership** who want a weekly view of the customer base: distribution, movers and risks.
- **Support leads** who want case and ticket patterns reflected in account health.

It works for **current customers** (per your `{CUSTOMER_DEFINITION}`). Prospects, internal records and partner/referral records are skipped on purpose.

## 3. How it works

```
 ┌───────────────────────────────────────────────────────────────────┐
 │  Every week at {RUN_TIME} (scheduled task)                        │
 └───────────────────────────────┬───────────────────────────────────┘
                                 │
                                 ▼
 ┌───────────────────────────────────────────────────────────────────┐
 │  "Account Health Autopilot" skill                                 │
 │                                                                   │
 │  1. Build the account list ──►  {ACCOUNT_SCOPE}, minus            │
 │                                 {EXCLUSIONS}, with {NAME_MAPPINGS}│
 │  2. Sweep last 7 days (in parallel):                              │
 │       Transcripts · Email (name AND domain) ·                     │
 │       CRM cases (all statuses + text search) · Ticket tracker     │
 │     Each source: "results" / "no results" / "lookup FAILED"       │
 │  3. Verify hits by reading the source (no false positives)        │
 │  4. Grade health on the 6-level scale ({HEALTH_SCALE})            │
 │       quiet week ≠ grade change · flag silent risk                │
 │  5. Draft 3 fields per record ──►  pain points · health ·         │
 │                                    integrations needed            │
 │  6. Check {REQUIRED_FIELDS} ──►  blocked records listed, not      │
 │                                  guessed                          │
 │  7. Show proposed changes ──►  WAIT for your "yes"                │
 │       (first run = dry run, no writes)                            │
 │  8. Write in batches of 2–4 ──►  {WRITE_TARGET} in your CRM       │
 └───────────────────────────────┬───────────────────────────────────┘
                                 │
                                 ▼
 ┌───────────────────────────────────────────────────────────────────┐
 │  Weekly report ──► {REPORT_RECIPIENTS} and/or {TEAM_CHANNEL}      │
 │  updates · failures · distribution · movers · silent risk · gaps  │
 └───────────────────────────────────────────────────────────────────┘
```

### The health scale

The default scale has six levels. You can rename them or change the definitions with `{HEALTH_SCALE}`.

| Grade | Default definition |
|---|---|
| **Bright Green** | Expanding or about to expand; champion engaged; positive feedback; no open serious issues |
| **Green** | Healthy and stable; regular, normal usage and engagement; issues are routine and being handled |
| **Yellow** | Some concern: repeated issues, slower responses, a key contact change, or mild frustration |
| **Orange** | Real risk: escalations, open serious issues, a stalled rollout, budget or priority questions, or silent risk |
| **Red** | Likely to churn or downgrade without action: explicit dissatisfaction, evaluating competitors, renewal at risk |
| **Black** | Churned, or has given churn / non-renewal notice |

Two rules apply every week:

- **A quiet week alone never changes a grade.** No news is not good news or bad news by itself.
- **Silent risk is worse than noise.** An account with no cases, no emails and no calls because nobody is using the product is a bigger worry than an account filing bugs. The clone flags these separately.

## 4. What the clone does each week

1. **Builds the account list** from `{ACCOUNT_SCOPE}`, removes `{EXCLUSIONS}` (internal and referral/partner records), and uses `{NAME_MAPPINGS}` to connect aliases, product names and parent/child accounts.
2. **Sweeps four sources** for the previous 7 days, and records for each one whether it returned results, returned nothing, or failed.
3. **Reads the evidence** behind every keyword hit before counting it.
4. **Grades each account**, compares with the current grade, and writes a one-line reason for any change.
5. **Drafts the three fields**, carrying forward existing detail that is still true.
6. **Shows you a change table** (account, old grade → new grade, reason, field differences), with downgrades, lost detail and blocked records flagged.
7. **Writes only after your "yes"**, in small batches, touching only the three fields.
8. **Sends the weekly report.**

**What it never does:**

- Never writes to the CRM without your approval of that week's changes.
- Never touches any field other than the three you name.
- Never guesses values for required fields to get past a validation rule. It lists the record as blocked.
- Never emails customers. The only messages it sends are the report and approval requests to `{REPORT_RECIPIENTS}` / `{TEAM_CHANNEL}`.
- Never treats a failed lookup as "no activity".
- Never changes a grade just because a week was quiet.

## 5. Setup walkthrough

The quickest path: download **CLONE-INSTRUCTIONS.md** and give it to your clone. It will check what's already connected, ask you for the placeholder values, offer to help create the CRM fields, show you a plan, and set up what it can after you approve. The steps below are what happens, so you know what to expect.

**Step 1: Check requirements (10 min)**
Open **REQUIREMENTS.md** and run through the pre-flight checklist. You need a Salesforce or HubSpot operator with read and write access, Gmail or Outlook, Linear (recommended), a transcript source and the ability to create a scheduled task.

**Step 2: Hand the instructions to your clone (2 min)**
Paste or upload CLONE-INSTRUCTIONS.md into a chat with your clone and say: *"Please set up this use case for me. Show me a plan before changing anything."*

**Step 3: Review the discovery table (5 min)**
The clone reports which skills/operators and connections it has, and whether the three CRM fields exist.

**Step 4: Answer the placeholder questions (10–15 min)**
See the table in section 6. The ones that take the most thought are `{ACCOUNT_SCOPE}`, `{NAME_MAPPINGS}` and `{EXCLUSIONS}`.

**Step 5: Create the three CRM fields if needed (10–30 min)**
If they don't exist yet, the clone gives you the field type, picklist values and help text for each one (Salesforce or HubSpot). It creates them only if its CRM operator has admin rights and you approve. Otherwise a CRM admin creates them using the clone's steps.

**Step 6: Approve the plan (2 min)**
The clone lists exactly what it will attach, create and schedule. Say "yes" only when it looks right.

**Step 7: Do your part (15–30 min)**
Things only you (or your admins) can do:
- Complete sign-in (OAuth) for the CRM, email, tracker and file storage connections.
- Share the transcripts folder `{TRANSCRIPTS_FOLDER}` with the clone.
- Make sure the CRM integration user can **edit** the three fields (field-level permissions).
- Tell the clone about any validation rules that apply to `{WRITE_TARGET}` records.

**Step 8: Save the skill (5–10 min)**
If the clone can't create custom skills directly, it gives you the full skill text in a copy-paste block with exact steps. **Read it before you save it.**

**Step 9: Run the dry run (20–30 min)**
The first run is a **dry run**: the clone builds the full change table and report but writes nothing. Review the grades with someone who knows the accounts.

**Step 10: Approve the first real write**
When you're happy with the dry run, tell the clone to switch off dry-run mode. From then on, each week you review the change table and reply "yes".

## 6. Placeholders to decide

| Placeholder | What it means | Example |
|---|---|---|
| `{CLONE_NAME}` | Your clone's display name | "Ava" |
| `{CLONE_INBOX}` | The clone's own email address | ava@yourcompany.com |
| `{YOUR_COMPANY_DOMAINS}` | Your company's email domains (internal = these) | yourcompany.com, yourcompany.io |
| `{RUN_TIME}` | When the weekly run happens (with time zone) | Monday 7:00 AM America/New_York |
| `{CUSTOMER_DEFINITION}` | How your CRM marks a current customer | "Account Type = Customer AND Status = Active" |
| `{ACCOUNT_SCOPE}` | Which accounts or opportunities are graded | All current customers; or only renewal opportunities closing in the next 12 months |
| `{WRITE_TARGET}` | Where the three fields live | Account (one grade per customer) or Opportunity (one per deal/renewal) |
| `{TRANSCRIPTS_FOLDER}` | Where call transcripts are stored | Google Drive "Customer Calls/Transcripts", a OneDrive folder, or "my meeting archive" (plus call archive for phone calls) |
| `{NAME_MAPPINGS}` | Aliases, product names and parent/child links | "Northwind" = "Northwind Traders Ltd"; "Contoso Health" is a child of "Contoso Group" |
| `{EXCLUSIONS}` | Records never graded | Your own company's test account; referral partners; "Partner - " accounts |
| `{REQUIRED_FIELDS}` | Fields a validation rule requires before a save | Industry, Renewal Date, Customer Success Manager |
| `{HEALTH_SCALE}` | Grade names and definitions | Default 6 levels (Bright Green to Black), or your own |
| `{PAIN_POINTS_FIELD}` | Long text field for pain points | "Customer Pain Points" |
| `{HEALTH_FIELD}` | Picklist field for the grade | "Account Health" |
| `{INTEGRATIONS_NEEDED_FIELD}` | Text field for integration requests | "Integrations Needed" |
| `{REPORT_RECIPIENTS}` | Who receives the weekly report and approval request | cs-leads@yourcompany.com |
| `{TEAM_CHANNEL}` | Optional chat channel for the report | #customer-health (Slack) or a Teams channel |

Tip: set `{RUN_TIME}` early in the week so the approver has time to review the change table before the Monday or Tuesday pipeline and CS meetings.

## 7. What to expect day to day

- **Every week at {RUN_TIME}:** the sweep starts. Large books of business can take a while; the clone works through accounts in order and reports progress.
- **Shortly after:** an approval message lands with `{REPORT_RECIPIENTS}` (and/or `{TEAM_CHANNEL}`): the change table, flagged downgrades, records where detail would be lost, blocked records and failed sources.
- **You review (10–15 minutes):** reply "yes", "yes except Northwind", or ask questions. The clone can explain any grade with its evidence.
- **After approval:** the clone writes in small batches and sends the final weekly report with what was updated, what failed (with exact error messages), the health distribution, movers and why, silent-risk accounts and tracking gaps.
- **If you don't reply,** nothing is written. The clone reminds you once and the proposed changes stay in the report.
- **Off-cycle:** you can ask "Run Account Health Autopilot for Contoso only" at any time, with the same approval step.

## 8. Customizing

**Health scale.** Rename levels, change definitions, or use fewer levels. Change `{HEALTH_SCALE}` in the skill and update the picklist values in your CRM to match exactly.

**Lookback window.** The default is 7 days. You can change it to 14 days for a biweekly cadence (change `{RUN_TIME}` too).

**Scope.** Grade all customers, only a segment (e.g. enterprise), only one CSM's book, or only renewal opportunities.

**Sources.** Add or remove sources at any time, for example a product usage export kept in Google Sheets or Excel (very useful for spotting silent risk). The skill reports which sources worked.

**Approval style.** Keep full approval every week (recommended), or after a few weeks, ask for "auto-approve upgrades and unchanged grades; ask me about downgrades and lost detail". Change it in the skill's Guardrails.

**Report format.** Email only, chat only, or both; add a "top 5 at-risk accounts by renewal date" section; split by CSM.

## 9. Known gotchas

- **A failed lookup is not zero results.** If the email or case search fails and is counted as "nothing found", the account looks quiet and healthy. The skill reports every source as results / no results / failed, and never grades an account as healthier because a source failed.
- **Customers use personal email addresses.** Contacts often write from gmail.com or outlook.com. That's why email is searched by company name **and** domain, plus known contact addresses.
- **Cases get filed under the wrong account.** Support cases are often logged against a parent account, a reseller or a placeholder. The skill runs a secondary text search on case subjects and descriptions to catch them.
- **Company-name false positives.** A customer named after a common word (think "Summit", "Apex" or "Bright") will match lots of unrelated emails and transcripts. The skill reads each hit to confirm it's really about that customer.
- **Validation rules block saves.** If your CRM requires certain fields (`{REQUIRED_FIELDS}`) before a record can be saved, the write will fail on records missing them. The clone never invents values; it lists the record as blocked so a person can fill in the gap.
- **Overwriting can lose detail.** The pain points field is overwritten each week. The skill carries forward unique detail that's still true and flags anything it plans to drop, so you can say no.
- **A quiet week shouldn't change a grade.** Holidays and slow weeks happen. Only real evidence moves a grade.
- **Silent risk hides in plain sight.** No activity at all can mean nobody's using the product. These accounts are flagged, not marked healthy.
- **Field-level permissions.** The CRM integration user (the account the clone's CRM operator signs in as) needs edit rights on the three fields specifically. A user who can edit the record but not the field gets a permission error. This is the most common first-week failure.
- **Picklist values must match exactly.** "Bright green" vs "Bright Green" can fail or create a stray value. Keep `{HEALTH_SCALE}` and the picklist identical.
- **Name mappings drift.** New products, acquisitions and renamed accounts break matching. Review `{NAME_MAPPINGS}` every quarter.
- **The clone only sees what's shared with it.** If transcripts live in a folder it can't open, or support is in a tool it isn't connected to, that source shows as failed or missing.
- **Use exact skill/operator names** as they appear in your skill catalog. The clone checks them during discovery.
- **Read every instruction before saving it into a skill.** You're responsible for what your clone does and what it writes into your CRM.

## 10. FAQ

**Does this work with my CRM?**
Yes, if your CRM is **Salesforce** or **HubSpot**. Those are the two CRMs the clone has operators for today. See the Salesforce to HubSpot mapping in REQUIREMENTS.md. On HubSpot there is no tickets/cases operator, so the support signal comes from notes, tasks and engagements.

**Is there a faster option?**
Yes. The prebuilt skill **Weekly-Account-Health-Update** can be attached through the platform as a quick start. Use this card when you want full control over the scale, sources, fields and approval flow.

**Will it change anything in my CRM without asking?**
No. Every week it shows the full change table and writes only after an explicit "yes". The first run is a dry run with no writes at all.

**Which fields will it touch?**
Only the three you name: `{PAIN_POINTS_FIELD}`, `{HEALTH_FIELD}` and `{INTEGRATIONS_NEEDED_FIELD}`. Nothing else.

**Do the fields have to exist already?**
No. The clone gives you the exact field setup (type, picklist values, help text) and can create them if its CRM operator has admin rights and you approve.

**Will the clone email my customers?**
No. It reads email; it sends only the report and approval request to your team.

**What if I don't have Linear or transcripts?**
It still works with fewer sources, but grades are less reliable. Each missing source is listed in every report so nobody mistakes "not checked" for "nothing happened".

**Can it grade opportunities instead of accounts?**
Yes. Set `{WRITE_TARGET}` to opportunity (useful when one customer has several contracts or renewals).

**How long does the weekly approval take?**
Usually 10–15 minutes to read the change table, longer if there are many downgrades worth discussing.

## 11. Troubleshooting

| Symptom | Likely cause | Fix |
|---|---|---|
| No approval message arrived | Scheduled task missing, paused, or wrong time zone | Ask the clone to list its scheduled tasks; check `{RUN_TIME}` time zone |
| Every account came back Green | A source failed and was treated as "no results", or dry run used too few sources | Check the source status section; fix the connection and re-run |
| "INSUFFICIENT_ACCESS" or "field not writable" errors | Integration user lacks field-level edit permission | CRM admin grants edit on the three fields to the integration user |
| "Required field missing" / validation error | A validation rule needs `{REQUIRED_FIELDS}` filled | Fill the missing values on the blocked records; the clone retries next run |
| Picklist error on the health field | Grade name doesn't match the picklist value | Make the picklist values and `{HEALTH_SCALE}` identical |
| Unrelated emails cited as evidence | Company name is a common word | Add the name to `{NAME_MAPPINGS}` with "match only with domain"; the skill already verifies hits |
| A known escalation was missed | Case filed under another account, or contact used a personal address | Add the alias or parent/child link to `{NAME_MAPPINGS}`; check the secondary case search ran |
| Partner or internal account was graded | Not in `{EXCLUSIONS}` | Add it to `{EXCLUSIONS}` |
| Pain points lost older detail | Detail judged no longer true, or approver missed the "lost detail" flag | Ask the clone to restore it next run; review the lost-detail column before approving |
| Transcripts: "lookup failed" | Folder not shared with the clone, or file storage connection expired | Share `{TRANSCRIPTS_FOLDER}` with `{CLONE_INBOX}`; re-run sign-in |

---

**Version:** 1.1.0 · **Last updated:** 2026-10-22 · Part of the Clone Use Case Library.
