Health Score Alerting
Route health score changes to interventions — in-app messages for at-risk, personal outreach for critical, expansion prompts for healthy
npx gtm-skills add drill/health-score-alertingWhat this drill teaches
Health Score Alerting
This drill connects health score outputs to concrete interventions. When a score changes, the right action fires automatically: in-app nudges for declining engagement, personal outreach for critical accounts, and expansion prompts for healthy accounts showing growth signals.
Prerequisites
- Health scores computed and synced to Attio (run
health-score-model-designdrill first) - Intercom configured with the product's Messenger installed
- Loops configured for triggered emails
- n8n instance connected to Attio, Intercom, Loops, and PostHog
- At least 2 weeks of health score history to establish baselines
Steps
1. Define intervention tiers
Map health score transitions to intervention types. The trigger is the CHANGE, not the absolute score:
Tier 1 — Proactive nudge (automated, in-app)
- Trigger: Score drops from Healthy to Monitor, OR any dimension drops >15 points in one week
- Action: In-app message via Intercom highlighting the dimension that dropped
- Example: If engagement_score dropped because the account stopped using a core feature, send: "Your team hasn't used [Feature] in 2 weeks. Here's what's new: [link to changelog]."
- Use
intercom-in-app-messagesto send targeted messages based on the specific declining dimension
Tier 2 — Outreach email (automated, email)
- Trigger: Score drops to At Risk (40-59), OR score has been in Monitor for 3+ consecutive weeks with no improvement
- Action: Triggered email via Loops from the account owner
- Template: Personalized with the account's specific usage data. "I noticed your team's usage of [Product] has slowed down. Anything we can help with?"
- Use
loops-transactionalwith dynamic properties: account name, declining dimension, specific feature or behavior that changed - CC the account owner in Attio so they have context
Tier 3 — Urgent intervention (human-assisted)
- Trigger: Score drops to Critical (0-39), OR score drops >20 points in a single week regardless of tier
- Action: Create an urgent task in Attio for the account owner. Include: current score, dimension breakdown, score history for the last 8 weeks, specific signals that triggered the drop.
- Use
attio-notesto log the intervention with full context - Human action required: Account owner calls the customer within 48 hours with a specific plan to address the declining dimension
Tier 4 — Expansion signal (automated, in-app + CRM)
- Trigger: Score is Healthy (80+) AND usage_score is in the top 20th percentile AND team_penetration > 80%
- Action: In-app message suggesting next-tier features, team expansion, or plan upgrade. Flag the account in Attio as "Expansion Ready" for the sales team.
- Use
intercom-in-app-messagesfor the in-app prompt andattio-health-score-syncto update the expansion flag
2. Build the alerting workflow in n8n
Using n8n-triggers, create a workflow triggered by the daily health score pipeline completing:
- Input: Receive the list of accounts whose scores changed today (from the
health-score-model-designscoring pipeline) - Classify transitions: For each account, determine:
- Previous risk level and current risk level
- Which dimensions changed and by how much
- How long the account has been at the current risk level
- Route to intervention tier: Apply the rules from step 1
- Execute actions:
- Tier 1: Call Intercom API via
intercom-in-app-messagesto queue the in-app message - Tier 2: Call Loops API via
loops-transactionalto trigger the outreach email - Tier 3: Create Attio note and task via
attio-notes - Tier 4: Call Intercom API for expansion prompt and update Attio record
- Tier 1: Call Intercom API via
- Log all interventions: Using PostHog
posthog-cohorts, track which accounts received which interventions so you can measure intervention effectiveness
3. Build intervention effectiveness tracking
For each intervention, track whether it worked:
Using n8n-workflow-basics, create a follow-up workflow that runs 14 days after each intervention:
- Pull the account's current health score from Attio
- Compare to the score at intervention time
- Classify outcome:
- Recovered: Score improved by 10+ points or moved to a better risk tier
- Stabilized: Score stopped declining (within +/- 5 points)
- Continued declining: Score dropped further
- Churned: Account cancelled or went inactive
- Log the outcome in PostHog as
health_intervention_outcomewith properties: intervention_tier, dimension_targeted, days_to_response, outcome
4. Configure rate limiting
Prevent alert fatigue:
- Maximum 1 in-app message per account per 7 days (Tier 1)
- Maximum 1 outreach email per account per 14 days (Tier 2)
- No rate limit on Tier 3 (critical accounts need immediate attention)
- Maximum 1 expansion prompt per account per 30 days (Tier 4)
- If an account received a Tier 2 intervention in the last 14 days, do NOT escalate to Tier 3 unless the score drops to Critical. Give the previous intervention time to work.
5. Build the weekly intervention summary
Using n8n-workflow-basics, generate a weekly report:
# Health Score Intervention Summary — Week of [date]
## Overview
- Total accounts scored: [N]
- Healthy: [N] ([%]) | Monitor: [N] ([%]) | At Risk: [N] ([%]) | Critical: [N] ([%])
## Interventions This Week
| Tier | Triggered | Accounts | Recovery Rate |
|------|-----------|----------|---------------|
| Tier 1 (Nudge) | [N] | [list] | [%] |
| Tier 2 (Email) | [N] | [list] | [%] |
| Tier 3 (Urgent) | [N] | [list] | [%] |
| Tier 4 (Expansion) | [N] | [list] | [N/A] |
## Biggest Movers
- Improved most: [Account] — [old score] → [new score] (reason)
- Declined most: [Account] — [old score] → [new score] (reason)
## Intervention Effectiveness (trailing 30 days)
- Recovery rate (all tiers): [%]
- Average time to recovery: [N] days
- Most effective intervention type: [Tier X]
Post to Slack and store in Attio.
Output
- An n8n workflow that routes health score changes to the appropriate intervention
- Automated in-app messages for declining accounts (Tier 1)
- Automated outreach emails for at-risk accounts (Tier 2)
- CRM tasks for critical accounts requiring human intervention (Tier 3)
- Expansion signals for healthy accounts (Tier 4)
- Intervention effectiveness tracking with 14-day follow-up
- Weekly intervention summary report
Triggers
- Alerting workflow: triggered by daily health score pipeline completion
- Intervention follow-up: 14 days after each intervention
- Weekly summary: cron, Monday 09:00 UTC