Spot and recover at-risk customer accounts
Detect meaningful usage drops, assemble the account story, and trigger a human check-in before renewal risk grows.
at-risk-customer-rescue.md
Spot and recover at-risk customer accounts
Set up the tools below, then run the steps in order for the user.
Inputs
Ask the user for these before you start.
drop_threshold: the usage drop that counts, e.g. 40%renewal_window: how soon renewal is, e.g. 90 dayscs_channel: where to escalate, e.g. #customer-success
Set up
Run a query (Mixpanel, tool:mixpanel/run-query)
Use the MCP server. Add it to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "mixpanel": { "url": "https://mcp.mixpanel.com/mcp" } } }
Call the MCP tool Run-Query.
Stripe (tool:stripe/list-customers, tool:stripe/list-subscriptions)
Use the first option your agent supports.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "stripe": { "url": "https://mcp.stripe.com" } } }
- List customers: call the MCP tool
stripe_api_read - List subscriptions: call the MCP tool
stripe_api_read
CLI (official)
Install the command, then confirm it runs.
npm install -g @stripe/cli
stripe --version
- List customers: run
stripe customers list - List subscriptions: run
stripe subscriptions list
Post a message (Slack, tool:slack/post-message)
Use the first option your agent supports.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "slack": { "url": "https://mcp.slack.com/mcp" } } }
Call the MCP tool slack_send_message.
CLI (official)
Install the command, then confirm it runs.
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
slack --version
Run slack api chat.postMessage.
Set $SLACK_BOT_TOKEN in your environment first (get a key: https://api.slack.com/apps).
Generate an email (Brew, tool:brew/generate-email)
Use the first option your agent supports.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "brew": { "url": "https://brew.new/api/mcp" } } }
Call the MCP tool create_email.
CLI (official)
Install the command, then confirm it runs.
brew install getbrew/tap/brew-cli
brew-cli --version
Run brew-cli emails generate.
Set $BREW_API_KEY in your environment first (get a key: https://brew.new/settings/api).
Make one read-only call to each tool to confirm access.
Steps
- Detect drops with Run a query (Mixpanel). List accounts whose usage fell more than
drop_thresholdversus the prior 30 days. Keep an email for each account, such as its admin's. - Find their customers with List customers (Stripe). Look up each email, as stored and lowercased, and keep every customer ID it returns.
- Check renewals with List subscriptions (Stripe). For each customer, keep the accounts whose subscription item's
current_period_endfalls withinrenewal_window. - Escalate with Post a message (Slack). Post one message per account to
cs_channelwith the usage numbers and renewal date. - Draft the check-in with Generate an email (Brew). Draft a short check-in email from the account manager for each account. Show the drafts to the user.
Done when
- Every at-risk account has a Slack post and a drafted email.
- The user has the list ordered by renewal date.
Rules
- Only use the tools listed above.
- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
Built from these files in the repository
- workflows/at-risk-customer-rescue.md
- companies/mixpanel/tools/run-query.md
- companies/mixpanel/company.md
- companies/stripe/tools/list-customers.md
- companies/stripe/company.md
- companies/stripe/tools/list-subscriptions.md
- companies/slack/tools/post-message.md
- companies/slack/company.md
- companies/brew/tools/generate-email.md
- companies/brew/company.md
The layout and the rules come from lib/catalog/render-markdown.ts, the set-up wording from lib/catalog/render-access.ts.
