Build Your Website So It’s Easy to Automate Later
Most websites quietly throw away the information that would make automation cheap. Seven decisions at build time — and a 15-minute audit of your own site.
The most expensive automation projects I’ve worked on weren’t the complicated ones. They were the ones where the website had been quietly throwing information away for three years.
Here’s the usual situation. A business wants to automate their lead follow-up. Perfect candidate — high volume, clear rules. Then we look at where the leads live, and it’s a contact form that sends an email to info@. Every enquiry is a paragraph of prose in an inbox. Nothing is structured, nothing has an ID, and there’s no history to work with.
That project now starts with a rebuild of the form and a month of waiting for new data to accumulate. All of it avoidable with seven decisions made at build time — none of which cost anything extra if you make them early.
1. Capture fields, not paragraphs
A form with name, email, service_needed, budget_range, timeline, message gives you five things you can route, filter and report on. A form with name, email, message gives you one thing you can email.
You don’t need twenty fields — that hurts conversion. You need the three or four that determine what happens next. Ask what a human does with an enquiry: they look at what service it’s for, roughly what size it is, and how urgent it is. Those are your fields.
2. Dropdowns beat free text for anything you’ll filter on
Free text produces “Dhaka”, “dhaka”, “DHK”, “Dhaka, Bangladesh” and a typo. Every one of those is a different value to a computer, and every automation that filters on location now needs cleanup logic.
Anything you plan to sort, route, or report on should be a fixed set of options. Free text is for things only a human will read.
One detail that saves pain later: store a stable machine value alongside the label people see. If the option “Website redesign” is stored as website_redesign, marketing can reword the label to “Website refresh” next year without silently breaking every workflow and report that filtered on the old text.
3. Every submission gets a stable unique ID
Not a row number that changes when you sort the sheet. A permanent identifier generated at submission and stored with the record.
This is what lets you say “enquiry 4471 has been followed up” without ambiguity, deduplicate a double-submitted form, connect the enquiry to the quote and the quote to the invoice, and safely re-run a broken automation. Without it, every later workflow has to guess identity from name and email, and it will guess wrong eventually — the same person enquires twice about different projects, or two people share a family address.
That ID is also what makes idempotency possible, which is the single most useful property a workflow can have.
4. Store it before you email it
Email is a notification, not a database. If the only record of an enquiry is a message in someone’s inbox, then that data effectively doesn’t exist for automation, reporting, or the person who joins next year.
Write every submission to a real store — the WordPress database via a form plugin that keeps entries, a CRM, a Google Sheet, anything queryable. Then send the notification email as well. Belt and braces, and the store is what you build on later.
There’s a second reason, less obvious and more painful: deliverability. If the notification email lands in spam — which happens quietly, often after a DNS change nobody connected to it — a form that only emails has lost the enquiry permanently. A form that stores first has merely delayed it.
5. Timestamps in UTC, plus a source field
Store the submission time in UTC and convert for display. Mixed timezones in one dataset will ruin the first report you try to build, and daylight saving will do it twice a year in a way that’s very hard to spot.
And record where it came from: which form, which page URL, which campaign. “We got 40 leads” is a number. “We got 40 leads, 31 from the pricing page” is a decision.
6. Validate at the point of entry
Check email format and required fields in the form, not in a workflow three steps later. A typo’d email address captured today is a bounced follow-up sequence next week and a lead you never recover.
While you’re there, capture consent explicitly with a timestamp, and store which wording they agreed to. Any automated follow-up you build later depends on being able to prove it — and under GDPR “we think they ticked something in 2024” is not a record. Store the consent text, the version, the time and the IP alongside the enquiry.
7. Fire a webhook on submit
Even if you have nothing to send it to yet. Most modern form plugins let you POST the submission to a URL on completion. Set it up now, point it at a placeholder, and the day you want to automate anything, the door is already open — no plugin change, no site update, no developer.
Give that webhook a shared secret from the start, so the receiving end can tell a real submission from anyone who discovers the URL. It costs nothing to add on day one and is awkward to retrofit once three workflows depend on the endpoint.
The eCommerce version
Same principles, different fields:
- Use consistent SKUs and never reuse them. A SKU recycled for a different product corrupts every historical report you’ll ever run.
- Keep order status names stable. If you rename “Processing” to “In Progress”, every workflow watching for “Processing” silently stops working — and silently is the important word.
- Store important custom data as proper order meta rather than appending it to the customer note field, which is where automatable data goes to die.
- Keep the price paid on the order line. If a workflow reads today’s product price to reconcile a six-month-old order, every discount and price change becomes a mismatch.
What if your site already does all of this wrong?
Most do. You don’t need a rebuild, and you shouldn’t wait for one either. The recovery path is short:
- Start capturing properly today. Add the fields, the ID and the storage to your existing form. This is usually an afternoon, and it starts the clock on useful data immediately.
- Leave the history alone. Resist parsing three years of emails into a database. It costs more than it returns and the result is never trustworthy. Draw a line and treat everything before it as archive.
- Automate the new data only. After a month you have a clean dataset with real volume, and the automation you wanted is now straightforward.
The cost of a bad structure is not the past; it’s every month you keep collecting data the same way.
What this actually unlocks
Once submissions are structured, identified and stored, the automations become almost trivial to build:
- Route enquiries to the right person based on service and budget
- Auto-send a relevant case study within 60 seconds of submission
- Follow up automatically at day 3 and day 7 if nobody has replied
- Report on which pages and services actually produce revenue
- Generate a draft quote from the form data before a human sees it
None of these are hard. They’re only hard when the data is a paragraph in an inbox.
A 15-minute audit of your own site
Open your main contact form and submit a test enquiry. Then check:
- Where did it go, other than email? If nowhere, that’s your first fix.
- Does the stored record have separate fields, or one blob of text?
- Does it have a unique ID that won’t change?
- Is there a timestamp, and do you know its timezone?
- Do you know which page it came from?
- Can the form send a webhook? Is it switched on?
- Try submitting it twice. Can you tell it’s the same enquiry?
- Is the consent wording stored with the record, or only shown on the page?
Every “no” on that list is a week of work added to your next automation project. Every “yes” is a week saved.
If you’re commissioning a new site, these seven points are worth putting in the brief — see full-stack web development or, for stores, WooCommerce development. If the structure is already in place and you want the workflows built on top, that’s n8n workflow automation. And if you’re not sure which process to start with, run the five-day audit first.