Tutorials

Does Contact Form 7 Store Data? (Short Answer: No)

Contact Form 7 does not store submissions in the WordPress database by default

It’s the same panic every time. Your mail server had a bad week, you know people filled in the contact form, and you log into WordPress to go and read those submissions. You click through the Contact menu, find Contact Forms and Integration… and nothing that looks like a list of messages. So you start searching for the honest answer: does Contact Form 7 store data?

The short answer: no, it doesn’t

By default, Contact Form 7 does not save form submissions to your WordPress database. There is no hidden entries screen you’ve failed to find, and no setting to switch on. It isn’t a bug or an oversight — it’s the design.

Contact Form 7 is an email router. When someone hits Submit, CF7 validates the fields, formats them into a mail template, and hands that message to WordPress to send. Once the handoff happens, the submitted values are gone from memory. Nothing is written to a database table for you to read later.

Which leads to the part that actually costs people money: if the email fails to send, the submission is lost permanently. There is no copy anywhere. And email fails more often than most site owners realise — a shared host with no SMTP configured, an SPF or DKIM record that doesn’t match, a recipient’s spam filter quietly binning the message, a mailbox over quota. In every one of those cases CF7 has already forgotten the data.

How to check what you’re currently running

Before assuming the worst, it’s worth confirming whether something on your site is already saving entries. Two quick checks:

  • Look for a Flamingo menu. If Flamingo → Inbound Messages exists in your sidebar, submissions have been saved since the day that plugin was activated.
  • Look for an entries or submissions screen from any other plugin. Several form and CRM plugins hook into CF7 and store a copy. If one is active, you’ll have a list somewhere.

If neither exists, assume nothing has been stored. And to be direct about it: submissions that were never saved cannot be recovered. There’s no repair tool, because there is no data to repair. The only thing worth doing now is making sure it stops happening.

How to make Contact Form 7 store entries

You fix this by adding an entry-storage plugin alongside CF7. It hooks the same submission event CF7 already fires and writes a copy to the database before the email is attempted.

The two options most people land on:

  • Flamingo — built by Takayuki Miyoshi, the author of Contact Form 7 himself. Free, officially supported, extremely lightweight, and it does exactly one thing: keeps a list of inbound messages. The interface is dated and filtering is limited, but as insurance against lost leads it works.
  • EntryVault — our own plugin, listed free in the WordPress.org plugin directory (disclosure: we build it). It stores CF7 submissions along with entries from ten other form builders on a single board, and lets you filter by form and date range before exporting.

We’ve written both sides of that choice up honestly elsewhere: the full step-by-step setup lives in how to save Contact Form 7 submissions to the database, and if you want the two compared feature by feature, see Flamingo vs EntryVault.

The other option: use a form plugin that stores entries itself

Adding a storage plugin fixes the symptom. It’s worth asking whether you want to keep patching CF7 at all — most people who end up with Flamingo also end up adding plugins for conditional logic, spam handling and file uploads, and now they’re maintaining five plugins to get what a modern form builder does on its own.

If that’s where you are, Trinity Forms (also ours, also on WordPress.org’s plugin directory) saves every submission by default and gives you an Entries screen in the free version — no add-on, no upgrade needed to read your own data. Conditional logic is included free too. We’ve covered the wider landscape in the best Contact Form 7 alternative for WordPress.

Frequently asked questions

Where does Contact Form 7 save submissions?

It doesn’t. Contact Form 7 stores form definitions as a custom post type, but submitted data is only ever formatted into an email and passed to WordPress to send. Nothing about the submission is written to the database, so there is no table to look in and no entries screen in the admin.

Can I recover old Contact Form 7 submissions?

No. If no storage plugin was active when the form was submitted, the data was never written anywhere and cannot be recovered. The only copies that might exist are the notification emails themselves, if they were delivered and you still have them in your inbox.

Does Flamingo save Contact Form 7 entries automatically?

Yes, from the moment you activate it. Flamingo hooks into Contact Form 7’s submission event and records every message under Flamingo → Inbound Messages. It does not backfill anything submitted before it was installed.

The bottom line

Contact Form 7 doesn’t store data, and it never claimed to — but relying on email alone means every delivery failure is a lead you’ll never know you had. Install Flamingo or EntryVault today so submissions land in your database as well as your inbox, and follow the full setup guide if you want it done properly in the next ten minutes.