Now in early access — Clementine Labs

AgentEX1

Email infrastructure for AI agents.
Native agent inboxes. Connected account proxy. One API surface.

agent-mailer.ts
import AgentEX1 from 'agentex1'; const agentex1 = new AgentEX1({ apiKey: process.env.AGENTEX1_API_KEY }); // Create a native inbox for your agent const inbox = await agentex1.inboxes.create({ username: 'support', domain: 'acme.com', display_name: 'Acme Support Agent' }); // → inbox.address === 'support@acme.com' // Send from the agent's inbox await agentex1.emails.send({ from: inbox.address, to: 'customer@example.com', subject: 'Your request has been received', html: responseHtml });

The problem

Your agents need real email

AI agents are increasingly autonomous — but when it comes to email, they're stuck using fragile SMTP hacks or platforms built for humans, not machines.

01
Existing platforms leave a gap

Platforms that give agents inboxes can't proxy through real Gmail or Microsoft 365 accounts. When customers write to their CSM's email, there's no way for an agent to handle and reply through that identity.

02
Building it yourself takes weeks

OAuth scopes, token refresh, webhook handling, threading headers, deliverability monitoring, signature management — every piece is a project. And you'll rebuild it for every customer who wants their own account connected.

How AgentEX1 works

Two modes, one API

The only platform where agents get native inboxes and proxy through real customer accounts. Same client, same calls.

Mode 01 /

Native Agent Inbox

Spin up email addresses on demand. Agents send and receive directly. Full API control over every message, thread, and delivery event.

  • Custom domains with automated SPF / DKIM / DMARC
  • Semantic search across all messages
  • Inbound webhooks and WebSocket events
  • Deliverability monitoring and bounce handling
  • Per-inbox rate limiting and quota controls
const inbox = await agentex1.inboxes.create({
  username: 'agent-support',
  domain: 'yourapp.com',
  webhook_url: 'https://app.you.com/email'
});
Mode 02 /

Connected Account Proxy

Connect a real Gmail or Microsoft 365 account. Agents read and reply through the customer's actual email identity. Recipients never know an agent is involved.

  • OAuth 2.0 integration — Gmail and Microsoft 365
  • Full thread context and conversation history
  • Signature management per identity
  • Rule engine — whitelist, blacklist, time routing
  • Approval queue — hold for human review via API
// Agent replies through customer's real Gmail
await agentex1.emails.reply({
  message_id: 'msg_abc123',
  identity: 'connected:gmail:rep@co.com',
  append_signature: true
});
One agent, both modes. Same API surface.

An agent can use its native inbox for new outreach — and reply from the customer's connected account for existing conversations. No context switching. No separate clients.

Architecture

How a message flows

Every inbound email passes through a structured pipeline. Your agent decides what happens next.

Inbound Email
Webhook
Message Processing
Rule Engine
Agent Router
Agent Response
Response Handler
Auto-send
Save as Draft
Escalate to Human
Ignore / Archive

Developer experience

Clean APIs by default

RESTful endpoints, typed SDKs, predictable response shapes. No surprises.

create-inbox.ts
import AgentEX1 from 'agentex1'; const agentex1 = new AgentEX1({ apiKey: process.env.AGENTEX1_API_KEY, }); // Create a native inbox for an agent const inbox = await agentex1.inboxes.create({ username: 'support', domain: 'acme.com', display_name: 'Acme Support Agent', webhook_url: 'https://app.acme.com/webhooks/email', tags: ['customer-support', 'tier-1'], }); console.log(inbox.address); // → 'support@acme.com' console.log(inbox.dns_records); // → SPF, DKIM, DMARC records
// Send from a native inbox await agentex1.emails.send({ from: 'support@acme.com', to: 'customer@example.com', subject: 'Your request has been received', html: responseHtml, text: responsePlainText, reply_to: 'support@acme.com', metadata: { ticket_id: 'tkt_7829', agent_run: 'run_abc' } });
// Step 1: Initiate OAuth for Gmail const connection = await agentex1.accounts.connect({ provider: 'gmail', redirect_uri: 'https://app.acme.com/callback', scopes: ['gmail.modify', 'gmail.send'], customer_id: 'cust_abc123' }); // → Returns { oauth_url: 'https://accounts.google.com/...' } // Step 2: After callback, AgentEX1 handles token storage // Step 3: Agent replies through connected account await agentex1.emails.reply({ message_id: 'msg_abc123', identity: 'connected:gmail:user@company.com', body_html: agentResponse, append_signature: true });
// Express webhook handler app.post('/webhooks/inbound', async (req, res) => { const { message, thread_history, customer_context } = req.body; const response = await agent.process({ email: message, history: thread_history, context: customer_context, allowed_actions: [ 'auto_reply', 'draft', 'escalate' ] }); return res.json({ action: response.action, body_html: response.body, confidence: response.confidence }); });
// Agent response payload (returned to AgentEX1) { "action": "auto_reply", "body_html": "<p>Hi Alex, thanks for reaching out...</p>", "confidence": 0.94, "identity": "connected:gmail:csm@acme.com", "append_signature": true, "thread_note": "Answered billing question about plan upgrade", "metadata": { "model": "gpt-4o", "tokens_used": 1842, "latency_ms": 1230 } }

