The Leads Your Forms Throw Away
- Category
- Article
- Published
- Updated
- Reading time
- 8 min
- Tags
Your form plugin tells you how many people sent the form. It says nothing about the people who typed their name and email, got to the budget question and closed the tab.
Those people aren’t in your analytics as “leads”. They aren’t anywhere. And on most sites there are more of them than there are submissions.
Abandoned form capture (also called partial entries) saves what a visitor typed before they left. It’s been a paid add-on in the big WordPress form plugins for years, and it’s one of the more useful things a small business can switch on. It’s also one of the easiest to get wrong, legally and technically.
This is a practical guide to both sides: what half-finished forms can tell you, where the privacy line is, and the traps to look out for if you build or pick a plugin for it.
How many people actually abandon forms?
The most-quoted number is that 81% of people have abandoned a form after starting it. It comes from a 2018 survey of about 500 people by The Manifest. The same survey said 67% of people who quit a form don’t come back, and the top reasons were security worries (29%) and length (27%).
It’s an old, small, self-reported survey, so treat it as a direction rather than a benchmark. Analytics tools that measure real sessions tend to report something closer to a third of form starters leaving without submitting. Either way, a form that gets 40 submissions a month is probably being started by 60 to 80 people.
You don’t need the industry average, though. You need your own number, and partial entries give it to you.
What abandoned capture is, and what it isn’t
It is: when a visitor types into a form and then leaves (switches tab, closes the page, goes idle), the form quietly saves what was filled in so far. You see it in your entries with a status like “Abandoned” or “Partial”.
It isn’t “save and continue later”. That’s a different feature, where the visitor asks to save their progress and gets a link to come back. Abandoned capture is for you. The visitor usually doesn’t see anything happen, and coming back to the page normally shows an empty form.
That difference matters later, because it changes your privacy position.
Three things a half-finished form tells you
1. Which question is the problem
Line up 20 abandoned entries and look at the last field filled in. If most of them stop right before “Budget” or “Phone number”, that question is your problem, not your traffic. It’s too personal, too early or confusing.
This is the cheapest form optimization you’ll ever do. You don’t need heatmaps or a UX audit. You need a sorted list.
2. Whether your price surprised them
On order, booking or quote forms with a visible total, a pattern of fully configured entries that never got sent usually means the number at the bottom was the deal-breaker. That’s useful even if you never contact a single one of those people: it tells you to show a “from” price earlier, offer a cheaper option or explain what’s included.
3. Who to follow up with
The obvious one. Someone who left an email and half a wedding-flowers enquiry is a warmer lead than anyone your ads will bring in this week. A short, human reply (“Saw you were asking about bouquets for June. Anything I can help with?”) converts surprisingly well for service businesses.
That’s also the one that needs care.
Where the privacy line is
An abandoned entry is data the visitor chose not to send. That makes it different from a normal submission, and in the EU and UK (GDPR) and a growing list of other places you need a lawful basis and an honest privacy notice to keep it.
I’m not a lawyer and this isn’t legal advice, but these rules keep most small sites on solid ground:
- Make it opt-in per form, not site-wide. A quote form is a reasonable place for it. A complaint form or a medical intake form usually isn’t.
- Say so in your privacy notice. Something like: “If you start one of our enquiry forms, what you type may be saved before you send it so we can follow up on your enquiry. We delete it after 30 days.”
- Never capture sensitive fields. Passwords, file uploads, signatures and payment details have no place in a partial entry. A good implementation strips them before anything leaves the browser.
- Keep it short. Delete abandoned entries automatically after a few weeks. Keeping them forever is very hard to justify; regulators have taken issue with organisations keeping data from withdrawn applications indefinitely.
- Don’t run automations on them. No notification emails, no CRM sync, no newsletter sign-up. Whether to contact someone should be a human decision, made one lead at a time.
- Separate “follow up on their enquiry” from “marketing”. A single personal reply about what they were asking about is one thing. Adding them to a newsletter is another, and usually needs consent.
If your business is in a regulated field, or you’re unsure which lawful basis applies, ask whoever handles privacy for you before switching it on.
If you build it (or pick a plugin for it): four traps
The idea is simple: listen for “the visitor is leaving” and send what’s in the form to the server. Doing it reliably is not. These are the issues we ran into building it. They’re worth checking whether you’re writing your own or comparing plugins.
Trap 1: “The visitor is leaving” is not one event
The old beforeunload/unload approach is unreliable, especially on mobile, where a tab is often just frozen in the background and never “unloaded”. The modern recipe is:
visibilitychangewhen the document becomeshidden(switching tabs, minimising, locking the phone);pagehidefor actual navigation away;- an idle timer (say 30 seconds after the last keystroke) for people who just walk away from the desk.
Requests sent as the page is closing need navigator.sendBeacon() or fetch(..., { keepalive: true }), otherwise the browser cancels them.
Trap 2: closing a tab fires two events, so you get two entries
Closing a tab fires visibilitychange and pagehide, back to back. Both send the same data, both arrive at the server before either has saved, both see “no draft yet”, and both create one. Now that visitor has two abandoned entries.
The fix needs both ends: skip a send in the browser if the data hasn’t changed since the last one, and on the server, after saving, look again and merge duplicates for the same visitor and form onto one record (keep the oldest ID so the result is predictable).
Trap 3: the entry has to become the submission, not sit next to it
When the visitor does come back and submit, you don’t want an “abandoned” row and a real one for the same person. The clean model is one record per visitor per form, identified by a random token stored in the browser, which is promoted to a real submission when the form is sent. Any leftover duplicates get cleaned up at that moment.
If a plugin leaves converted leads sitting in your abandoned list, you’ll end up following up with people who already paid you.
Trap 4: the customer comes back from checkout
This one is easy to miss. A visitor submits an order form, gets sent to a payment page, pays and lands back on your site. The form is still there. They tap a field by accident, the idle timer starts, and a fresh “abandoned” entry appears for a customer who just converted.
Two guards fix it: stop capturing for the rest of the page view after a successful submit, and on the server, refuse new drafts for a visitor who submitted that form in the last half hour or so.
(Bonus trap: page caching. If your capture request depends on a nonce printed in the page, a page served from a long-lived cache can make the requests fail without any error. Test in a private window after turning it on.)
What it costs
In the established WordPress form plugins, partial entries sit in the upper tiers: WPForms puts its Form Abandonment add-on in Pro and Elite, Gravity Forms puts Partial Entries in Elite (and Nonprofit), and Formidable puts Form Abandonment in Business and above. Some plugins only save partial entries for multi-step forms, page by page. Check current pricing before you decide, since it changes.
A few newer plugins include it in their free versions. CraftForms is one of them. Whichever you use, check it against the four traps above and the privacy list. Those matter more than the price.
A ten-minute checklist
- Pick one form where a lead is valuable (quote, booking, enquiry).
- Add a line about partial saving and retention to your privacy notice.
- Turn capture on for that form only.
- Move the email or phone field near the top, so partial entries can actually be followed up.
- Test in a private window: type, switch tabs, check your entries. Then submit and check the entry was promoted rather than duplicated.
- After two weeks, sort abandoned entries by the last field filled in. Fix that question first.
- Follow up by hand, one person at a time, only where your notice covers it.
Abandoned capture won’t fix a bad form. It tells you, with real data from your own visitors, which part of it is bad. That’s usually the part you were too close to see.