Skip to main content

2026-08-06 · 7 min

The email-triage build we install most often

The architecture behind our most-installed automation: n8n + Claude + Gmail or Outlook, a 30-second first response, and a human approving every send.

The average business email waits about 6 hours for a first reply. Meanwhile 78% of buyers pick the vendor that responds first, and a lead contacted inside 5 minutes is 21× more likely to qualify than one contacted at hour 6. For B2B leads specifically, the average first reply takes 42 hours — and 38% never get one at all. The gap between those numbers is the cheapest revenue most companies are leaving on the table.

Which is why, when someone asks us where to start with automation, the answer is usually this build: one n8n workflow, one Claude prompt, and the mailbox you already have. First response in 30 seconds, not 6 hours — and a human still approves every substantive send. Here’s the whole architecture, including the parts that are hard.

The shape of the build

text

Gmail / Outlook (shared inbox or alias)
  → n8n trigger (Gmail watch / Microsoft Graph subscription)
  → loop guards + thread dedupe
  → Claude classifies: 1 of 8 labels + urgency + sentiment
  → branch:
      new lead     → 30-second acknowledgment + CRM row + Slack ping
      support      → acknowledgment + drafted answer → human approves
      invoice/AP   → handed to the invoice-intake workflow
      VIP          → no template. Phone-level alert to the owner.
      cold/spam    → labeled, archived, weekly digest
  → every substantive reply: drafted by Claude, sent by a human

Stage 1 — intake without infinite loops

A Gmail watch or Microsoft Graph subscription pushes each new message into n8n within a second or two of arrival. Before anything else runs, three guards fire — the unglamorous 10% that separates a production build from a demo:

  • Auto-reply detection. The workflow checks Auto-Submitted and Precedence: bulk headers and known bounce patterns — otherwise your triage system and someone’s out-of-office will happily talk to each other all weekend.
  • Thread awareness. A reply on an existing thread inherits the thread’s classification and skips the acknowledgment. Nobody gets thanked twice for the same conversation.
  • Rate guard. More than 3 acknowledgments to the same address within an hour stops the pipeline and flags a human. Mailing-list storms and misconfigured senders happen; the system assumes they will.

Stage 2 — classification

Claude Haiku reads the message and returns one label from a fixed taxonomy, plus urgency, sentiment, and a one-line summary. Cost is a fraction of a cent per email — a 2,500-email month runs a few dollars. The taxonomy is deliberately closed: 8 labels, each mapped to exactly one action, so behavior is predictable and auditable.

LabelWhat happensFirst response
New leadAcknowledgment sent · CRM row created · Slack ping to sales~30 seconds
Support (existing customer)Acknowledgment + Claude-drafted answer queued for approval~30 seconds
VIP / key accountNo template — owner alerted on their phone, thread pinnedA human, in minutes
Invoice / APRouted into the invoice-intake workflown/a
Vendor / partnerLabeled; reply drafted if a question is detectedSame day
SchedulingCal.com link with context, or drafted times from the calendar~30 seconds
Cold outreachLabeled and archived; weekly digestNone
UnclassifiableLeft untouched, flagged for a humanA human

json

{
  "label": "new_lead",
  "urgency": "high",
  "sentiment": "neutral",
  "vip": false,
  "language": "en",
  "summary": "GC asking for a quote on a 40-unit reroof, timeline June",
  "suggested_action": "acknowledge + route to sales"
}

Stage 3 — the 30-second first response

The mechanism matters. The acknowledgment is not generated on the fly — it’s a template with three slots (name, topic, promise) filled from the classification. Deterministic, so it can’t hallucinate; instant, because there’s nothing to wait for. It sends from the real mailbox, threaded, within 30 seconds:

Thanks — this reached the right person. Dana will get back to you on the reroof quote before 2 pm today. If it’s urgent, call (555) 014-2200.

Two rules we don’t break. First: the acknowledgment always names a concrete next step and a time — never “we’ve received your message.” Second: the substantive answer is never auto-sent. Claude drafts it, pulling from your docs, your pricing, and the thread history, and the draft lands in an approval queue. A human reads, edits, sends. The customer gets a reply in 30 seconds and a considered answer with a real person’s name on it inside the hour.

Stage 4 — approval where your team already is

Drafts arrive in a Slack (or Teams) channel as messages with three buttons: Approve & send, Edit, Take over. SLA timers back it up — a draft unapproved after 45 minutes nudges its owner; after 2 hours it escalates. Everything is logged: volume by label, time to first response, time to human reply, and the approval edit rate. That last number is the quality gauge — when edits on a label climb, its template or prompt needs work, and you can see exactly which one.

The edge cases that make or break it

  • VIP detection. Before any template fires, the sender is checked against your CRM and a domain whitelist. Your biggest account never gets an autoresponder — they get you, faster than before, because the system rang your phone instead of composing a reply.
  • Anger and legal language. Negative sentiment or trigger terms — refund, chargeback, lawyer, attorney, cancel everything — skip the queue and escalate straight to a named human. No template answers a furious email.
  • Attachments. Invoices are detected and handed to the AP workflow; contracts get flagged for review rather than filed silently.
  • Wrong-label recovery. Every acknowledgment is written to read correctly even when the classification missed — nobody asking about a job posting gets “regarding your support ticket.”
  • The 3 am problem. Overnight mail still gets the 30-second acknowledgment, with an honest promise — “first thing tomorrow morning, before 9 am” — not a fake “we’re on it.”

What stays human, permanently

  • Anything with money attached beyond the acknowledgment — quotes, discounts, refunds. Claude drafts; a person with authority sends.
  • Apologies. When something went wrong on your side, a templated response makes it worse. The system detects the situation and gets out of the way.
  • Negotiations and anything a lawyer might one day read. Drafts, yes. Sends, never.

That boundary is not a limitation we apologize for — it’s the design. The build’s job is to make the humans faster and the first response instant, not to impersonate judgment.

What it costs

  • Build: $2,500–4,500 fixed, inside our published single-workflow band ($2k–6k). The spread depends on Gmail vs Outlook, which CRM we’re writing to, and how much approval routing you want. Quoted in writing before we start.
  • Running cost: ~$20/mo for the self-hosted n8n VPS, $5–15/mo of Claude at 2,000–3,000 emails. No per-task fees — volume doubling doesn’t double the bill.
  • Timeline: live in 2–3 weeks, with the first week running in shadow mode — classifying and drafting but sending nothing — so you can audit its judgment before it touches a customer.

The math, labeled

Typical numbers for this type of automation — not client results. Around 65% of routine inquiries end up needing no human work beyond the approval click; documented deployments of this pattern have taken first-response times from 6 hours to under 4 minutes. Ours targets 30 seconds because the acknowledgment path is deterministic.

  • A 5-person team spending 75 minutes each per day on the shared inbox ≈ 31 hrs/week. Triage removes the sorting, the routing, and the first draft — call it 40%: ~12 hrs/week back.
  • 12 hrs × $35/hr × 52 ≈ $21,800/yr recovered, against a build under $5k.
  • The revenue side is harder to put on an invoice and bigger: every lead answered inside a minute, in a market where 38% of B2B inquiries never get a reply at all.