Firstline Email — every email lead caught, qualified, and acknowledged.
An email lead receiver and qualifier on n8n: inbound mail to the studio inbox is caught, normalised into one canonical lead object, qualified against a deterministic rule set, the owner is notified instantly, and an honest acknowledgement goes out. This is the system we run on our own inbox — the case study is us.
Leads arrive in a shared inbox, mixed with everything else.
First response bound to whenever the inbox is next open.
- A lead that arrived overnight or mid-build waited hours for any acknowledgement at all.
- Real enquiries had to be picked out of automated mail by eye, every time.
- Warm-or-cold was a judgement call made fresh on each email — never recorded.
- Nothing was measured: no latency, no lead counts, no history to query.
One workflow from inbox to acknowledgement — with a declared seam.
- Ingress watches the studio inbox and filters to real enquiries — self-sent, workflow-sent, and obvious automated senders (bounces, no-replies) are excluded up front.
- Normalise produces one canonical lead object. Fields the email doesn't state stay null — best-effort parsing, never fabrication.
- The enrichment slot: an optional dispatch to an add-on workflow. Enriched fields merge over nulls only — an add-on can fill gaps but never overwrite a parsed fact. Slot empty or add-on down, the base proceeds unchanged.
- Qualify scores each lead against a deterministic rule set — sender domain, message substance, enquiry keywords, fresh thread or reply — into HOT / WARM / COLD.
- Notify pings the owner within one polling interval of ingest: band, sender, subject, one-line excerpt.
- One plain-text acknowledgement goes out — honest wording, a human replies within one business day — one per thread, ever.
- Telemetry writes back to the brick's own dedicated table: band, score, and the received / notified / acked timestamps. Deduplicated on message ID, so redelivery produces no duplicate ack, ping, or row.
One acknowledgement per thread, ever. Parsed fields stay null when the email doesn’t say — nothing is fabricated to fill a form.
The enrichment slot is optional and fail-open: empty slot or a failed add-on, and the base brick proceeds unchanged.
Band, score, and timestamps land in the brick’s own dedicated table — never shared with another system. Deduplicated, so redelivery can’t double-count.
Measured, not promised.
The numbers land here when the observation window closes: median email-to-notify latency, median email-to-acknowledgement latency, and lead counts by band — pulled straight from the write-back table. Until then this section stays deliberately empty. No invented figures, ever.