Four toggles on Settings → Notifications choose which emails you get. A 13-minute bundle window collapses bursts of analyses into one email. A Friday digest sums up your week with week-over-week deltas. And every sensitive action on your account writes a row to the audit log so you can see exactly what happened, when, from where.
Playloop sends two kinds of email, operational (an analysis finished, a webhook auto-disabled, a tester redeemed your key) and digest (Friday recap). Operational emails route through a per-user opt-out: each one maps to one of the four toggles on Settings → Notifications. An explicit false on that toggle wins; a missing value defaults to TRUE so new accounts opt INTO email without an onboarding click.
The same Settings page has an Audit log tab, a newest-first feed of every security-relevant action recorded against your account: sign-ins, key rotations, BYO AI key writes, webhook URL changes, step-up MFA, account-close attempts. If you see something you don’t recognize, that’s the first stop.
Each toggle controls one class of email. Every email footer links back to Settings → Notifications so the opt-out is always one click from any inbox.
notify.emailInsights ready, {title}.Insights ready, N sessions.notify.webhook_failuresWebhook auto-disabled · Playloopnotify.weekly_digestPlayloop weekly recap, {date range}+X%, red -X%, or grey new when the prior window was zero and the current is positive.notify.tester_invites{handle} accepted your {game} playtestBefore Playloop sends any operational email, it checks your saved preference for that class:
When you save the form, the change is recorded in your audit log so a later “wait, did I turn that off?” question has an answer.
Upload ten sessions in a row and you’d expect ten emails. You don’t get them. When AI extraction finishes on a session, Playloop doesn’t email immediately, it queues the notification and lets a background bundler collapse the burst into a single email.
The shape depends on how many sessions ended up in the bundle when the sweep flushed.
Insights ready, {session title}/sessions/{id}.Insights ready, N sessions/dashboard.The weekly digest ships every Friday at 14:00 UTC. Europe sees it in the afternoon, US Pacific sees it before they sit down. One global slot, not per-timezone scheduling.
A user gets the Friday digest when both of these are true:
Five lines, intentionally bland, neutral activity report, not a dashboard. If you want real insight, the CTA takes you to the live dashboard.
Each numeric stat shows a small delta next to its value. The prior window is the 7 days immediately before the current one, same length, like-for-like.
Math: round((current - prior) / prior * 100), clamped to integer percent so the chip stays compact. The four cases the digest covers:
new chip, rendered as “new” rather than the mathematically correct but unhelpful +∞%.+X% chip. The unchanged case (current === prior) renders as +0%.-X% chip.May 12–May 18 in UTC regardless of where the recipient lives.Every notable security event on your account writes one row to your audit log. The Audit log tab renders these newest-first, 50 at a time, with offset pagination.
Each row renders a short description, a severity dot (green / amber / red), the relative time, and a sorted key/value list of supporting details. Two display rules matter:
Playloop only logs from a fixed allowlist of events, there’s no free-form logging surface. The user-relevant categories are:
An entry lands every time you hit a step-up gate and Playloop opens the reverification modal. The supporting details name the area, the operation, and the level of proof that was asked for, so you can see exactly which sensitive action triggered the extra factor.
These actions each write a row when they succeed:
…7f2a) so you can reconstruct rotation history at a glance.Two paths write into the log, and the difference matters when you’re debugging a missing entry:
Past the “you took an action” rows, a few system entries show up on a healthy account: an account-created anchor (your “day I joined” row), one row per successful sign-in (password, OAuth, magic link, not one per token refresh), one row per session end, one row per Playloop-sent email (welcome, analysis-finished bundle, weekly digest, webhook disabled, tester redeemed), and a warn-severity row when an email send is rejected by the provider.
If you know what you want to change, this is the fastest way to find it.
| If you want to… | Go here |
|---|---|
| Stop these emails entirely | Settings → Notifications , uncheck the toggle and Save. |
| Get just the weekly digest, nothing else | Settings → Notifications , uncheck the other three toggles, leave Weekly digest on. |
| Pause analysis emails during a big upload run | Uncheck Analysis finished before the run. Anything already queued in the bundle window still sends on the next sweep; new analyses queued after the toggle flips won’t. |
| Know when a webhook breaks | Keep Integration errors on. That toggle fires the auto-disable email, the only easy way to discover a webhook subscriber died without scanning logs. |
| Add a verification record of an action I took | Automatic. Every sensitive action you take through the dashboard writes to Settings → Audit log. |
| Figure out why I just got asked to reverify | Open Settings → Audit log and look at the latest step-up entry. The area and operation fields name exactly what triggered the gate. |
| Confirm someone really redeemed my playtest key | Check inbox for the “{handle} accepted your {game}playtest” email, and cross-reference with /playtest. A “key redeemed” entry also lands in your audit log. |
| See what changed when I last edited preferences | Open Settings → Audit log and find the most recent “notifications changed” row. The supporting detail carries the diff. |
Sign-in surface, 2FA, devices, step-up reverification, danger zone, the actions whose audit rows show up here.
Where BYOK key saves and monthly-budget changes come from.
What “analysis finished” means under the hood, sessions → rollups → AI summary, and how auto-analyze decides when to trigger the email.
What fires the “Integration errors” email, delivery contract, retry policy, and the auto-disable threshold (20 consecutive failures).
These docs are evolving. Playloop is in active development ahead of launch, so APIs and details may change as we polish.