cd /news/ai-tools/i-automated-my-inbox-triage-with-n8n… · home › topics › ai-tools › article
[ARTICLE · art-145750] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

I automated my inbox triage with n8n + GPT-4o-mini (copy the exact workflow)

A developer built an n8n workflow that uses GPT-4o-mini to triage unread Gmail messages into four fixed labels — REPLY_TODAY, TASK_LATER, READ_LATER, and NOISE — and drafts a one-sentence reply only for the two buckets that need one. The key design decision was replacing an open-ended "is this important?" prompt, which returned "somewhat important" for every message, with a closed taxonomy requiring exactly one label per email. The workflow runs on a schedule, routes messages via an n8n Switch node on the model's first output line, and is packaged as a ready-to-import template.

by read2 min views1 publishedOct 6, 2026

You don't need an empty inbox. You need to know which 12 of your 200 unread emails actually need you today — and which ones can die quietly.

I got tired of scanning my inbox every morning, so I built a small n8n + GPT-4o-mini workflow that reads new mail, sorts every message into one of four buckets, and drafts a reply for the ones that need one. It runs on a schedule, costs pennies, and takes about 15 minutes to set up.

Here's the whole thing — plus the one design decision that made it actually usable.

The first version I built asked the model "is this email important?" It was useless. Every email came back "somewhat important."

The fix was to stop asking for a judgement and start asking for a single label from a fixed taxonomy. Four buckets, no hedge, no score:

One label per email. That's it.

You are an inbox triage assistant. Read the email below and return exactly one of these labels on the first line: REPLY_TODAY, TASK_LATER, READ_LATER, NOISE.

Rules:

  • Only use REPLY_TODAY if a specific person is blocked on your answer.- Marketing, cold sales, and automated notifications are always NOISE.- If you choose REPLY_TODAY or TASK_LATER, write a one-sentence draft reply (max 40 words) on the second line, in the sender's language, in a friendly professional tone.
Subject: {{ $json.subject }}

From: {{ $json.from }}

Body:

{{ $json.snippet }} Two things matter here: the label set is closed, and the draft is only generated for the two buckets that need one. That keeps token usage (and cost) low.

in:inbox is:unread newer_than:1d. REPLY_TODAY gets starred + draft attached; TASK_LATER gets appended to a Google Sheet; the rest get labeled and archived. That's a real workflow, not a toy. The router is just a Switch node on the first line of the model's output.

Rebuilding this from scratch (Gmail OAuth, the filter, the parser, the router) is the boring part. I packaged the polished version as a ready-to-import n8n template:

Triage your inbox once, and you'll never go back to scanning.

── more in #ai-tools 4 stories · sorted by recency
── more on @n8n 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-automated-my-inbox…] indexed:0 read:2min 2026-10-06 · —