Guides / Website operations

By Farshid Ghaffari · Sources reviewed 30 October 2026

Where website enquiries disappear: a diagnostic guide from click to sales inbox

Download the PDF guide

A prospect submits an enquiry. The website displays a confirmation, the analytics dashboard records a conversion, and the sales team says nothing arrived. Those observations can all be true. Each describes a different stage of the same process.

Before changing the page or buying more traffic, trace one controlled enquiry through the system. The objective is to locate the first stage that cannot be verified.

1. Define what success means at each stage

The following is a proposed Layerly diagnostic model. The state names are not HTTP or Google Analytics standards.

StageEvidence to collectWhat remains unproven
SubmittedThe browser sent the agreed payloadThe server stored it
StoredThe record can be read back using its referenceA notification was sent
Notification acceptedThe sending service accepted the messageThe intended inbox contains it
Inbox confirmedThe recipient located the same referenceA person owns the follow-up
AssignedThe request has a responsible ownerA reply or sale occurred

On a small screen, scroll the table horizontally.

An HTTP response is evidence about the request. A 200 response reports success according to the endpoint's behaviour; it is not an independent audit of the application. A 202 response explicitly permits processing to remain unfinished. Check the response body and the application record before translating either into a business outcome.

Source: RFC 9110: HTTP response semantics

2. Use one traceable test

On a site you own or are authorised to test, agree a receiving person and a short test window. Submit harmless, clearly labelled details once. Use a reference such as TEST-ENQUIRY-001 and record the time, page, browser and expected destination.

Ask the administrator to locate the saved record. Ask the recipient to locate the corresponding notification. Check any acknowledgement to the visitor separately: the visitor receiving a receipt does not establish that the sales team received its message.

If access to a stage is unavailable, mark it unverified. Do not infer a failed database from a missing email, or a working inbox from a confirmation banner.

3. Diagnose the first missing link

ObservationNext investigationPremature conclusion to avoid
Confirmation shown, no stored record foundCheck endpoint response, validation and persistence for that referenceThe email provider lost it
Record stored, no notification attemptCheck the job or integration that should create the notificationThe website needs redesigning
Sending service accepted, inbox not confirmedCheck recipient routing, delivery events and the mailbox with its ownerThe recipient read it
Inbox confirmed, no assignmentCheck routing rules and the responsible teamMore traffic will solve the problem

On a small screen, scroll the table horizontally.

SMTP acceptance matters, but it is a transport-stage acknowledgement. RFC 5321 distinguishes acceptance for delivery or relay from subsequent delivery handling. A log from your sending relay does not show where the message appeared in the recipient's mailbox or whether anyone read it.

Source: RFC 5321: mail acceptance and delivery

4. Test ambiguous retries before launch

A request may be stored even when the browser times out before receiving confirmation. Blindly submitting again can create duplicates.

A suitable implementation can associate retries of the same intended submission with one idempotency key. The server must enforce that relationship atomically, verify that the payload matches and return the existing result or an explicit conflict. Merely adding an ID field does not prevent duplicates. A genuinely new enquiry needs its own identifier.

Stripe documents an implementation of idempotent API requests. It is a useful engineering reference, not evidence that a particular website form already supports the same behaviour.

Source: Stripe: idempotent requests

5. Reconcile analytics with operational records

Google Analytics defines generate_lead as an event for a generated lead, including through a form. The event name cannot verify the website's implementation. If it fires on a button click or before storage is confirmed, its count describes that trigger.

Source: Google Analytics: recommended lead events

Our proposed measurement contract is to record a successful enquiry after the application confirms the intended durable record. Keep detailed internal references out of public reports. Use comparable cohorts and time windows when reconciling systems: a consent-limited analytics count is not automatically the denominator for every backend enquiry.

For an illustrative controlled test of ten unique submissions, ten confirmations, nine saved records and eight inbox-confirmed notifications locate two gaps worth investigating. They do not establish how many historical customers or sales were lost.

Keep this diagnostic record

Record these fields: Page · test reference · time · stored record · notification attempt · inbox evidence · owner · correction · retest

The completion test should repeat the original path, verify the same stages and check the retry case. A correction is ready to hand over when another person can follow the evidence from the visitor's action to the agreed receiving point.

All test identifiers and counts in this article are illustrative. The state model and measurement contract are Layerly proposals. No live customer test or revenue result is asserted.

Related guides

Request a focused review of your enquiry path