Case study

Speed to Lead

Automated inquiry capture, qualification, and instant reply.

Client
Workflow Mindset — our own intake
Built
July 2026 · reply + monitoring added August 2026
Status
Live in production
Stack
n8n · Claude API (Sonnet 5) · Airtable · Resend · Cloudflare

The problem

Most small businesses lose inquiries to response time, not to competitors. An inquiry arrives, sits in an inbox behind whatever else is happening that day, and gets a reply hours later — by which point the prospect has contacted three other providers.

The second problem is triage. Not every inquiry deserves the same attention, but sorting them takes exactly the time that isn't available on a busy day.

What was built

Every inquiry to workflowmindset.com is captured, read by an AI model, classified by priority with a written summary, filed as a structured record — and answered. A genuine prospect has a reply from the business in their inbox in about six seconds, with no human involvement anywhere between submission and that reply landing.

Every inquiry in these screenshots is a test submission — made-up names, companies, and email addresses. Real inquiries are never published, yours included.

n8n workflow: eight nodes from Lead Received through Send Reply, every one successful
The pipeline: capture, prompt assembly, AI assessment, formatting, record creation, a cold-lead gate, reply assembly, and dispatch.
  1. Capture — an authenticated webhook endpoint accepts the inquiry from any approved source: website form, chat widget, or a third-party service
  2. Assess — Claude reads the message against a defined rubric and returns a written qualification plus a priority level
  3. File — a structured record is created with the assessment attached, timestamped, and marked New
  4. Reply — genuine prospects get an immediate acknowledgment from the business's own domain; junk does not
Full n8n execution view with every node green
A full run: every node green, from capture through to the reply being dispatched.

Any source can feed it

The endpoint accepts structured data over HTTP, so the same system serves a website form, a chat widget, a phone-transcription service, or a partner's referral feed. No rebuild required to add a channel. Submissions must carry a shared-secret header, so only authorized sources can post to it.

Terminal showing a curl POST submitting a test inquiry and an HTTP 200 response
A submission accepted and acknowledged. Endpoint path redacted.

The qualification logic

This is the part that separates a working system from a generic one.

The classifier runs a two-step gate rather than a single judgment call. Step one asks only whether the sender is a potential customer at all — a vendor pitch, job seeker, or spam is filtered out here. Step two ranks genuine prospects by how specific and urgent their need is.

Worked examples pin the boundary cases, and ties break upward, so a real business is never buried by a short message.

The Build Prompt node showing the two-step classification rubric with worked examples
The rubric: a two-stage gate with worked examples fixing the edge cases.

In practice: a plumbing company missing twenty calls a week is Hot. A roofing contractor losing estimate requests while on a job is Hot, with different reasoning. A vague inquiry from a real electrical contractor is Warm — worth a conversation. A freelancer looking for work is Cold.

The classification does double duty: it also decides who hears back. Hot and Warm inquiries get the automated reply. Cold ones — vendor pitches, job seekers, spam — are filed for the record but receive nothing, which protects the domain's sending reputation and means the acknowledgment only ever goes to a real person.

Airtable Leads table with qualified records marked Hot, Warm, and Cold
Each record carries a written assessment, not just a label.
Airtable record detail with a written qualification and a Hot priority
The assessment names the quantity, the cause, and why the priority was assigned.

The reply

Six seconds after a prospect hits submit, this is in their inbox:

The automated reply received in a Gmail inbox, sent from the business domain
Sent from the business's own domain, addressed by first name, delivered to the inbox — not the spam folder.

The email is deliberately plain: no logo, no template, no tracking. It confirms the message arrived, sets an honest expectation — a personal response within two business days — and invites the prospect to reply directly. Replies go straight to the business mailbox.

What it does not do is pretend. The acknowledgment never claims a human has read the message yet, and the promised follow-up window is one the business actually keeps. Speed buys attention; the honesty is what it's spent on.

When it breaks, I know before you do

The workflow most automation demos skip: the one that runs when something fails.

A separate monitor is wired to the pipeline. If any step errors — an API outage, a bad credential, anything — it immediately pushes an alert naming the workflow, the exact node that failed, the error message, and a direct link to the failed execution.

Push alert naming the failed workflow, the node, the error, and a link to the execution
A deliberately induced failure during testing. The alert arrived while the failing request was still being logged.

A lead that fails to process is a lead the system fights for: the pipeline fails open (see technical notes), the failure is recorded with full context, and a human is told within seconds. Nothing disappears silently.

Tuning

The first version of the classifier was too harsh. It read "just looking around" from a named electrical contractor and marked it Cold — technically defensible, but Cold is the bucket you don't follow up, and that inquiry was a real business.

Rewriting the classification step as a two-stage gate, with worked examples pinning the boundary cases, moved the same inquiry to Warm.

Two Airtable records with identical messages, classified Cold before tuning and Warm after
Identical input, identical model. Only the reasoning changed.

This is what maintenance on an AI system actually looks like — and it's why these builds come with a retainer rather than being handed over and forgotten.

Results

MetricResult
Submission → qualified record on file2.8–4.5s (3.7s avg)
Submission → reply in the prospect's inbox6.3 seconds
Manual steps required0
Total API cost, all development and testing$0.02
Inquiries missed or unlogged0
n8n executions list showing run durations around three to four seconds
Run history with durations. Versioned, so any change is traceable to the run that used it.
Anthropic console cost view showing two cents of total spend
Total model spend across every run of the build, start to finish.

Technical notes

  • Self-hosted n8n behind Cloudflare, TLS terminated at the edge, origin not publicly advertised
  • Webhook requires a shared-secret header; unauthenticated submissions are rejected
  • API credentials scoped per service and pinned to their provider's domain, so a misconfigured workflow cannot transmit a key elsewhere
  • Email key restricted to sending only, and only from the verified business domain
  • Outbound email authenticated with SPF and DKIM; sending and receiving run on separate infrastructure so the automated sender can never interfere with the business inbox
  • Database token limited to a single base, records read/write only
  • A global error workflow monitors every run and pushes failure alerts with a direct link to the failed execution
  • Every version published with a label, so any classification can be traced to the exact logic that produced it
  • Fallback: if the model response fails to parse, the lead is filed anyway with a default-Warm priority. The system fails open — a degraded record beats a lost lead.
  • Full backups of workflows and configuration held off-server; encryption key stored separately, without which credentials cannot be decrypted

Reuse

The pattern applies to any business fielding inbound inquiries — trades, professional services, clinics, agencies. What changes is the qualification rubric, where records land, and what the reply says. Capture, assessment, filing, and dispatch are identical.

Next step

Want this running on your inquiries?

Fifteen minutes on a call. Tell me how leads reach you today, and I'll show you this system live.

Book a call