
How to store Contact Form 7 submissions in a database
Contact Form 7 saves nothing by default. Here's how to store CF7 data in a database with a free webhook plugin, no Zapier or paid plugin required.

Contact Form 7 doesn't save anything. It sends an email, and that's it.
If that email fails (spam filter, misconfigured SMTP, a typo in the recipient) the submission is gone. There's no record on your site, no log, nothing to recover. The form says "thank you" and the enquiry never existed.
That's worth fixing, and there are two ways to do it depending on what you want.
Option 1: store submissions inside WordPress
Flamingo is the free companion plugin from CF7's own developer. Install it, and every submission gets saved to your WordPress database automatically. No configuration, it just starts working.
You'll find submissions under Flamingo → Inbound Messages in the admin. It's basic: a list, searchable, no statuses or follow-up tracking. But it means nothing is ever lost, and it takes two minutes.
If you only want submissions saved somewhere, install Flamingo and you're done. The rest of this guide is for people who want the next step.
Option 2: store Contact Form 7 submissions in a database
A list in wp-admin is still a pile you have to remember to open. Nobody logs into WordPress to check whether anyone enquired.
What's missing is everything after the submission arrives: whether you replied, whether it became a quote, whether it went cold. A form submission isn't really a row of data, it's the start of a potential client relationship.
To do that, submissions need to leave WordPress. CF7 has no built-in webhook action, so you need a small free plugin to add one.
Two things to do:
- Install a Contact Form 7 webhook plugin. Free, adds a webhook field to your forms.
- Connect that webhook to Clarivy. Paste in a URL, send a test submission, match the fields.
No Zapier account, no API keys, no code. Full steps below.
Install a Contact Form 7 webhook plugin
CF7 to Webhook by Mário Valney. Free on the WordPress repository, 30,000+ installs, actively maintained. It adds a webhook field to every CF7 form and posts submissions as JSON.
The plugin's directory slug is still cf7-to-zapier from before it was renamed. You don't need Zapier to use it. Any webhook URL works.
An alternative is the webhook integration in CF7 Apps, if you're already using that suite.
Sending Contact Form 7 submissions to Clarivy
Takes about five minutes.
1. Create a connection in Clarivy
Go to Connections and create a new one. Name it after the form on your site, "Contact page", "Quote request", so you'll recognise it later. Make one connection per form if you're capturing from several.
2. Copy your webhook URL
Clarivy generates a unique URL for that connection. Copy it, and treat it like a password: anyone with the URL can post data to it.
3. Install CF7 to Webhook
In WordPress, go to Plugins → Add New, search for CF7 to Webhook, install and activate it. Contact Form 7 needs to be installed first.
4. Paste the URL into your form
Open your form under Contact → Contact Forms. There's now an extra tab in the form settings for webhook configuration. Paste your Clarivy URL in and save.
You can add more than one URL, one per line, so if you're already sending this form somewhere else, you don't have to choose.
5. Submit a test
Fill in your own form on the live site. Use something obvious like "test" as the name.
This isn't just a check that it works. Clarivy uses the first submission to learn the shape of your form.
6. Clarivy detects your fields
Once that submission lands, Clarivy reads the payload and shows every field CF7 sent: your-name, your-email, your-message, plus anything custom you've added.
You don't need to know in advance what CF7 calls its fields. Send one submission and they appear.
7. Match fields to a table
Pick the table submissions should become records in, usually Leads or Contacts, then match each incoming field to a column:
| CF7 field | Clarivy field |
|---|---|
your-name | Name |
your-email | |
your-subject | Notes |
your-message | Notes |
CF7's default field names are a little ugly, which is exactly why the mapping step exists. Anything you don't map is still stored with the raw submission, so you can change it later without losing data.
8. Turn on the automation
Last step: tell Clarivy what to do when a submission arrives. Switch on the automation and every new submission creates a record in your chosen table with the fields filled in as you mapped them.
From here it's hands-off. Someone fills in your form and a new lead appears in Clarivy, with a status, ready to follow up.
What this gets you
Each lead arrives with a status you can move through as you work it: new, contacted, quoted, won, lost. That's the thing Flamingo and a spreadsheet can't give you: a record of whether you actually did anything.
It also means "how many enquiries did I get this quarter, and how many turned into work" stops being a guess. And anything sitting unanswered shows up in your weekly digest, which is usually the moment you realise you meant to reply to someone eleven days ago.
Capturing submissions is the easy half. Following up is the part that's actually hard.
FAQ
Does Contact Form 7 store submissions in the database?
No. CF7 only sends an email. To store submissions you need Flamingo, or another plugin that adds database storage.
Where are Contact Form 7 submissions saved?
Nowhere by default. With Flamingo installed they're saved to your WordPress database and viewable under Flamingo → Inbound Messages.
Does Contact Form 7 support webhooks?
Not natively. The free CF7 to Webhook plugin adds a webhook field to every form and posts submissions as JSON to any URL.
Can I send one CF7 form to more than one place?
Yes. CF7 to Webhook accepts multiple URLs, one per line.
Do I still need Flamingo if I'm sending to a webhook?
Not necessarily, but it's a reasonable backup. Flamingo keeps a local copy, so if a webhook ever fails you still have the submission.
Does this only work with Contact Form 7?
No. A connection in Clarivy accepts data from anything that can post to a webhook URL: Elementor Pro, WPForms, Fluent Forms, Gravity Forms, Webflow, Google Ads lead forms. It also works from automation tools: add a webhook step at the end of a Zapier, Make, or n8n flow and point it at your connection URL.

Stop guessing how your business is doing


