// build it in 30 minutesby 5 min read

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.

n8nnotionemailautomationtutorial30 min build
// go deeper

Worked steps, FAQs and resources on this topic.

read the guide
// the_list

Get the next one.

Field notes from real deployments, written the way this one was. No schedule promised and nothing sold to you. Unsubscribe whenever.

// keep reading

Related posts

// ready to ship?

Let's build yours.

Reading is the easy part. We do the work. Tell us what's broken and we'll tell you straight up whether we can help.