Wire Your Inbox to Notion in 30 Minutes (n8n)
A working pipeline that takes new emails, classifies them, and drops the important ones into a Notion database with summaries. End-to-end build in one sitting.
The build: incoming emails get classified (signal vs noise), important ones land in a Notion database with an AI-generated 1-sentence summary, the rest get archived.
Total time: 30 minutes if you've never used n8n before, 12 minutes if you have.
What you'll need
- -n8n (free self-hosted or cloud trial)
- -Notion account + API key
- -Gmail or any IMAP inbox
- -An AI API key (Anthropic or OpenAI)
That's it. No coding.
Step 1: Set up the trigger (5 min)
In n8n, create a new workflow. Add a Gmail trigger node. Authenticate. Set it to fire on every new email in the inbox.
You can scope it to a label or a specific folder. For testing, I scope to a "ai-pipeline" label so I can control what comes in.
Step 2: Add the classifier (8 min)
After the trigger, add an AI node (use the Anthropic or OpenAI node).
System prompt:
``` Classify this email.
Subject: {{ $json.subject }} From: {{ $json.from }} Body: {{ $json.snippet }}
Return JSON with: - category: one of [client, newsletter, sales_outreach, internal, spam, other] - importance: 1-5 - requires_response: true/false - one_sentence_summary: max 20 words
Use importance 4-5 only for messages that need attention this week. ```
Parse the response as JSON in an n8n Set node.
Step 3: Branch on importance (3 min)
Add an IF node. Condition: importance >= 4.
True branch → goes to Notion. False branch → goes to a "archive" Gmail action (apply a label, mark as read).
Step 4: Write to Notion (10 min)
In Notion, create a database called "Inbox Triage" with columns: - Subject (title) - From (text) - Category (select) - Importance (number) - Summary (text) - Requires Response (checkbox) - Email Date (date) - Gmail Link (URL)
Get the database ID from the URL. Add a Notion node in n8n. Map the fields.
For the Gmail Link, use the format: `https://mail.google.com/mail/u/0/#inbox/{{ $json.id }}`
Step 5: Test (4 min)
Send yourself a test email. Run the workflow. Verify it lands in Notion with the right metadata.
Send a second test that's clearly low-importance (a newsletter). Verify it gets archived without landing in Notion.
What I do with this
Every morning I open the Notion database, sort by importance descending. I see the 4-5 emails that actually need attention. Everything else has been triaged out of my way.
I respond from Notion (the Gmail Link opens the original). The system isn't replying for me. It's filtering.
Common gotchas
- -Free Anthropic/OpenAI tier limits: hit one quickly if you have a high-volume inbox. Set a daily cap in n8n.
- -Notion API rate limit: 3 requests/second. Add a Wait node if you process old emails in bulk.
- -Gmail label vs folder confusion: use labels, not folders, in n8n's trigger config.
What to add next
Once this works, layer on: - Auto-draft responses for "requires_response = true" - Sender-specific routing (clients go to one Notion view, sales outreach to another) - A daily summary email of what was triaged
But ship the basic version first. The whole point of a 30-minute build is one thing working.
Want the full guide? Check out our deep-dive page for more context, FAQs, and resources.
read the full guide