Selected work / Xidents implementation

From a website enquiry
to a recorded request.

How Xidents connected its own contact form to a backend, retained a reply address and made successful submission clearer. A first-party implementation, published 15 September 2026.

The problem

The earlier contact flow opened an email draft. Visitors still needed to send it through their email app, and the website could not confirm delivery. A direct-submission form needed to record the enquiry, collect an email address for a reply and handle automated submissions.

What changed

The form now collects a name, reply email and message. An Azure Function validates accepted requests and writes the record to Azure Table Storage. Cloudflare Turnstile and request limits help reduce automated abuse. The visitor sees success only after the backend confirms that the record was saved.

The confirmation replaces the form and security check. A visitor can return home or deliberately choose to send another enquiry. Repeat clicks are blocked while a request is pending, and the backend detects identical same-day submissions.

Why this implementation did not need AI

The workflow has clear rules: validate input, check the security response and save the accepted record. Those steps can be implemented and tested directly. Adding a model to decide whether every enquiry should be stored would introduce another dependency without being necessary for the core task.

What was tested

Synthetic records were removed after verification. These checks demonstrate the tested behaviour; they do not establish a conversion uplift, a guarantee against spam or long-term availability.

What remains a human responsibility

Someone must review new enquiries and reply using the recorded address. This implementation does not send notification emails or automatic replies. Retention and deletion need an operating process, and spam controls need review as traffic changes.

What another business can take from it

Separate “the visitor clicked Send” from “the system recorded the request.” Decide what happens on failure, how retries work and who owns the next step. A small, dependable integration can be more useful than a larger automation that leaves those questions unanswered.