AI agents

Give your AI agent
an inbox

Structured JSON payloads, thread context, agent memory, and a Reply API. Everything your agent needs to read, reason, and reply via email.

Start building free

Free plan available. No credit card required.

Email is where most business communication happens. AI agents that can read, understand, and reply to email unlock automation in customer support, sales, operations, legal, and finance. Nuntly provides the full email infrastructure layer so your agent can focus on reasoning, not parsing MIME payloads.

Use cases

What you can build

Any workflow where an AI agent needs to read, classify, or respond to email.

Customer support automation

Assign an agent to your support inbox. The agent reads incoming requests, retrieves relevant context from your knowledge base, and sends structured replies. Escalate to humans on low confidence.

Lead classification and routing

Receive inbound sales emails and use an agent to classify intent, extract company details, and route leads to the right team or CRM pipeline. No manual triage.

Invoice and document processing

Process invoice emails automatically. The agent reads the email, extracts line items from attachments via your pipeline, and triggers downstream workflows like payment creation or approval.

Automated follow-ups

Track conversation threads and detect when a customer has not replied in N days. The agent sends personalized follow-ups using thread context, with no duplicate sends.

Onboarding automation

Respond to new user questions during onboarding based on the product documentation. The agent remembers what was already answered in the thread and avoids repeating itself.

Legal and compliance intake

Receive compliance requests, DSARs, or legal notices by email. An agent classifies the request type, extracts key fields, and creates a structured record in your system.

Email-to-ticket conversion

Receive support emails, extract intent and priority, and create a structured ticket in your helpdesk. The agent replies with the ticket number and expected resolution time.

Event-driven email automation

Trigger internal workflows from inbound email. When a partner sends a report, the agent validates the format, extracts the data, and fires downstream events. No polling.

Code example

Full agent handler with Claude

A complete handler that reads an inbound email, loads thread state, calls Claude, sends a reply, and persists the conversation history.

agent-handler.tstypescript
import Anthropic from '@anthropic-ai/sdk';
import { Nuntly } from '@nuntly/sdk';
const anthropic = new Anthropic();
const nuntly = new Nuntly({ apiKey: process.env.NUNTLY_API_KEY });
// Called when Nuntly fires message.agent.triggered
export async function handleInbound(event: {
messageId: string;
from: string;
subject: string;
}) {
// Fetch full message content — no MIME parsing
const content = await nuntly.inbound.messages.content(event.messageId);
// Load thread context from agent memory
const state = await nuntly.inbound.agents.memory.get({
scope: 'thread',
threadId: content.threadId,
});
// Process with your AI model
const response = await anthropic.messages.create({
model: 'claude-opus-4-6',
max_tokens: 1024,
system: 'You are a helpful customer support agent.',
messages: [
...(state?.history ?? []),
{
role: 'user',
content: `From: ${event.from}\nSubject: ${event.subject}\n\n${content.text}`,
},
],
});
const reply = response.content[0].text;
// Send the reply via Nuntly Reply API
await nuntly.inbound.messages.reply(event.messageId, {
subject: `Re: ${event.subject}`,
html: `<p>${reply}</p>`,
});
// Persist conversation history in thread memory
await nuntly.inbound.agents.memory.upsert({
scope: 'thread',
threadId: content.threadId,
data: { history: [...(state?.history ?? []), { role: 'assistant', content: reply }] },
});
}

Ready to build an email agent?

Get your API key in under 1 minute. Free plan included.

Start building free
Capabilities

Infrastructure built for agent workflows

Nuntly handles the email layer so your agent code stays focused on reasoning.

Structured JSON payloads

No MIME parsing. Messages arrive as clean JSON with sender, subject, plain text, HTML, and signed attachment URLs. Ready to pass directly to your LLM.

Thread context

Full conversation history is available via the threads API. Your agent can read prior messages to maintain context across multi-turn email conversations.

Agent state API

Persist state across conversations at three scopes: global (all inboxes), per-inbox, or per-thread. Use it to store summaries, extracted data, or intermediate results.

Reply API

Send replies programmatically from your agent, linked to the original thread. Supports reply-all and forward.

message.agent.triggered event

Nuntly fires a dedicated webhook event when a message arrives in an agent-assigned inbox. Your agent handler is invoked automatically.

Multi-tenant namespaces

Provision per-customer agent inboxes using namespaces with an externalId. Each customer gets an isolated inbox with its own agent assignment and state.

FAQ

Frequently asked questions

Common questions about this topic.

Explore more

Get started

Ship emails,
Not infrastructure

Trusted by Echo Analytics, DiliTrust, Ogury, and 100+ developer teams.

Free plan available. No credit card required.