docs/platform/inbound-email/overview.mdx
Inbound Email lets you receive mail on addresses you control and route each message inside Novu. Use it to forward replies to your backend via webhooks, or deliver them to an agent for two-way conversations.
<Note> Inbound Email domains are available on **Novu Cloud Team plans and above**. On Enterprise self-hosted, configure verified domains and routes in the dashboard. Community self-hosted does not include this feature. </Note>[email protected]) to a destination.sequenceDiagram
participant User
participant Mail as Your domain MX
participant Novu as Novu inbound mail
participant Dest as Agent or your webhook
User->>Mail: Sends email to [email protected]
Mail->>Novu: Routes via MX
Novu->>Novu: Match domain route
alt Webhook route
Novu->>Dest: POST email.received webhook
else Agent route
Novu->>Dest: Forward to agent bridge
end
When the domain status is Verified, you can create routes.
Each route matches an address local-part on your verified domain:
| Route type | Destination | Use when |
|---|---|---|
| Agent | An agent in your environment | Users email your agent; replies are handled by ACI and your agent handler |
| Webhook | Your outbound webhook endpoints | You want to process inbound mail in your own backend |
Set the local-part to * to match any address on the domain that does not have a more specific route. Useful for [email protected] routing.
Each route supports optional JSON metadata. Novu includes this metadata in webhook payloads under route.data, so you can pass tenant IDs, product slugs, or routing hints without encoding them in the email address.
When a message matches a Webhook route, Novu emits an email.received event to your configured webhook endpoints.
Enable webhooks in the dashboard under Webhooks, create an endpoint, and subscribe to email.received.
The event payload includes normalized mail fields (from, to, subject, text, html, headers, attachments, threading headers) plus your domain and route metadata. See Event types — Email events for the full schema.
<Warning> Do not confuse **Inbound Email** with [Email Activity Tracking](/platform/integrations/email/activity-tracking). Activity tracking receives **delivery and engagement events** (delivered, opened, clicked) from your outbound email provider. Inbound Email receives **messages users send to you**. </Warning>When a message matches an Agent route, Novu forwards it to the selected agent's email integration. Your agent handler receives the message on your bridge URL and can reply with ctx.reply().
For quick setup on Novu Cloud, agents can also use the shared @agentconnect.sh inbox provisioned during npx novu connect. For production, add a custom domain route so users email @yourcompany.com.
See Agents and providers — Email and Custom code agent setup.
On the domain detail page, open a route and use Send test to simulate an inbound message. Confirm delivery in HTTP Logs (source: inbound_email) or on your webhook endpoint.