The enquiry you never saw was not lost. It was never saved.

Contact Form 7 has ten million installs and 4.0 stars — the weakest rating of any of the giants — and it does not store submissions at all. WPForms Lite stores them only if you pay: “Can’t even save entries without pro”, “a webform plugin that doesn’t store submissions”. Here that is the free part.

Entries kept, with no capExport everything, alwaysConditional logic checked server-sideFile uploads includedSigned webhooks with a delivery logImport from CF7 and WPForms

Free forever. Everything above runs on your own server, so there is nothing for us to meter and nothing to sell you.

0

submissions you are allowed to keep for free elsewhere before the upgrade screen. Here there is no row cap, no export cap and no retention limit but the one you set.

🗃️
Stored where you can reach itYour own database, searchable by what people actually wrote, exportable as CSV or JSON at any moment.
📧
Mail that is not refused on arrivalFrom is always your own domain and the visitor goes in Reply-To — the setting most plugins get backwards.
🔁
A way in from the plugin you haveImport from Contact Form 7 or WPForms brings the fields across, including the ones their own importer drops.

Why Lynbro Forms

Storing an enquiry is not a premium feature

A contact form that does not save what it receives is a contact form that loses a customer every time an e-mail bounces — and you find out weeks later, if at all. Every submission lands in your own database and stays there: read it, search inside the message text, filter by date, mark it, and export the lot whenever you like. There is no row cap, no export cap, and no version of this plugin where that changes.

Every field type, not the cheap half

File uploads, dates, times, phone numbers, websites, consent boxes, conditional fields and multi-step forms are all here. That list matters because it is precisely the list the free tier of the popular alternative withholds — its own Contact Form 7 importer silently discards your file upload fields and turns dates and phone numbers into plain text.

The rules are enforced where they cannot be edited

Conditional logic runs in the browser for comfort and again on the server for real. A field the visitor never saw is not required of them and is not stored; a hidden field re-enabled in devtools is ignored. Same for required fields, choices and validation — the browser is a convenience, never the authority.

Everything you need — included, free

No "Pro" tier, no nag screens. The features other plugins paywall are here from day one.

🔎
Entries you can actually search

Values are stored one row per answered field, not as one opaque blob, so searching for a phone number or an order reference finds the enquiry rather than scanning everything. Filter by form, by status and by date, mark entries read, spam or trashed, and export exactly what the filters show.

🧩
A builder, not a shortcode language

Add a field, name it, set its rules. A live preview beside the builder renders the real form through the same code visitors get, so what you see is not an approximation of it.

🔗
Webhooks that tell you when they fail

POST JSON or form-encoded to any address, with your own headers and an HMAC signature the receiver can verify. Every attempt is written down with the response and the status code, failures are retried on their own, and one button retries now.

📎
Files handled like files, not like posts

Uploads are stored under twenty random characters in a folder of their own, linked only from your admin area, and the extensions that would turn an upload into a script — php, html, svg, js — cannot be accepted whatever the settings say.

🛡️
Spam handled without a subscription

Every form has a honeypot and a timing check of its own. With Lynbro Antispam installed it judges submissions and explains each refusal — and a held submission still notifies you, marked with the reason, because a visitor whose browser blocked a script looks exactly like a robot and should not vanish into a spam folder.

⚖️
GDPR without a consultant

Set how long entries are kept, shorten or drop IP addresses, anonymise a single entry, and let WordPress’s own export and erasure requests find form data alongside comments and users.

Free here — paid almost everywhere else

The two plugins on most WordPress sites, and what their own users say about them.

FeatureLynbro FormsContact Form 7WPForms Lite
Submissions stored on your site
Export entries as CSV or JSON
File upload fields
Date and phone fields
Conditional logic
Multi-step forms
Webhooks with a delivery log
Visual builder, no shortcode syntax
Spam protection out of the box
Assets loaded only on pages with a form

Requirements

6.2+WordPresstested up to 7.1
7.4+PHP
GPLv2+License
35Languages

FAQ

Are entries really unlimited?

Yes. There is no row cap, no export cap and no retention limit imposed by us. The only limit is the one you set yourself, if you want entries deleted after a number of days.

Can I move my existing forms over?

Yes — import from Contact Form 7 or WPForms brings across fields, labels, options, required flags, notifications and confirmation messages. Anything with no equivalent here is listed by name rather than dropped quietly. Nothing is changed in the plugin you are leaving; it keeps working until you remove it yourself.

Why do my notifications reach the inbox when the old ones did not?

Because the From address is your own domain. Many form plugins put the visitor’s address there, and receiving servers refuse mail that claims to come from a domain your server may not send for. The visitor goes in Reply-To instead, so pressing Reply still reaches them, and the Tools screen shows exactly which headers will be used.

Does it work with page caching?

Yes. The security token is fetched when the page loads rather than baked into the cached HTML, so a page served from cache still submits.

What if a visitor has JavaScript turned off?

The form submits with an ordinary page reload and every rule still applies — required fields, conditional logic and validation are all decided on the server, which is where it counts.

What happens when I delete the plugin?

Nothing, unless you asked for it. Forms and entries survive an uninstall by default; there is a setting to delete everything, and it is off until you turn it on.