Send Test Email isn’t a preview — it runs the exact same code as a real send
You found the broken condition because a customer told you.
The workflow ran. The email sent. Nothing errored. It just went out with the wrong half of it missing.
There is a button in the editor that would have caught that in about ten seconds — and the reason it catches things is not that it’s a preview. It’s that it isn’t one.
A test send runs the same code as a real send
When you use Send Test Email, FlowMattic runs the same three functions, in the same order, that a real send runs:
- it prepares your variables (decoding any JSON along the way)
- it expands the loops
- it resolves the conditions
The comment in the source says it plainly: “…using the same logic as real workflow sends, so test emails match the delivered output.”
Which changes what the button is for. If a block is missing in the test, it will be missing in the send. That isn’t a preview. That’s proof.
Watch it
Use the Test Data panel properly
The dialog asks who to send to, and then gives you Test Data — as Fields or as JSON, whichever you prefer.
The line most people skim is the important one: “Override variable values for this preview. Changes here won’t affect the saved template data.”
So you can lie to it. Safely. As many times as you like.
- Set
plantofreeand send — upgrade button there, roadmap link gone. - Change one word to
proand send again — they swap. Both branches proved in under a minute, without touching the workflow. - Empty the coupon code and send — the banner should disappear, and it does.
Then break it on purpose
Set line_items to an empty pair of brackets and send. The rows collapse — and your “nothing today” message does not appear.
That’s the trap from the previous post, reproduced deliberately in ten seconds, instead of found in production by a customer.
What it does not prove
Three things, and they’re worth knowing before you trust a green result too far.
- The subject. It arrives with
TESTin front of it — added on the way out. - The route. It goes through WordPress mail, from your site address — not the provider your step is configured with. So it tells you nothing about deliverability.
- The defaults. Your template’s own default values are not merged in. A real send falls back to them; a test uses exactly what you gave it.
And one more that looks like a bug the first time you see it: if there is no data at all, nothing is processed. Your curly braces arrive in the inbox exactly as you typed them. That’s not broken — that’s the tell that you haven’t given it anything to work with.
So it proves your logic. Not your delivery. Which is the half you can actually get wrong quietly.
New to FlowMattic? It’s the AI-native automation platform for WordPress — visual workflows, 800+ integrations, AI agents and a full builder suite, self-hosted inside your own dashboard. Get FlowMattic.
