Agencies
How to prove your website generates leads when the client never replies to them
A monthly lead-handling report separates the leads your site delivered from the leads your client answered. Here is the runbook, the template, and what to do when the client pushes back.
Short answer
To prove a website generates leads, log every form submission at the source, match each one to the client's reply, and report six numbers monthly: received, answered, time offered, booked, waiting on the owner, and lost with a reason. The log shows where leads stop. That matters because many stop in the inbox: Leadferno's 2024 test of 225 small-business forms found 42.6% of leads never got a reply.
42.6%
of small-business contact-form leads got no reply in a 3-week test
Leadferno, 225 forms, June 2024
4.8%
of the contact forms tested were broken
Leadferno, June 2024
149
r/PPC posts reviewed; manual client reporting was one of six recurring pains
ideafast, July 2026
To prove your website generates leads, keep your own log of every submission and report what happened to each one. Report six numbers each month: received, answered, time offered, booked, waiting on the owner, and lost with a reason. The log ends the "the site doesn't work" argument with dates. It also shows where leads stop. Often that is the client's inbox: in Leadferno's 2024 test of 225 small-business forms, 42.6% of leads never got a reply1.
This is a runbook. It takes about two hours to set up per client and 30 minutes a month to run.
What this runbook produces, and what you need first#
The lead-handling report is a one-page monthly document per client. It separates your work (the site delivered the lead) from the client's work (the lead was answered). Most agency reports stop at the first half. That gap is where retainers get cancelled. The second half is often thin. In Pied Piper's April 2026 mystery shop of 3,211 home-services locations, 72% of inquiries got no follow-up within 24 hours7.
Prerequisites. Do not start without all four.
- Admin role on the form tool or site. You need to read stored entries and edit notification settings.
- A logging address you control. A mailbox or spreadsheet that receives a copy of every submission. It must not be the client's inbox.
- Written agreement from the client. One paragraph: what you log, who sees it, how long you keep it.
- A named person on the client side. The one who answers leads. You will ask them to confirm replies once a month.
You do not need access to the client's inbox. Do not ask for it.
Use this runbook if, and do not use it if#
The lead-handling report fits a specific situation. Check the filter before you build it.
| Use it if | Do not use it if |
|---|---|
| The client says the site "doesn't bring customers" | The site gets fewer than five leads a month (fix traffic first) |
| Leads arrive by form or email | Nearly all leads arrive by phone (use call tracking instead) |
| You are paid a monthly retainer and renewal is at risk | The client refuses any logging of submissions |
| The client answers leads themselves or with a small team | A sales team already reports pipeline from a CRM |
Pre-flight checks before the first report#
Pre-flight checks confirm that submissions reach a human before you measure what that human did. Run all three. Each has a pass condition.
- Send a test submission. Use a real-looking message from an outside address. Pass: it appears in the form tool's entries and in the client's inbox within five minutes. Fail: stop and fix delivery. Leadferno found 4.8% of tested forms broken outright1.
- Check where it landed. Ask the client to confirm it reached the main inbox, not spam. Pass: main inbox. Fail: check the sending domain's SPF, DKIM and DMARC records. Seabrook names spam filtering of free mailboxes as a common cause of missed submissions3.
- Compare counts for last month. Form-tool entries vs notifications the client can find. Pass: the counts match. Fail: you have a silent delivery fault. Fix it before the first report, or the report will blame the wrong person.
Step-by-step: build the lead-handling report#
The lead-handling report runs on six steps. Verify each one before moving on.
- Copy every submission to your log. Add the logging address as a second notification recipient, or connect the form to a spreadsheet. Verify: send a test; one new row appears. If it does not, check the form's notification rules.
- Give each row an ID. Date plus a counter, such as 2026-10-03-04. Verify: no two rows share an ID. Duplicates mean a double-firing form; fix the form, then delete the duplicate.
- Mark spam by the agreed rule. Apply the written spam rule (see Failure mode 1). Verify: every spam row has a reason. If you cannot state a reason, the row is a lead.
- Collect the reply columns monthly. Send the client's named person the list of IDs. They fill in: first reply date, time offered (yes or no), outcome. Verify: every row has an outcome. Chase blanks once.
- Count the six numbers. Received, answered, time offered, booked, waiting on the owner, lost with a reason. Add median days to first reply. Verify: answered plus never answered equals received.
- Send the one-page report. Put your metrics (traffic, rankings) in a separate section below. Verify: the client's named person confirms receipt. If they do not, raise it on the next call.
Pascal Cescato, a developer commenting on Seabrook's post, describes the same core move: "log every message as a record in a database table and a daily report."2 He adds that the report is mainly for his own use. Make yours for the client.
LEAD-HANDLING REPORT
Client: ____________ Month: ________ Prepared by: ________
Window: 1st to last day of month, client's time zone
PART A: LEADS THE SITE DELIVERED (agency)
Submissions received ............... __
Marked spam (agreed rule) .......... __
Leads received (A) ................. __
PART B: WHAT HAPPENED TO EACH LEAD (client)
Answered ........................... __ of A
Never answered ..................... __ of A
Time offered (specific date/time) .. __ of answered
Booked ............................. __
Waiting on owner (price, deposit,
contract, complaint) ............. __
Lost, with reason .................. __
reasons: chose another / budget /
date taken / no reply after follow-ups
Median days to first reply ......... __
PART C: ROWS NEEDING ACTION THIS WEEK
ID ______ received ____ status ______ next step ______
ID ______ received ____ status ______ next step ______
PART D: AGENCY METRICS (traffic, rankings, conversion rate)
(kept separate from Parts A to C)
Data: form-tool log (agency); reply columns confirmed by
________ (client) on ________.
Three failure modes, and the exact fixes#
The lead-handling report fails in three predictable ways. Each has a trigger you can see and a fix you can apply the same week.
Failure mode 1: "Those aren't real leads"#
The spam dispute is the most common way the report gets rejected. Trigger: the client disputes rows after seeing the counts. Fix: agree a written spam rule before the first report, not after. Example rule: a row is spam if it has no real name, or sells something, or contains only a link. Count spam in Part A and remove it from A. Every other row stays a lead. If the client wants to re-mark a row, they give a reason in writing. Do not re-mark rows on a call.
Failure mode 2: replies happen where you cannot see them#
Invisible replies make "never answered" look worse than it is. Trigger: the client says "I called them" or "I texted back." Seabrook notes that "Most clients respond faster to a WhatsApp message than an email, every single time."2 Fix: the reply columns are channel-neutral. The client records a reply on any channel, with the date. Do not count a reply that has no date. If phone replies are most of the volume, add a "channel of first reply" column.
Failure mode 3: the client stops filling in the reply columns#
Blank reply columns are a signal, not a gap. Trigger: two months of blanks. This is the pattern agency forums describe. A thread in r/DigitalMarketing (20+ comments, c. 2025) was titled "Business Owners not caring about leads"6. Another, in r/AskMarketing (10+ comments, c. May 2026), said most leads "just die in the CRM"5. Fix: send the report anyway with the blanks shown as "not confirmed." Then shorten the ask to one question per row: "Booked, yes or no?" A one-question form gets filled in. A five-column sheet does not.
Do not let the report become a blame document. A report that shows 40% never answered is not an accusation. Present it as shared data: "Here is what came in. Here is what we know happened. Which rows can we still save this week?" Part C exists for that reason.
Rollback and the 90-day health check#
The rollback trigger is simple: the client asks you to stop logging. Remove the second notification recipient. Export the log, send the client a copy, and delete the agency's copy. Confirm the deletion in writing. The site keeps working; only the measurement stops.
Run a health check at 90 days. Three questions. Do form-tool counts still match Part A? Has median days to first reply moved? Has booked share moved? If handling improved and booked share rose, you have your renewal evidence. If handling did not improve, the report has done its job anyway: it shows the leads arrived. For the full 90-day method with outcome definitions and formulas, use the Lost Lead Audit.
Manual reporting is a known agency pain. ideafast's review of 149 r/PPC posts lists "manual client reporting" among six recurring problems4. Keep the report to one page so it stays cheap to run.
What one saved client is worth#
Illustration An agency on a $1,500 monthly retainer that keeps one client for another year keeps $18,000. Run the same number for your own retainer. Compare it to 30 minutes a month per client.
Where Valet fits#
Valet is a small business's own AI assistant for written inquiries. The client forwards an address, such as info@, to a private Valet address. Valet answers form and email inquiries from the client's own facts, offers real times from the calendar, and follows up at most twice by default. Every reply gets a Valet receipt: what was asked, the rule used, the sources, and where it was sent from. Every inquiry has a state from New to Booked, or closed with a reason. That is Part B of this report, filled in as the work happens. Money, contracts and complaints wait for the owner.
Receipt (example)
- Asked
- Price for a two-room carpet clean, earliest date
- Rule
- Pricing questions: Autopilot
- Sources
- Price list (updated 2 Sep); calendar
- Sent
- From hello@ on the business's own domain; labelled Answered, time held Thu 10:00
Start with the free lead check: forward 10 to 20 recent inquiries, or show them on a call, and see what went unanswered, what stopped after one reply, and what it was worth.
Questions people ask
How do I prove my website is generating leads for a client?
Keep your own log of every form submission, separate from the client's inbox, and report it monthly next to what happened to each lead. A dated record of 'received' that the client cannot dispute is the proof; the reply columns show where leads stopped.
What should a monthly lead report for a client include?
Six counts: leads received, answered, offered a specific time, booked, waiting on the owner, and lost with a reason. Add median time to first reply. Keep traffic and ranking metrics in a separate section.
What if the client says the leads are not real?
Agree a spam rule in writing before the first report: what counts as spam, who marks it, and when. Count spam separately. Leads that pass the rule stay in the report.
Do I need access to my client's inbox?
No. The client can forward or label the replies, or fill in the reply columns themselves. Full inbox access is not needed and should not be requested.
Sources
Confidence: H primary source checked · M credible secondary or reported · L vendor claim or single report. Reddit and forum items are quoted from public threads and summarised, not endorsed.
- Research: website contact forms and lead management, uncovering costly mistakes · Leadferno · 2024-06-28 H
- The Hidden Cost of 'Just Add a Contact Form' · DEV Community (Joe Seabrook) · 2025-12-30 M
- Why small business clients miss form submissions (and how to prevent it) · DEV Community (Joe Seabrook) · 2025-12-08 M
- Reddit PPC Problems: What 149 r/PPC Posts Reveal (2026) · ideafast · 2026-07-19 M
- "Our leads are going nowhere after they enter the CRM" (thread, 10+ comments; Google snippet) · Reddit, r/AskMarketing · c. 2026-05 M
- "Business Owners not caring about leads" (thread, 20+ comments; Google snippet) · Reddit, r/DigitalMarketing · c. 2025 M
- Precision Garage Door Ranked #1 in Customer Lead Handling Effectiveness Home Services Study · Pied Piper Management Company via BusinessWire · 2026-04-12 H
How to cite this page
Cite this page
Valet, "How to prove your website generates leads when the client never replies to them", valet.team, October 2026.