Skip to main content
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.
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.

How it works

  1. Add and verify a domain in the Novu dashboard (Domains).
  2. Point your domain’s MX record to Novu’s inbound mail servers.
  3. Create routes that map local-parts (for example, [email protected]) to a destination.
  4. When mail arrives, Novu parses the message and delivers it according to the matching route.

Add a domain

1

Open Domains

In the Novu dashboard, go to Domains and click Add domain.
2

Enter your domain

Use a subdomain (for example, mail.yourcompany.com) or an apex domain. Apex domains require an MX record at the root; Novu warns if a conflicting CNAME is present.
3

Verify DNS

Add the MX record (and any other records) shown in the dashboard. Novu checks verification automatically; you can also click Verify to re-check.
4

Optional: Domain Connect

If your DNS host supports Domain Connect, use Auto-configure to apply MX records in one step (supported providers include Cloudflare and Vercel).
When the domain status is Verified, you can create routes.

Route types

Each route matches an address local-part on your verified domain:
Route typeDestinationUse when
AgentAn agent in your environmentUsers email your agent; replies are handled by ACI and your agent handler
WebhookYour outbound webhook endpointsYou want to process inbound mail in your own backend

Catch-all routes

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.

Route metadata

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.

Webhook routes and email.received

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.
Do not confuse Inbound Email with 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.

Agent routes

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.

Test a route

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.

Webhooks

Configure endpoints and subscribe to email.received.

Agent conversations

Platform capabilities for agent replies across channels.