anfloy.AcademyBook a call

Internal Ops · 02 · Ops workflows & documentsLesson 4 of 4

Inbox & request triage

45 min working time · Weeks 7-8

By the end of this lesson you can
  • Triage shared inboxes with drafted responses
  • Escalate the judgment calls, automate the rest

The triage agent

One build, one outcome: yesterday's shared inbox labeled, routed to owners, and pre-drafted - with sending physically blocked. Shared inboxes - support@, ops@, hello@ - are where requests go to wait. The triage agent reads what arrived, labels it by your taxonomy, routes it to the right owner, and drafts replies for the routine cases. The human acts on a sorted, pre-drafted queue instead of a raw pile.

Gmail is the cleanest place to build this, because the human gate is built into the product: drafts. Claude searches threads, applies labels, and creates drafts - and the connector pattern stops there. Reading the draft and pressing send stays human.

Build the inbox-triage skill

  1. Write your label taxonomy first, as a plain list: billing, support, sales, vendor, spam, urgent - whatever your real categories are. Eight or fewer; more than that and humans stop trusting the labels.
  2. Map each label to an owner in company/org-chart.md. Triage is routing, and routing needs the chart current.
  3. Create .claude/skills/inbox-triage/SKILL.md: search unprocessed threads since the last run, classify each against the taxonomy, apply the label, and draft replies only for the categories you have marked draftable.
  4. Define the escalation rule in the skill: angry tone, legal language, money above a threshold, or anything the taxonomy does not fit gets the urgent label and a Slack ping to the owner - no draft, no cleverness.
  5. Run it on yesterday's inbox. Check every label and read every draft before anything is acted on. Tune the taxonomy descriptions where it misclassified - that is almost always the fix.

Expect the first run to misfile a few. The skill improves the same way every skill does: edit the descriptions, run again. After a few tuning passes, the remaining misses cluster in the categories that genuinely needed a human anyway - which is the system telling you where its edge is.

Form intake: the webhook variant

Requests also arrive through forms. Typeform's Responses API and webhooks are mature and simple - which makes form intake a good first event-driven build. The flow: a submission fires a webhook, the payload reaches Claude, Claude classifies and enriches the response, then routes it - CRM record created, Slack alert if it is hot.

You do not need to run a server for this. Cloud Routines (module three) expose an API trigger - a /fire endpoint you can point the webhook at, directly or through one Zapier step. The full setup is next module; for now, build the classification skill so it is ready to receive.

When NOT to automate

Triage naturally creeps toward judgment: today it labels, tomorrow someone suggests it score the inbound job applications. This is where you need a bright line.

The compliant pattern keeps Claude as organizer and evidence-extractor: structure each resume against a rubric, quote the evidence for every claim, never infer protected characteristics, and rank nothing for rejection. A human makes every advance-or-reject call. That pattern - the screen-candidates skill from the library - is genuinely useful and keeps you on the right side of the line.

  • Also do not automate: anything irreversible without a preview - mass deletes, mass emails, payments and refunds.
  • Legal commitments: contract terms, anything a counterparty could rely on.
  • Final pricing and discounts.
  • Any flow where you cannot define "correct" well enough to spot-check it. If you cannot audit it, you cannot automate it.

Do this now

Sources and further reading

We set it up with you

Want us to set it up with you, end to end?

Three one-on-one sessions. We train you on your real stack and build your first agents together, until you can run it yourself. You keep everything.