Email actions grounded in your Notion workspace

AI agents read Notion pages and databases to build context, then send or route email through MultiMail with the right oversight mode applied.


Notion serves as the knowledge layer for many AI agent workflows — task lists, CRM records, project wikis, and routing policies all live there. When an agent needs to act on that knowledge by sending email, it needs a delivery API that can handle the gap between "I read the context" and "I sent something I shouldn't have."

MultiMail sits at the delivery end of that pipeline. An agent queries a Notion database to find open action items, reads the relevant pages for context, then calls MultiMail's send or oversight-decide endpoints with the appropriate oversight mode applied. Notion informs the draft; MultiMail decides whether and how it ships.

This pattern appears in outreach automation, customer success tooling, and internal ops agents. The agent pulls structured data — assignee, deadline, status — from a Notion database, constructs a tailored message, and hands off to MultiMail, which can gate the send on human approval, run monitored, or operate fully autonomously depending on how much trust the workflow has earned.

Built for Notion developers

Context-aware sending with approval gates

Notion provides the signal for what to write. MultiMail's gated_send mode ensures that context-informed drafts still require human sign-off before delivery. The two layers are independent: adjust the Notion query logic without touching the oversight policy, or tighten oversight without changing what the agent reads.

Notion database properties map directly to email fields

Structured Notion properties — assignee email, due date, priority tag — map cleanly to MultiMail API parameters. An agent can read a database row and call the send endpoint without an intermediate transformation step.

Oversight modes that match agent maturity

Start with gated_all while your agent is learning the workflow. Promote to gated_send once sends look correct. Run monitored or autonomous once you trust the output. Oversight mode is set per mailbox, so different agents can run at different trust levels without changing your code.

Oversight decisions close the routing loop

When an agent reads a Notion routing table to determine how to handle a pending email, MultiMail's POST /v1/oversight/decide endpoint approves or rejects it — and tagging via PUT /v1/mailboxes/{mailbox_id}/emails/{email_id}/tags records the routing outcome — without requiring a separate delivery call.

Bidirectional webhook-to-Notion sync

MultiMail fires webhooks on inbound email, approval events, and delivery status. Agents can use these to update Notion database rows — logging message IDs, changing status properties, or creating follow-up tasks — so your workspace stays in sync with your email queue.


Try it with your agent

No code, no dashboard. Paste this to your AI agent — it connects MultiMail, creates an inbox, and builds the flow for you.

1. Read https://multimail.dev/llms.txt, then connect the MultiMail MCP server. Use it to create a free inbox for this agent and set up a verified sending domain before attempting any outbound email. 2. Connect to Notion through the real Notion integration or connector available in this agent runtime. Only read Notion pages and databases that have been shared with that integration; use those pages and databases as context for contacts, tasks, status, and reply instructions. 3. Give this Notion agent three email abilities through MultiMail: check the agent inbox, draft replies from Notion context, and send or schedule email. Do not invent any Notion or MultiMail API, webhook, endpoint, or header; use only the connected Notion integration and the connected MultiMail MCP tools. 4. Send one test email from the verified sender to the developer’s test address. The subject should say MultiMail Notion agent test, and the body should confirm that the agent can read Notion context, draft email, and route sending through MultiMail. 5. Run all outbound email in gated_send oversight mode. Before anything sends, show the developer the recipient, subject, body, and whether it will send now or be scheduled, then wait for explicit approval.

Step by step

1

Install the Notion SDK and set credentials

Install the official Notion JavaScript client and create an internal integration at developers.notion.com. Share the relevant databases with that integration, then set your tokens as environment variables.

2

Create a dedicated mailbox for your agent

Give your agent a stable send address using MultiMail's POST /v1/mailboxes endpoint (admin scope). Set oversight_mode to gated_send for first-run safety — you can relax it once you've reviewed a batch of drafts. AI disclosure is locked on for every mailbox and cannot be disabled.

3

Query Notion and send your first gated message

Pull a record from your Notion database and pass the relevant fields to MultiMail's POST /v1/mailboxes/{mailbox_id}/send endpoint. Because the mailbox is in gated_send mode, the send returns 202 with status pending_scan and is held for approval before delivery.

4

Register delivery webhooks

Subscribe to MultiMail delivery events so your agent can react to outcomes — updating Notion records, creating follow-up tasks, or handling bounces.


Common questions

Does MultiMail have a native Notion integration?
No. MultiMail is a REST API — the Notion connection lives in your agent's code. Your agent reads from Notion using the Notion SDK, then calls MultiMail endpoints to send, reply, or decide on email. This keeps the integration under your control: you can change the Notion query logic without touching the email delivery layer, and vice versa.
Can I use a Notion database as a live email routing policy?
Yes. A common pattern is a Notion database where each row defines a routing rule — domain pattern, keyword match, or sender tag mapped to a label and assignee. Your inbound webhook handler queries the database at runtime, determines the correct label, and tags the email via PUT /v1/mailboxes/{mailbox_id}/emails/{email_id}/tags so reviewers can filter the inbox by route. Non-engineers can edit the Notion table to change routing behavior without touching code.
What oversight mode should I start with?
Start with gated_all. Every send and reply requires human approval, which lets you audit the agent's decisions before anything reaches a recipient. Once the output looks correct across a representative sample, move to gated_send (reads are autonomous, sends require approval). Run monitored or autonomous only after validating the full workflow end-to-end.
How do I keep Notion records in sync with email delivery outcomes?
Store a Notion page ID alongside the returned message id when you send. When MultiMail fires an email.delivered webhook, your handler looks up the Notion page and calls notion.pages.update to set the Status property, log the message id, or create a follow-up task. Your own mapping table — message id to Notion page — keeps the workspace in sync; MultiMail returns the message id (the id field) on every send.
Does this work with Python as well as JavaScript?
Yes. Install the notion-client Python package for Notion access. MultiMail has no Python SDK — call the REST API directly with httpx or requests (point them at https://api.multimail.dev/v1 with an Authorization: Bearer header), or drive it through the MCP server. The endpoint paths and webhook payload shapes are identical regardless of language; oversight mode is configured per mailbox, not passed per request.
What happens if the Notion API is slow or unavailable when my agent tries to send?
MultiMail and Notion are independent services — a Notion timeout does not affect MultiMail's ability to accept or deliver messages. If your agent fails to fetch Notion context before sending, you should handle the Notion error in your agent code and either retry or skip that send. Consider caching Notion responses in Redis or a similar cache for routing rules that change infrequently.

Explore more

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a hosted MCP server. Formally verified in Lean 4.