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. 1. Navigate to Dashboard → Integrations
  2. 2. Find the Notion card
  3. 3. Click Connect Workspace
Step 2

Authorize Access

  1. 1. A Notion authorization window will open
  2. 2. Select the pages or databases you want Mailhooks to access
  3. 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. 1. Go to Dashboard → Hooks
  2. 2. Click Add Hook
  3. 3. Select Notion Database
  4. 4. Choose your connected workspace
  5. 5. Select the target database
  6. 6. (Optional) Set a domain filter to only capture specific emails
  7. 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):

PropertyTypeDescription
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.

Links

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. 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. 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. 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 typeWhat Mailhooks does
Hero banners & product photosRendered 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 imagesUnwrapped 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