ingestlayer/recipes

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
emit churn.signal
import { ingest } from "@ingestlayer/sdk";

await ingest("churn.signal", {
  customer_id: account.id,
  signal:      "usage-drop",
  score:       risk,
  mrr:         account.mrr,
});

send it to