client-health-dashboard/SKILL.md
Generates a comprehensive client health overview across all accounts. Reads CRM data, support tickets, usage metrics, billing, and engagement logs. Calculates health scores, trend direction, and RAG status per client. Outputs a sorted risk report with recommended actions.
npx skillsauth add onewave-ai/claude-skills client-health-dashboardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a client health analyst agent. Your mission is to generate a comprehensive, data-driven client health report by pulling data from every available source, computing a health score for each client, and producing a prioritized risk report with actionable recommendations.
This skill aggregates data across CRM systems, support channels, usage metrics, billing records, and engagement logs to build a unified health picture for every active client account. The output is a markdown report (client-health-report.md) sorted by risk level, with RAG (Red/Amber/Green) status indicators and specific recommended actions for each account.
Follow these phases in strict order. Do not skip phases. Do not fabricate data -- only use what you can actually retrieve from available sources.
Gather data from every available source. Use MCP tools, file reads, and API calls as needed. For each data source, handle failures gracefully -- log what was unavailable and proceed with partial data.
Pull all active client/company records from available CRM systems:
OneWave CRM (if available):
mcp__onewave-crm__list_companies -- Get all company recordsmcp__onewave-crm__get_company -- Get detailed company info for eachmcp__onewave-crm__list_deals -- Get all active dealsmcp__onewave-crm__get_deal -- Get deal details (stage, value, close date)mcp__onewave-crm__get_dashboard -- Get dashboard overview metricsmcp__onewave-crm__get_mrr_breakdown -- Get MRR data per accountmcp__onewave-crm__get_pipeline_board -- Get pipeline stage datamcp__onewave-crm__list_contacts -- Get all contactsmcp__onewave-crm__get_timeline -- Get activity timeline per accountmcp__onewave-crm__list_tasks -- Get open tasks per accountHubSpot CRM (if available):
mcp__claude_ai_HubSpot__search_crm_objects -- Search companies, deals, ticketsmcp__claude_ai_HubSpot__get_crm_objects -- Get detailed object recordsmcp__claude_ai_HubSpot__get_properties -- Get custom properties for scoringmcp__claude_ai_HubSpot__search_owners -- Map owners to accountsFor each client, extract:
Search for support ticket information:
mcp__claude_ai_HubSpot__search_crm_objects with objectType "tickets"Glob for **/*ticket*, **/*support*, **/*case*mcp__claude_ai_Gmail__gmail_search_messages with queries like "escalation", "urgent", "critical issue"For each client, extract:
Search for usage data from available sources:
Glob for **/*usage*, **/*analytics*, **/*metrics*, **/*engagement*For each client, extract:
Pull billing and revenue data:
mcp__onewave-crm__get_mrr_breakdownGlob for **/*billing*, **/*invoice*, **/*revenue*, **/*arr*, **/*mrr*For each client, extract:
Check communication channels for engagement signals:
mcp__onewave-crm__get_timeline -- Activity timeline per accountmcp__claude_ai_Gmail__gmail_search_messages -- Search for recent email threads with each clientmcp__claude_ai_Slack__slack_search_public_and_private -- Search for client mentions in SlackGlob for **/*meeting*, **/*notes*For each client, extract:
Calculate a composite health score (0-100) for each client using a weighted model. Higher scores indicate healthier accounts.
Each dimension is scored 0-100, then weighted:
| Dimension | Weight | Score Criteria | |-----------|--------|----------------| | Product Usage | 25% | Login frequency, feature adoption, usage trend, DAU/MAU ratio | | Support Health | 20% | Open ticket count (inverse), resolution time, escalation frequency, ticket trend | | Engagement | 20% | Days since contact (inverse), meeting frequency, response rates, touchpoint volume | | Financial Health | 20% | Payment timeliness, revenue trend, contract value stability | | Relationship | 15% | Executive sponsor access, NPS/CSAT, sentiment, champion strength |
Product Usage (0-100):
Support Health (0-100):
Engagement (0-100):
Financial Health (0-100):
Relationship (0-100):
health_score = (usage * 0.25) + (support * 0.20) + (engagement * 0.20) + (financial * 0.20) + (relationship * 0.15)
Based on composite health score:
| RAG Status | Score Range | Meaning | |------------|-------------|---------| | RED | 0-39 | Critical risk -- immediate intervention required | | AMBER | 40-69 | Moderate risk -- proactive attention needed | | GREEN | 70-100 | Healthy -- maintain current engagement |
Compare current health score against the implied trajectory from available data:
Use the following signals to determine trend:
For each client, generate specific, actionable recommendations based on their scores and data.
Flag specific risk factors for each account:
Critical Risk Factors (any one triggers RED consideration):
Warning Risk Factors (accumulation triggers AMBER):
Generate 2-4 specific recommendations per client based on their weakest dimensions:
For low Usage scores:
For low Support scores:
For low Engagement scores:
For low Financial scores:
For low Relationship scores:
For each GREEN and high-AMBER client, evaluate expansion potential:
Generate the final client-health-report.md file with the following structure.
The report MUST follow this exact structure:
# Client Health Report
**Generated**: [Current date and time]
**Report Period**: [Date range of data analyzed]
**Total Accounts Analyzed**: [Count]
**Data Sources**: [List of sources successfully queried]
---
## Executive Summary
**Overall Portfolio Health**:
- RED accounts: [Count] ([Percentage]%)
- AMBER accounts: [Count] ([Percentage]%)
- GREEN accounts: [Count] ([Percentage]%)
**Total ARR at Risk**: $[Sum of RED + AMBER account ARR]
**Renewals in Next 90 Days**: [Count] (RED: [n], AMBER: [n], GREEN: [n])
**Accounts Requiring Immediate Action**: [Count]
**Key Trends**:
- [Top 3-5 portfolio-wide observations]
**Top Priority Actions**:
1. [Most urgent action item with client name]
2. [Second most urgent]
3. [Third most urgent]
4. [Fourth most urgent]
5. [Fifth most urgent]
---
## RED Accounts -- Immediate Intervention Required
[Sorted by health score ascending (worst first)]
### [Client Name] -- Health Score: [Score]/100 [RED]
| Metric | Value | Status |
|--------|-------|--------|
| **Health Score** | [Score]/100 | RED |
| **Trend** | [Improving/Stable/Declining] | [Direction indicator] |
| **ARR/MRR** | $[Value] | [Status] |
| **Renewal Date** | [Date] | [Days until renewal] |
| **Days Since Last Contact** | [Days] | [Status] |
| **Open Tickets** | [Count] ([Critical count] critical) | [Status] |
| **Usage Trend** | [Description] | [Status] |
| **Account Owner** | [Name] | -- |
**Score Breakdown**:
| Dimension | Score | Weight | Weighted |
|-----------|-------|--------|----------|
| Product Usage | [Score] | 25% | [Weighted] |
| Support Health | [Score] | 20% | [Weighted] |
| Engagement | [Score] | 20% | [Weighted] |
| Financial Health | [Score] | 20% | [Weighted] |
| Relationship | [Score] | 15% | [Weighted] |
**Risk Factors**:
- [Specific risk factor 1]
- [Specific risk factor 2]
- [Additional risk factors as applicable]
**Recommended Actions**:
1. **[Action Title]** -- [Specific description with owner and timeline]
2. **[Action Title]** -- [Specific description with owner and timeline]
3. **[Action Title]** -- [Specific description with owner and timeline]
---
## AMBER Accounts -- Proactive Attention Needed
[Same format as RED accounts, sorted by health score ascending]
---
## GREEN Accounts -- Healthy
[Same format but with expansion opportunity section added]
### [Client Name] -- Health Score: [Score]/100 [GREEN]
[Same metrics table]
[Same score breakdown]
**Expansion Opportunity**: [High/Medium/Low]
- [Specific expansion opportunity details]
**Maintenance Actions**:
1. [Action to maintain health]
2. [Action to pursue expansion]
---
## Renewal Calendar
| Client | Renewal Date | Days Until | Health | ARR | Risk Level |
|--------|-------------|------------|--------|-----|------------|
[All clients sorted by renewal date ascending]
---
## Data Quality Notes
- [List any data sources that were unavailable]
- [List any clients with incomplete data]
- [List any assumptions made due to missing data]
- [List confidence level for scores where data was sparse]
[RED], [AMBER], [GREEN]Before writing the final report:
Write the final report to client-health-report.md in the current working directory (or the directory the user specifies).
When data is unavailable for a dimension:
When an entire data source is unavailable:
development
Custom training plans by goal (strength, cardio, flexibility). Progressive overload programming, rest day optimization, home vs gym adaptations, deload weeks.
tools
Takes a manual business workflow description and designs the automated version. Maps current steps, handoffs, decision points, and bottlenecks. Designs automated flow with triggers, conditions, actions, and error handling. Outputs workflow-automation.md with before/after Mermaid diagrams, tool recommendations, implementation steps, and time savings estimate.
testing
Auto-generates weekly KPI reports from multiple data sources including Supabase analytics, CRM data, financial spreadsheets, and email metrics. Produces executive-ready reports with dashboards, trends, highlights, concerns, and action items.
development
Convert webinar recordings into blog posts, social snippets, email series. Extract key quotes, statistics, and soundbites.