What Actually Happens When Someone Submits Your Contact Form

Most website owners think of a contact form as a simple thing — visitor types, message lands in inbox. Underneath there's a surprising amount of plumbing, and how it's built decides whether messages actually arrive.

Hamish Palmer
Hamish Palmer

Most website owners think of a contact form as a simple thing: a visitor types, hits Submit, and the message lands in your inbox. Underneath the surface there's a surprising amount of plumbing — and how that plumbing is built has real implications for whether the messages actually arrive, whether you get drowned in spam, and what happens when something breaks.

The three things a form has to do

When someone fills out a form on your site, three things have to happen:

  1. The data has to go somewhere. A server, somewhere, has to receive what was typed.
  2. It has to be filtered for spam. Without this, you'll get bot submissions about cryptocurrency and Russian brides within hours of going live.
  3. It has to be delivered to you. Usually via email, sometimes also stored in a database or piped into another tool.

Each of those steps is a place where things can go wrong. A silently broken contact form is one of the most common — and most damaging — failures I see when I take over websites from other developers.

The DIY approach (and why it's risky)

The traditional method is to write your own form-processing code that runs on your server. Form data comes in, your code validates it, runs it through a spam filter, sends an email to you, optionally saves it.

The problems:

  • If your hosting provider's mail server is misconfigured, emails silently fail to send. You won't know until a customer phones up annoyed that you never replied.
  • Spam filtering is hard to do well. Roll your own and you'll either get every spam bot on earth or accidentally block legitimate enquiries.
  • It's another piece of code that needs maintaining and patching as the years go on.

I've seen multiple businesses lose months of leads because their contact form quietly broke and nobody noticed.

The hosted approach

The alternative is to send form submissions to a dedicated third-party service that handles everything: receiving, filtering, delivering. Formspree is the best-known of these, but Basin, Web3Forms, and Getform all do similar jobs.

You add a few lines of code to your form, point it at the service, and submissions flow through it before reaching you:

  • Spam filtering is built in and constantly updated against new tactics
  • Submissions get logged in a dashboard so nothing is lost — even if the email bounces
  • You can route submissions to multiple destinations (email, Slack, a CRM, Zapier, etc.)
  • It works on any kind of site — including pure static sites with no server-side code at all

Most of these services have a free tier that's plenty for a small business, with paid plans only kicking in once you hit serious volume.

When this is the right call

A hosted form service makes sense if:

  • You're running a static site (no PHP, no Node, no CMS doing the heavy lifting)
  • Your contact form is mission-critical and you can't afford to lose messages
  • You want a record of every submission outside of your email
  • You'd rather pay a few dollars a month than maintain custom code

If you're on a full CMS like WordPress, Statamic, or Craft, you've usually got reliable form handling built in — but even then, routing through a hosted service can be worth it for the spam filtering and the audit log alone.

The bottom line

Your contact form is often the highest-stakes thing on your website. It's where a customer who is ready to give you money types their phone number. Treating it as an afterthought is how revenue quietly disappears.

If you're not sure whether your contact form is actually working — or whether it's been silently dropping messages for months — get in touch. It's one of the first things I check when I audit a site.

Get in touch

Have a project in mind?

Get in touch and let's talk about what your business needs online.

Let's talk about your project.

Ready to get started? I'd love to hear about your business and what you're looking to achieve online.

Copyright © 2026 hamish.com.au

Hosted by PHAS