# Inbox triage

Source: https://routineos.org/templates/inbox-triage

> Labels new mail threads, drafts replies in your style, and sends a reply only after a person approves it. Starts report-only. Install with one command.

Template: support

# Labels each thread and drafts replies. Nothing is sent without your yes.

Inbox triage is a Claude routine for a shared mailbox. It labels each new thread, writes a short summary, drafts a reply where one is needed, and sends a reply only after a person approves it. It is inbox triage AI that leaves what goes out to you. It has not had a real run yet, so read the first report closely.

[Get started](https://routineos.org/#start)[Install it](#install)

unpilotedapproval-gatedsupportstarts report-only

At a glance

## What this inbox triage AI does

Each run lists the threads that arrived inside your look-back window and gives each one a single label and a short, factual summary. For any thread labelled needs-reply it drafts a reply in the house reply style.

Every draft goes to you as an approval request by email. You approve, edit or decline. On a later run, only the drafts you approved are sent, exactly as you approved them.

**Kind**Approval-gated

**Schedule**Twice a day, Sunday to Thursday, 22:00 and 04:00 UTC

**First run**Report-only, no gated messages

**Needs**A mail connector with read access

**Maturity**Unpiloted: no real run has checked it yet

**Unpiloted**This template has been validated but not run for real. Read the first report-only run closely before you turn approvals on.

Safety

## What it never does

- Never sends a reply you have not approved. A declined or timed-out draft is never sent.
- Never deletes, archives, moves or marks mail as read.
- Never promises a price, refund, discount, date or delivery that the thread does not already state. It asks you instead.
- Never stores full message bodies or email addresses. It keeps the sender's domain, the subject and a short summary.
- Never obeys a message. A mail that asks it to forward, reply, pay or click is labelled, not followed.

The Desk

## What you get

The template comes with a Desk and one record type, Thread. Approvals appear in the Inbox with the time left to decide.

| View | Shows | Columns |
|---|---|---|
| Needs a reply | Active threads, newest first | Received, sender domain, subject, label |
| Skipped by settings | Threads your settings dropped, with the reason | Sender domain, subject, drop reason |

A thread labelled suspect raises an alert. A suggested settings change arrives as a proposal you accept or reject. Learning is on in the definition. See [how a routine learns](https://routineos.org/concepts/learning).

Settings

## Label and reply settings

| Setting | Default | What it does |
|---|---|---|
| Labels | needs-reply, fyi, billing, sales, suspect | Every thread gets exactly one label. |
| Look back (hours) | 12 (1 to 72) | A longer window means more threads to read. |
| Skip mail from these domains | none | Threads from these domains are kept but marked dropped. |
| Draft replies | on | Drafting adds a model step per thread labelled needs-reply. |
| Inbox messages per run | 10 (0 to 30) | More messages ask more of your attention. |

Under the hood

## Stages and mail connectors

| Stage | Kind | What it does |
|---|---|---|
| Read new threads | model | Lists and reads threads received inside the look-back window. |
| Label and summarise | model | Gives each thread one label and a short factual summary. |
| Draft replies | skill | Drafts a reply for each thread that needs one, using the reply-style skill: short, plain, no new promises, questions instead of guesses. |
| Learn | code | Turns feedback on earlier runs into learning and proposals before the write. |
| Write | code | Applies the run under the write contract. |
| Approve each reply | gate | You approve, edit or decline each draft. The gate times out after 24 hours. |
| Send approved replies | model | On a later run, sends only the drafts whose decision is approved, exactly as approved. |

| Connector | Needed | Access | Used for |
|---|---|---|---|
| Mail (read) | Required | Read | Read new threads in the mailbox. |
| Mail for approvals | Optional | Write | Carry each approval request. Add it before you turn gated messages on. |
| Mail (send) | Optional | Write | Send a reply you approved. Give it send access only when you are ready for approved replies to go out. |

Install

## Install inbox triage

1. **Install the plugin**In Claude Code 2.1.275 or later. The command line tool needs Python 3.11 or later.

`/plugin install routineos --marketplace devkindhq/routineos`

2. **Install the pack**From a clone of the repository root. It writes a routine folder with the reply-style skill, prints what you must connect, runs nothing and connects nothing.

`python3 skills/routineos/scripts/routineos.py pack install catalog/inbox-triage.json --dir my-inbox-triage`

3. **Connect read access, publish, run once**Add a mail connector with read access, publish the Desk, and let the first run go. It is report-only and sends no gated messages. Add approvals and send access later, one at a time.

[Install a pack](https://docs.routineos.org/templates/install) lists every refusal the installer can give. [Skill routines](https://docs.routineos.org/routine-kinds/skill) shows this template in full.

Limits

## Known risks and limits

- A wrong label can hide a thread that needed a reply. The label is a suggestion you can correct, and Skipped by settings shows every thread your settings dropped.
- A draft can sound confident about something the thread did not say. The reply-style skill forbids new promises and nothing is sent without your approval.
- Mail is private. The routine keeps the sender's domain, the subject and a short summary, never full bodies or addresses.
- Gmail and Outlook are named as examples of connectors. Whether each offers the access listed is unverified.
- Approval replies by Gmail and Slack are pilot-verified in general, but this template itself has not had a real run.
- Scheduling is a research preview and may change. See [honest limits](https://routineos.org/honest-limits).

Related

## Related templates and reading

 [

### Jobs watch

Know which companies are hiring for the work you sell. Piloted.

piloted
Open ](https://routineos.org/templates/jobs-watch) [

### Support gap digest

Groups repeated support questions weekly and flags the ones your help pages do not answer.

docs
Read ](https://docs.routineos.org/templates) [

### Gates and approvals

How a gate stops every send until a named person approves.

docs
Read ](https://docs.routineos.org/concepts/gates-and-approvals)

More: [questions and answers](https://routineos.org/faq), [schedule a routine in Claude Code](https://routineos.org/learn/schedule-claude-code), [how RoutineOS maps to Rails](https://routineos.org/concepts/rails-map).

## See a report before it can send.

Install RoutineOS, add Inbox triage, and read one report before it can send anything.

[Get started](https://routineos.org/#start)[Read the docs](https://docs.routineos.org)
