Nobody notices a broken contact form
A form that stops sending doesn't throw an error. It just quietly stops producing enquiries. Learn how I catch silently broken forms.
Nobody notices a broken contact form
A form that stops sending doesn't throw an error or turn red. It just quietly stops producing enquiries, and everyone assumes it's a slow month. Here's what I've built to catch that — and where it's currently at.
Every website I look after has at least one form that matters: a contact form, a quote request, a booking, a checkout. They're the point of the whole site. And they're uniquely good at failing invisibly.
A plugin update changes a field name. An SMTP password expires. A spam filter starts eating submissions. A theme update breaks the JavaScript that reveals the second half of the form. In every case the page still loads, the form still looks fine, and the button still clicks. The enquiries just stop arriving, and the first sign of trouble is usually a customer ringing up to ask why nobody replied to them.
I've been building two things to close that gap. One is a browser extension for filling forms quickly by hand. The other is a scheduler that does the same thing automatically, overnight, without anyone being at a keyboard.
The extension: filling forms without typing
The first piece is a Chrome extension called Website Toolkit: Form Tester. You save a profile — a set of realistic test details like a name, an email address, a phone number, a message — and then fill any form on any site with one keystroke.
That sounds mundane until you've had to test a five-page booking flow eleven times in an afternoon, retyping the same fake customer each time. It turns a genuinely tedious job into something you'll actually bother doing.
Profiles handle the awkward parts too. Fields can be randomised, so every test gets a unique reference number or a different date rather than colliding with the last one. Multi-step flows can be saved as a sequence, filling and advancing through several pages in order.
Where your profiles live now
Until recently, those profiles only existed in the browser that created them. Set up a good test profile on your desktop and it was useless on your laptop. Reinstall Chrome and it was gone.
Profiles now sync to Website Toolkit instead. Your client area has a Form testing section holding a sync token; paste that into the extension once, and your profiles are stored centrally and available on any machine you use. You can see exactly what's stored, sync individual profiles or all of them, and remove one from every device at once if it holds details you'd rather retire.
The extension also keeps a log: which profile was used, on which site, how many fields it filled, and when. Useful for answering "did anyone actually check the new checkout before it went live?" — a question that historically has no answer.
The scheduler: checking forms while you sleep
The extension still needs a person. That's the remaining gap — a form usually breaks on a Tuesday and gets noticed the following Monday.
So the second piece runs your saved profiles on a schedule, on my server, with no browser open anywhere. It opens the page in a real browser, fills the form using the same profile you'd use by hand, submits it, and then checks whether the site actually confirmed anything.
Every run ends in one of three states:
- Passed: The site returned the confirmation I expected.
- Unverified: The form submitted, but no confirmation was configured.
- Failed: Something broke — the fields couldn't be found or the confirmation never appeared.
The part that needs saying plainly
A scheduled check submits your form for real, every single time it runs. There's no test mode on a live website — the only way to know a contact form works is to send something through it and see what comes out the other end.
Every automated submission is tagged so you can tell instantly that it isn't a real customer. And a check that fails repeatedly switches itself off to avoid cluttering your inbox with failed attempts.
Where this is up to
This is experimental, and I'm being upfront about that. The automated scheduler currently supports single-stage forms; to test multi-page sequences, you should use the browser extension.
For now I set these up and manage them on your behalf. Tell me which forms matter and I'll wire them up, keep an eye on the results, and tell you when something's wrong.
If you'd like a form watched, drop me a line and tell me which one.