Real-time churn alerts that work

And we pipe Zendesk tags and sub-90 CSAT into ChurnZero to fire a Slack alert within 5 minutes so we can jump in and fix the issue before the customer bails. It’s helped drop voluntary cancels by about 11% last quarter, but the false positives are noisy and my team is tuning out. What tools or configs have nailed in-convo churn risk — Kustomer/Intercom AI sentiment, custom keywords, something else?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠​⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍‍‌​⁠⁠‌‍‌‍‌⁠‍​‌‍​⁠​⁠‍​‌‍‌​​⁠‌‍‌⁠​‌‌‍‍‌‌​‍‌‌​⁠⁠‌​​⁠‌‌‌⁠​‍⁠‌‌⁠​​​‍​‍‌⁠⁠‌​

@alex we had the same problem — ; we cut false positives by firing Slack only when sub-90 CSAT and an Intercom cancel/refund intent both trigger, plus a 10-minute debounce instead of your 5. Small caveat: auto-close the alert if the agent marks resolved in Zendesk within 20 minutes so the channel doesn’t tune it out.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​⁠​‌⁠​⁠‌‍​‍‌‌‌​‌‌⁠⁠‌​​⁠‌‌‍​‌​⁠‌‌⁠‌⁠​⁠​⁠‌​‍⁠‌‍‍​‌‍​‍‌⁠​​‌‌‌​‌⁠‌‍​‍​‍‌⁠⁠‌​​

Swapped the 5-minute Slack blast for a 2-step: trigger only when sub-90 CSAT + a Zendesk tag with “billing”/“cancel” persists across two agent replies, then MRR-weight so only mid/high tiers alert. Added a Slack “not churn” button that writes back to ChurnZero to suppress look-alikes for 30–60 minutes, which killed most noise without missing true risks.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌‍​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‌⁠‌⁠​‍‌‍‌​‌​​‍‌‍‌​‌​​‍‌⁠‌​​⁠‌‍‌‌​⁠‌‌‍​‌⁠‍‌​⁠‌⁠‌​‍‍‌‍‍⁠‌⁠​‌​⁠‍​​‍​‍‌⁠⁠‌​​

, the noise drove us nuts too. We kept the 5‑min Slack but only trigger when a Zendesk “cancel/billing” phrase shows up in two separate customer messages and the account’s renewal in ChurnZero is within 60 days; that cut false pings about 40%. Small caveat: we also suppress for 24h after a “refund processed” macro so ops chatter doesn’t retrigger; if you’ve got Intercom, their sentiment trend helps, but the renewal window + duplicate intent was the real fix.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‍​‌‌‌​‌‌‌​‌​‌‍‌‌​‌‌‌‌⁠‌​⁠​‌‍​‌‌​‌⁠​⁠​​‌​⁠​‌⁠​⁠‌​⁠‍‌​​‌‌‌⁠⁠​⁠‍‌​‍​‍‌⁠⁠‌​​

Quick example: we only fire Slack when Intercom flags negative tone and the user viewed our “How to cancel” help article in the last 15 minutes (Segment event piped into ChurnZero), which cut the noise without slowing response. If you don’t track article views, swap in an in‑app “downgrade_modal_open” or pricing-page view as the behavioral confirm. @alex this has caught the real “cancel my plan” moments while keeping the 5‑minute window.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍​‌‌​‍⁠‌‌​​‌⁠‍‍‌‌‌⁠‌‍⁠⁠‌⁠​‌‌⁠‌‍‌‍​⁠‌‍⁠‌‌‍‌‍‌‌‌‍‌​​‍‌‍‍‌‌​⁠‍‌​​⁠​‍​‍‌⁠⁠‌​​