Catch churn-risk signals
Turn the small signals — a downgrade, a usage drop, a support spike — into one scored alert that reaches the account owner while there's still time to act.
the event
Emit churn.signal once; route it anywhere below.
- customer_idstring
- signalstringdowngrade | usage-drop | support-spike
- scorenumber0–1 risk
- mrrnumberminor units at risk
import { ingest } from "@ingestlayer/sdk";
await ingest("churn.signal", {
customer_id: account.id,
signal: "usage-drop",
score: risk,
mrr: account.mrr,
});send it to
- Catch churn-risk signals in SlackSlack
- Catch churn-risk signals in DiscordDiscord
- Catch churn-risk signals in TelegramTelegram
- Catch churn-risk signals in EmailEmail
- Catch churn-risk signals in WebhookWebhook
- Catch churn-risk signals in PostgresPostgres
- Catch churn-risk signals in NotionNotion