Automated Sunset Engine
The Automated Sunset Engine identifies contacts who have gone quiet across all engagement signals — opens, clicks, form submits, and purchases — and either enrolls them into a re-engagement journey or suppresses them automatically. Running this policy regularly is one of the most effective ways to protect your domain's sending reputation and keep your list clean.
Why sunsetting matters
Sending to contacts who never engage drags down your open rate and, more importantly, damages your sender reputation with mailbox providers. ISPs treat a high proportion of unread mail as a signal that recipients didn't ask for it — which affects deliverability for your entire list, not just the inactive slice. Suppressing genuinely inactive contacts before they become complaints is cheaper than recovering from a reputation hit.
How inactivity is calculated
A contact is considered inactive when their most recent engagement — the latest timestamp across opens, clicks, form submissions, and purchases — is older than your configured inactivity threshold (60–180 days, defaulting to 90). Contacts with no engagement record at all are treated as inactive from their creation date.
Configuring the policy
Go to Settings → Deliverability → Sunset Policy to configure:
| Field | Default | Notes |
|---|---|---|
| Enabled | Off | Toggle to activate the nightly sweep. |
| Inactivity threshold | 90 days | How long a contact must be silent before they're considered inactive. Configurable 60–180 days. |
| Re-engagement journey | None | Optionally enroll inactive contacts into a journey (e.g. a scratch-off win-back) before suppressing them. Leave blank to skip directly to suppression. |
| Auto-suppress after policy run | On | When enabled, contacts who remain inactive and have not been enrolled into (or have already exited) the re-engagement journey are moved to the suppressions collection with reason "sunset". |
What happens to suppressed contacts
A sunset-suppressed contact receives reason "sunset" in the suppression list — the same list that holds bounce and unsubscribe suppressions. They are automatically skipped by every send (manual, scheduled, and journey) until you explicitly resubscribe them. You can resubscribe from the Contacts view.
The nightly cron sweep
When the policy is enabled, a nightly cron job (02:00 UTC) sweeps all active accounts and runs runSunsetPolicy for each. The sweep is also triggerable on-demand via POST /api/cron/run-sunset-policy (bearer CRON_SECRET), for testing or backfill.
Recommended workflow
- Enable the re-engagement journey first (set
reEngagementJourneyIdto your win-back flow) and leaveautoSuppressoff for the first 30 days — so inactive contacts get one last chance before suppression kicks in. - After 30 days, check the re-engagement journey's response rates. If the re-engagement rate is low (< 5%), enable
autoSuppress. - Monitor your open rate trend after enabling — it should rise as disengaged contacts are removed from your active audience.