Integration Guide

Notion Integration

Automatically save incoming emails to a Notion database. Perfect for creating an email inbox, tracking support tickets, or archiving important messages.

Overview

The Notion integration creates a new page in your database for each incoming email, capturing the subject, sender, body, and attachments.

Database Storage

Emails stored as pages in your Notion database

Real-time Sync

Emails appear in Notion within seconds

Full Content

Subject, body, attachments, and metadata

Connect Your Workspace

First, connect your Notion workspace to Mailhooks via OAuth.

Step 1: Go to Integrations

  1. Navigate to Dashboard → Integrations
  2. Find the Notion card
  3. Click Connect Workspace

Step 2: Authorize Access

  1. A Notion authorization window will open
  2. Select the pages or databases you want Mailhooks to access
  3. Click Allow access

Step 3: Verify Connection

Once connected, you'll see your workspace listed in the Notion integration card with a "Connected" badge.

Create a Notion Hook

After connecting your workspace, create a hook to route emails to a Notion database.

Step 1: Create a Database

In Notion, create a new database (full page or inline) to store your emails. Mailhooks will automatically add the required properties.

Step 2: Add the Hook

  1. Go to Dashboard → Hooks
  2. Click Add Hook
  3. Select Notion Database
  4. Choose your connected workspace
  5. Select the target database
  6. (Optional) Set a domain filter to only capture specific emails
  7. Click Create

Step 3: Test It

Send a test email to your Mailhooks address. Within seconds, a new page should appear in your Notion database with the email content.

Database Schema

Mailhooks automatically creates these properties in your database (if they don't exist):

Property

Type

Description

Subject

Title

Email subject line (page title)

From

Email

Sender email address

To

Email

Recipient email address

Date

Date

When the email was received

Status

Status

Processing status (defaults to "Not started")

Message ID

Rich Text

Unique email Message-ID header

The email body is rendered as the page content using native Notion blocks, not as a property. See Page Content below for details.

Page Content

When an email arrives, Mailhooks converts the HTML body into native Notion blocks so you can read the full message directly inside Notion. The conversion preserves the structure and formatting of the original email.

Rich Text

Headings, paragraphs, bold, italic, lists, and blockquotes are converted to their native Notion equivalents.

Images

Hero banners, product photos, and content images are embedded as Notion image blocks. Small icons (like social media logos) are converted to compact text links instead.

Inline links, CTA buttons, and clickable images are preserved with their original URLs so you can click through from Notion.

Smart Cleanup

Tracking pixels, hidden preheader text, and email layout markup are automatically removed for a clean reading experience.

How it works

Emails are often built with complex HTML — nested tables for layout, inline styles, tracking pixels, and hidden preview text. Mailhooks processes this in three stages to produce clean Notion pages:

  1. Cleanup — HTML comments, <style> / <script> tags, hidden preheader text (used by email clients for preview snippets), and invisible layout markup are stripped out.
  2. Convert to Markdown — The cleaned HTML is converted to Markdown, which normalises the email's layout tables, nested <div>s, and inline formatting into a clean document structure.
  3. Generate Notion blocks — The Markdown is transformed into native Notion blocks (headings, paragraphs, images, links, lists, code blocks, and tables) and sent to the Notion API.

Image handling

Image type

What Mailhooks does

Hero banners & product photos

Rendered as a full-width Notion image block

Clickable images (wrapped in a link)

Image block followed by a clickable link to the original destination

Small icons (social media, app store badges)

Converted to a compact text link instead of an oversized image

Tracking pixels (1×1)

Automatically removed

Proxy/CDN images

Unwrapped to the original image URL for best compatibility

Field Mapping

If your database already has properties with different names, Mailhooks will try to match them by type. You can also rename properties after creation.

Example Database Setup

Here's a recommended database view for managing emails:

  • Table view — See all emails at a glance
  • Board view — Kanban by Status (New → In Progress → Done)
  • Calendar view — See emails by received date
  • Filter by From — Group emails by sender

Troubleshooting

Database not appearing in dropdown

  • Make sure the database is shared with Mailhooks in Notion's connection settings
  • Try disconnecting and reconnecting your workspace
  • Refresh the page after connecting

Emails not appearing in Notion

  • Check the Logs for delivery errors
  • Verify the hook is Active in the dashboard
  • Ensure domain filtering isn't blocking the email
  • Check that your Notion workspace connection is still valid

Missing properties in database

  • Mailhooks creates properties on the first email delivery
  • You can manually create properties with the expected types
  • Check that the integration has edit access to the database

Connection expired

Notion OAuth tokens can expire. If you see authentication errors:

  1. Go to Integrations
  2. Click the refresh button on your Notion connection
  3. Re-authorize access in the popup

Get Started

Connect Notion

View Quick Start Guide