DashboardSeptember 2026
Audit Export, SMS Consent & Account Health
Account health, audit export and SMS consent are now visible and self-service in the dashboard, without waiting on an alert to fire.
- Audit logs export to CSV on Business. The plan was sold on audit export with no export path behind it. The export is scoped to the caller’s organization, bounded by the plan’s retention window, and self-auditing: exporting the audit trail leaves a row in the audit trail
- The preference center lets a contact grant and withdraw SMS consent. It already offered SMS as a preferred channel whenever a contact had a phone, but nothing let the contact actually consent, so every write to that status was an operator assertion. Both transitions record the exact consent sentence shown, the IP and the user agent. Granting requires the organization to still be able to send; withdrawal never does
- A header pill reports SES account health whenever it is not healthy, from a Postgres-only read. The hourly sweep compared
GetAccountand CloudWatch reputation against AWS’s enforcement lines and threw every number away, so “is my account okay right now?” had no answer anywhere unless an alert happened to fire in the last 24 hours - Fix: the stale-feed alert stops firing on foreign SES traffic. The fallback probe reads the account-wide SES send count, which includes mail from applications that have nothing to do with Wraps. One customer sharing SES with their own app was flagged with zero Wraps sends against 15,804 account-wide; the probe now measures that count against a seven-day baseline of recorded sends and stays quiet when the surplus is someone else’s mail
Also fixed (2)
- An unauthenticated waitlist endpoint on the dashboard and wraps.dev could subscribe the wrong contact to a topic by resolving an existing address with a substring match; both routes had no caller and are removed.
- A documentation code block that omitted its default tab rendered as an empty box, across 95 call sites in 16 files including the base URL on the API reference; the default now falls back to the first item's language.
Platform v0.27.0

