When someone fills in the quote form on your site, two things need to happen. You need to hear about it, quickly, so you can call them back. And the lead needs to survive, even if the email that tells you about it goes to spam, gets deleted from a phone, or lands in an inbox nobody was watching that day.

Most small business forms only do the first thing. The form sends an email and that is it. If the email goes missing, the lead is gone, and you will never know it existed. I have seen businesses lose work this way and blame the phone not ringing.

The private database is the second thing. Every submission is written to a small database in your own Cloudflare account first, and only then is the email sent. The lead exists before anyone is told about it. If the email is missed, the lead is still there, with the time it arrived and what the person asked for.

Why it matters to you

A lead is money. On a rubbish removal or moving job, one missed enquiry can be worth more than a month of the site’s running costs. The database turns the form from something that fires and forgets into a record you can go back to.

It also matters for what is not stored. The database keeps what the person typed, when they typed it, and an approximate location as a city and region so you know roughly where the job is. No IP address is kept. That is deliberate. You get what you need to do the work, and you do not hold anything you would have to explain if someone asked what you keep about them.

And it is in your account. The customer data belongs to the business, next to the domain and the site, and I can hand you an export of it any time. If our arrangement ever ends, the leads go with you.

How I set it up

The website itself is a static site, so the pages have no database behind them. The one moving part is the form. When it is submitted, a small piece of code runs on Cloudflare’s network. It checks the submission, writes it to the database, and then sends the notification through Cloudflare Email Sending from an address on your own domain. Save first, then email. In that order, always.

The database cannot be reached from the web. There is no page that reads from it and no address that queries it. It is only ever written by the form handler and only ever read by you or me through the Cloudflare account. That is what keeps nothing to break into true even with a form on the site.

What it looks like in practice

You see the email, same as before, in the lead inbox that belongs to the business. Behind it, every lead is also lined up in a table in your Cloudflare account: date, name, contact details, what they asked for, and roughly where they are.

When you want to check whether a customer really did enquire last Tuesday, it is there. When you want a list of everyone who asked about a service last season, it is there. When a monthly report says how many leads the site produced, that number comes from the database, not from someone counting emails.

Questions I get about this

Is this the same as the database that makes WordPress sites insecure?
No. A WordPress database sits behind every page and every login, and the site cannot run without it. This one sits behind nothing. The pages are static files. The database is only ever written to when someone submits a form, and it cannot be reached from the web at all.
What is actually stored?
What the person typed into the form, the time it arrived, and roughly where they were, as a city and region. No IP address is kept. It is the information you need to call them back, and nothing that would embarrass you if it were ever requested.
Can I see the leads myself?
Yes. It is in your Cloudflare account, so you can look at it directly, and I can export it for you as a spreadsheet whenever you want. It is your customer data. Included, not held hostage.

Where this fits in our work

Want this set up properly for your business?

This is the kind of thing I build every week. Grab a time and we will talk through what fits.