# Connect Custom code to Email | Novu Connect

> Give your Custom code agent a voice in Email with Novu Connect.

Canonical: https://www.novu.co/channels/email/custom-code/

Markdown: https://www.novu.co/channels/email/custom-code.md

No framework required. Connect the agent loop you already wrote to every channel your users are on. Novu Connect gives it a voice in Email.

Novu Connect is the communication layer, the ACI, Agent Communication Infrastructure, bridge between your custom agent and Email. Your agent keeps running in your app. Novu delivers its messages to Email, maps each user, and forwards their replies back to your handler. We never run your agent's reasoning. That is the whole point.

Connect command: npx novu connect --channel email --runtime custom-code

## What is Custom code

Custom code means the agent is fully yours: your own loop, your own model calls, your own tools, no framework in between. Novu does not care how your agent thinks. The bridge hands your handler each incoming message with its conversation context, and whatever your handler returns goes back to the user. That last mile, reaching a person in Slack and routing their reply back to your agent, is what Novu Connect adds.

- Any model provider and any agent loop you already run
- A plain handler: message in, reply out
- Conversation context and user identity handled for you
- No framework dependency to adopt

## How to connect Custom code to Email

1. Keep your agent: Your loop, model calls, and tools stay in your codebase exactly as they are. Novu Connect wraps the input and output, so your agent code does not change when you add Email.
2. Connect the channel: Run npx novu connect --channel email --runtime custom-code. The CLI scaffolds a bridge route in your app and connects Email. You can also paste the prompt below into your coding agent and let it wire the bridge for you.
3. Wire the bridge handler: The CLI prints a requirements file with the bridge route and handler. Point the handler at your agent: it receives each Email message with conversation context, and whatever it returns routes back to the same conversation.
4. Go live: Sign in to keep the agent live, then run your dev server. Your agent now holds a two-way conversation in Email, and the same agent can reach every other channel from one thread.

Prompt for your coding agent: Connect this project's Custom code agent to Email with Novu using instructions from https://novu.co/agents.md

## Custom code and Email, common questions

### My agent uses no framework at all. Does that work with Email?

Yes. That is what the custom-code runtime is for. The bridge is a plain handler: Novu passes in each Email message with its conversation context, and whatever you return goes back to the user.

### Does Novu run my agent?

No. Novu Connect is the communication layer, the ACI, Agent Communication Infrastructure, bridge between your agent and Email. You own the reasoning and the tools. We never run your brain, that is the whole point.

### Can I switch model providers later?

Yes. Novu only carries the conversation to and from Email. What happens inside your handler, including which model you call, is entirely up to you and can change at any time.

### How do I connect my AI agent to Email?

Run npx novu connect --channel email, or paste the prompt above into your coding agent. Novu Connect handles templates, delivery, and reply routing so your agent code stays the same.

### Can the agent handle approvals and actions over email?

Yes. Novu Connect supports secure action links, so a customer can approve or act on a request straight from the email, and the result routes back to your agent.
