Skene catches the broken signal before your campaign sends to the wrong list.
Every lifecycle campaign assumes a signal still means what you think it means. When it stops meaning that, the campaign does not error. It sends to the wrong list, or to nobody.
Sign in, connect a source, run one free audit. No card.
A release that moves a signal
Flagged before it ships, not after the campaign stops sending.
Track
- Opened: renames where the signal fires
- Checked: the trigger depends on the old location
- Fix proposed: inline, on the line that moved
Campaigns keep sending to the right people
A broken signal sends to nobody or to the wrong list. Skene flags it before the campaign does either.
You hear about it first
The break is caught in the release that caused it, not in a Slack message weeks later.
Never messages your customers
No sends, no schedules, no triggers. Does not touch your lifecycle tool.
A campaign wired to a broken signal does not fail loudly.
Either it sends to nobody or it sends to the wrong people, and you hear about it weeks later.
The campaign that does not error.
- Signal stopped arriving, 0 events
- Condition never true, 0 qualified
- SignalStopped arriving
- 0events
- ConditionNever true
- 0qualified
- SendNothing to send
No error anywhere on this path. The campaign is healthy and sending nothing.
The signal still fires. It means something else now.
Your welcome sequence starts going to people whose workspace never finished being created.
trial_expiring,trial_reminder_email_sent,trial_converted, all missing
Convert an expiring trial by email
Verify · 0 of 3 requirements confirmed
The map is read out of your code and your schema.
Seven stages, and every milestone under them points at a file path, a table or a config file.
- Discovery, Onboarding, Activation, Engagement, Retention, Expansion, Virality
- 16-platform scan, no model in the loop
- Discovery
- app/signup/route.ts
- Onboarding
- public.workspaces
- Activation
- public.sources
- Retention
- public.subscriptions
Most teams still catch this by hand.
A Slack message after the numbers look wrong. Skene catches it in the pull request that caused it.