Capabilities

Everything agents need to own email

Semantic Search

Search across all inboxes by meaning, not keyword. Find relevant threads fast — no regex, no exact match required.

Rule Engine

Whitelist/blacklist senders, trigger on keywords, route by time of day. Rules fire before your agent ever sees the message.

Smart Threading

In-Reply-To and References headers handled automatically. Every reply lands in the correct thread, every time.

Identity Routing

Automatically reply from whichever address received the message — native inbox or connected account, handled transparently.

Approval Queue

Hold low-confidence responses for human review. Approve or reject via API or the dashboard. Ship with confidence.

Signature Management

Define signatures per identity. Agents append the right sign-off for the right email address automatically.

Webhooks & WebSockets

Real-time events for every email action — received, sent, bounced, approved. Choose push or streaming.

Rate Limiting

Per-customer send limits, provider quota respect, and automatic backoff. Never accidentally flood an inbox.

Encryption

AES-256 at rest, TLS 1.3 in transit. OAuth tokens are isolated per connection, never exposed in API responses.

GDPR Ready

Configurable retention policies, full data deletion on request, and audit logs for every access event.

Custom Domains

Your domain, your brand. Full DNS verification with guided setup. SPF, DKIM, and DMARC configured automatically.

Multi-Identity

One agent, multiple email identities. Mix native inboxes and connected accounts freely. Route dynamically at send time.

API Reference

REST endpoints

RESTful, predictable, versioned. Every resource has the full CRUD surface you'd expect.

Accounts
POST/accounts
GET/accounts/:id
PUT/accounts/:id
GET/accounts/:id/agent
PUT/accounts/:id/agent
GET/accounts/:id/messages
Inboxes
POST/inboxes
GET/inboxes/:id
PUT/inboxes/:id
GET/inboxes/:id/messages
GET/inboxes/:id/search
GET/inboxes/:id/dns
Messages
POST/messages/send
POST/messages/reply
GET/messages/:id
POST/messages/:id/approve
GET/messages/:id/thread
Webhooks
POST/webhooks
GET/webhooks/:id
POST/webhooks/gmail
POST/webhooks/microsoft
POST/webhooks/:id/test

Full API docs — including request schemas, response types, and error codes — coming soon.

API Reference (coming soon)

Comparison

How AgentEX1 stacks up

AgentEX1 is the only platform that covers both native agent inboxes and connected account proxy. Here's a fair look at the options.

Capability
AgentEX1
AgentMail
DIY
Native agent inboxes
Hard
Connected account proxy Differentiator
Very hard
Gmail + M365 OAuth
Yes, weeks
Semantic search
Rule engine
Approval queue
Custom domains
One unified API
N/A
N/A
Time to integrate
Minutes
Minutes
Weeks

Pricing

Simple, transparent pricing

Start free. Scale as your agents grow. No hidden fees, no per-seat charges.

Starter
Free

For prototyping and small-scale agent deployments.

  • 100 emails / month
  • 1 native inbox
  • Community support
  • REST API access
  • Basic webhooks
Business
$199 / mo

For scaling operations with SLA guarantees.

  • 100,000 emails / month
  • Unlimited inboxes
  • 25 connected accounts
  • Priority support + SLA
  • Rule engine + approval queue
  • Audit logs
Enterprise
Custom

Dedicated infrastructure, compliance, and white-glove onboarding.

  • Unlimited everything
  • Dedicated infrastructure
  • SSO / SAML
  • Custom SLA + uptime guarantee
  • Dedicated account manager
  • SOC 2 compliance

Built on

TypeScript PostgreSQL Redis Gmail API Microsoft Graph OAuth 2.0 WebSockets
Early access

Ready to give your agents email?

AgentEX1 is in early access. Create your free account and get your API key in minutes.

Free tier available. No credit card required.