Weekly Kustomer churn risk review of your highest value accounts
Every Monday at 8am, get a ranked top ten of the high value accounts most likely to leave, based on what they actually told support.
Every Monday at 8am, run a churn risk review of our highest value accounts and build it entirely from what those customers actually said to support. Use a weekly cron trigger.
Start in Kustomer with Search Customers, using structured criteria to pull our VIP or high value segment. That might be customers carrying a vip or high-value tag, sitting on our top plan tier, or above a lifetime value threshold, so make the segment definition easy to edit at the top of the workflow. Keep this set deliberately bounded, roughly 50 to 200 customers. Kustomer has no operation that lists conversations across the whole organization, so every conversation read has to fan out from a known customer, and an unbounded segment will exhaust the rate limit before the review finishes. Page through the search results and stop once the segment is complete or a sensible cap is reached.
For each customer in that segment, call Get Conversations by Customer, keep only the conversations created or updated in the last 14 days, then call Get Messages by Conversation on each of those to read the actual thread. Kustomer list endpoints are cursor paginated with a maximum page size of 100, so request full pages and follow the cursor. Rate limits are plan based, somewhere between 300 and 2,000 requests per minute, so pace the fan out, and if a 429 comes back, back off and retry that customer rather than dropping them from the review.
Score each account from 0 to 100 on real risk signals rather than raw ticket volume. The signals that matter are: the same unresolved problem coming back across multiple separate contacts, language that escalates in frustration across the window, any explicit mention of cancelling, not renewing, refunds, or evaluating a competitor, and conversations still sitting open past a few days with no agent reply. Weight explicit cancellation or vendor switching language highest. A customer who contacted support ten times and got a clean resolution every time is not a risk and must not outrank a customer with two angry unresolved threads.
For every account that surfaces, look up the matching record in HubSpot with Search Contacts, matching on the customer's email first and falling back to company or name. Then call List Owners and resolve that contact's owner id to a real person with a name and email. If no HubSpot contact matches, still include the account in the report and mark the owner as unassigned rather than silently dropping it.
Post a ranked top ten to Slack with Send a Message into the customer success channel. One line per account, highest risk first, each line naming the customer, the risk score, a single sentence reason, and the HubSpot owner who should chase it. Keep the reason concrete and grounded in what was actually said, for example "fourth contact in 11 days about the same failed export, now asking how much notice the contract needs", never a generic "shows signs of dissatisfaction". Lead the message with the review date and how many accounts were scanned. If nothing crosses the risk threshold, post a short all clear instead of an empty list.
For any account scored as high risk, also file a HubSpot task with Create Task assigned to that account's owner, so the follow up does not get lost in the channel. Title the task with the customer name and the headline risk, put the one sentence reason plus the relevant Kustomer conversation ids in the body, set the due date two business days out, and set priority to high. Associate the task with the matched contact. Skip task creation when the owner could not be resolved, and say so in the Slack post.
If a customer in the segment had no support contact in the last 14 days, skip them quietly, since silence is not a risk signal on its own here. This workflow only reads from Kustomer and only writes to Slack and HubSpot. It must never send anything to a customer.
Example output
What does this prompt do?
- Pulls your VIP or high value customer segment every Monday morning and reads everything those customers sent support in the last 14 days
- Scores each account on real warning signs: the same unresolved problem coming back, language that gets more frustrated, talk of cancelling or switching vendors, and tickets left open for days
- Posts a ranked top ten to Slack where every line names the customer, the risk score, a one sentence reason, and the account owner who should chase it
- Files a follow up task on the owner's HubSpot record for anything scored high risk, so the save does not get lost in the channel
What do I need to use this?
- A Kustomer account, plus some way to identify your VIP or high value customers such as a tag, plan tier, or segment
- A HubSpot login where those customers exist as contacts and account owners are assigned
- A Slack workspace and the channel your customer success team actually reads
How can I customize it?
- Move the review to a different day or time, for example Friday afternoon so owners can plan the week ahead
- Change which customers count as high value, and widen or narrow the 14 day lookback window
- Set how many accounts make the ranked list, and how high a score has to be before it becomes a HubSpot task
FAQs
Which customers does this actually look at?
Do my customers need to be tagged as VIP in Kustomer already?
Will it message my customers or reply to their tickets?
What happens if an account is not in HubSpot?
What counts as a churn risk signal?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.
Stop hearing about churn from the cancellation email.
Your support inbox already knows which accounts are in trouble. This puts that list in front of the right owner every Monday morning.