FAQ
Short, honest answers. Where something isn’t built yet, we say so.
Is it safe to use on production?
It’s built for it, because production is where email breaks. Cleanup only ever deletes records whose email is exactly one of the addresses a run created; it can’t match a pattern or a domain. Each system has to pass a connection test and a dry run before you can arm it, and WordPress never deletes an administrator. Why cleanup is safe goes layer by layer.
Two things to keep in mind: test accounts are real accounts while a run is open, so your analytics may see them briefly; and if you’re nervous, start on a staging copy (the WordPress plugin has a mail guard for exactly that).
What data do you keep, and for how long?
The emails your app sends to test addresses, what your agent did in each run, the reports, and the cleanup receipts. Email bodies are deleted first (after 1 day on Free, up to 90 days on Agency); reports are kept longer (7 days on Free, up to 2 years on Agency). Receipts, and the list of addresses each run created, are kept for good. The full table is in Plans and limits.
The Email Flow Grader keeps the optional email you give it and a one-way hash of your IP address (used for its daily limit). We haven’t set an expiry for those yet.
Do you use my data?
Your emails are used for your own reports, and deleted on your plan’s schedule. What we do keep is one anonymous result per finished run: the grade, the timings, which checks passed, and which email service sent it. No addresses, links, codes or wording, and nothing that links it to you. Pooled across every app, those results let us publish research like “The State of Signup Emails”.
You can turn this off under Your data on the Billing page. Past results are already anonymous and can’t be traced back to you. More on how it works.
Will my app block the test addresses?
It might. Test addresses end in @flowproof.dev, and some signup forms, fraud tools and email validation services block domains they see as disposable. If your signup rejects them, or no email ever arrives, allow flowproof.dev in that check (at least on staging).
Not yet: custom test domains, where you point a domain of your own (like test.yourapp.com) at Flowproof so test addresses look like ordinary ones.
Can I test magic links and one-time codes?
Yes. Your agent pulls the magic link or the code out of the email with extract, uses it in your app, and records what happened. It then tests the unhappy path: the same magic link a second time (it should fail) or a wrong code (it should be refused without revealing whether the account exists). See Recording what the app did.
What about captchas?
Flowproof never solves captchas, and your agent shouldn’t either. On the site your agent tests, use your captcha provider’s test keys (reCAPTCHA, hCaptcha and Cloudflare Turnstile all publish keys that always pass) or switch the captcha off on staging. A Flow Watch that hits bot protection stops and reports blocked, never “your email broke”.
Does Flowproof ever email my real users?
No. Flowproof only receives mail, at its own test addresses. Your app sends the emails; Flowproof never sends anything to your customers and never changes your email settings.
Who can read the test emails?
Only you, through your account and your agent. Test addresses accept mail from anyone (like any inbox), so someone who learns a live test address could send mail to it, but nobody else can read it.
Which agents does it work with?
Any agent that can connect to a remote MCP server. We document Claude Code, Cursor, Windsurf, VS Code, Codex CLI, Claude Desktop and Replit, which use an API key. In claude.ai, Claude Desktop and ChatGPT you can instead add Flowproof as a custom connector and sign in with your Flowproof account, with no key at all.
What if cleanup fails?
The receipt says exactly what failed and why, and it’s shown on the run’s page. Common causes are a missing permission or, on Supabase, a foreign key. On Supabase a failed delete is rolled back rather than left half-done. The receipt lists the addresses involved, so you can fix the cause and remove those accounts by hand. A Flow Watch whose cleanup fails pauses itself.
Can it test SMS or push notifications?
No. Flowproof tests email only.
What isn’t built yet?
- The
flowproofcommand-line tool (for now, use the API). - Connecting cleanup systems from the dashboard (the Projects page shows their state).
- Custom test domains.
- More cleanup systems: Clerk, Auth0, Firebase Auth, MailerLite, Mailchimp, Kit, HubSpot, Resend and Postmark are next. Until then, the webhook covers anything you can write an endpoint for.
Where do I get help?
Email support@flowproof.dev. For security issues, see Security.