Case Study ·

The contact form that said thanks and sent the lead nowhere

My own site returned a thank-you while the lead reached nobody. The bug, what it cost, and the definition change that fixed it.

The problem

The contact route forwarded submissions to an n8n webhook only when an environment variable was set — and returned success either way. With that variable unset or pointed somewhere wrong, the forward was skipped and the route still answered success.

The visitor saw a thank-you message. The lead reached nobody. Nothing errored, nothing alerted, and a silent failure leaves no queue to go back through afterwards.

What it cost

At least one real inbound lead was lost while the site ran that way. That is the entire claim — no count, no deal value, no name. Someone wanted to talk to me, said so through the form, and I never saw it.

What I did

On 31 August 2026 I migrated intake to Resend as two sends with two different contracts.

The internal notification is the critical path. The route is not allowed to return success without it — if that send fails, the failure is logged, the route returns a 502, and the form honestly tells the visitor to try again.

The customer confirmation is best-effort. By the time it runs the lead is already captured, so a failure there is logged and nothing more. Failing a real prospect's submission over a courtesy email would trade one problem for a worse one.

The idea worth stealing

The fix was a definition, not a vendor. n8n was not the problem; the webhook did its job whenever it was pointed at a live workflow. The problem was that my route defined success as “I finished running” instead of “the lead is somewhere a human will see it.”

Make success mean captured, and the silent failure has nowhere left to hide.

Verify it yourself

This is my own site, not an anonymised client story — Smart AI Workspace is client zero. Submit the contact form and watch the confirmation arrive from a monitored address with your message quoted back to you. Reply to it and it reaches me.