Your AI agent can email people now.

Give it an inbox. It sends, reads the replies and checks what happened to every email. You only open the dashboard to pay.

Free sandbox. No credit card.

How it works

  1. 01You ask your AI agent
  2. 02It sends through mailbot
  3. 03mailbot records each step
  4. 04The reply comes back
  5. 05Your AI agent tells you

Let your AI agent answer customers by email

Customers write to your support address. Your AI agent answers in the same thread and passes it to a person when it should.

  • Anyone can write inNo app to install. An email address is enough.
  • You pick the AI agentConnect any agent through MCP or the API.
  • Every answer on recordEach reply sits in its thread with its delivery state.

Chat apps are changing their rules for business AI. From October 1, 2026, WhatsApp Business bills every service message past 1,000 a month per business number, automated replies included1. Since January 15, 2026, open-ended AI assistants are not allowed on its Business API at all2. Email has no single owner.

help@halden.studiothr_01JAZ4K2QX
Maria Souza · 14:02Hi, my order 4471 still says processing. Will it arrive before Friday?
get_thread1 new message · order 4471
Your AI agent · 14:03Hi Maria, order 4471 shipped this morning. Tracking says Thursday. I will email you if that changes.
Maria Souza · 14:05Perfect, thank you.

Seven jobs mailbot handles for your AI agent

Send an email

send_message puts it in a real inbox.

send_messageto: daniel.ortiz@fastmail.comsubject: Your consultation moved to Thursdaymsg_01JAX7Q2N4 · accepted
InboxHalden Support

Your consultation moved to Thursday

Hi Daniel, your consultation moved from Tuesday to Thursday, October 23 at 10:00 am.

Read the reply

It joins the same thread.

thr_01JAX7Q2K8reply 09:31

Check where it is

get_message returns each step with proof.

  1. Accepted09:14:02
  2. Handed offtr_8f31c0a2e7
  3. Delivered250 OK
  4. Failednone

Send later

Set scheduled_at in the API. Late sends raise an alarm.

  • Follow up: intake formSun 08:00Late 1 h 14 min
  • Weekly availabilityMon 08:00 · 41 peopleWaiting
  • Reminder: consultationWed 10:00Waiting

Recover a missed event

replay_event sends it again.

  • Try 109:14:10Timeout
  • Try 209:15:10502
  • Replay09:20:44 · same event ID200 OK

Know how much is left

get_usage gives the same number you pay for.

3,412of 10,000 outbound emails this month
Example workspace · resets Nov 1

See opens and clicks

get_engagement_stats, when tracking is on.

  • bookings@Reminder: intake formOpened 2 times
  • support@Tracking offNo data

Missing tracking shows as no data, never as zero.

When something fails, it says so

A refused email never shows as sent

The reason comes word for word.

Welcome to Halden Studioto j.miller@proton.me · 07:12Failed

550 5.7.1 Sender address rejected: halden.co not ready for sending

Example provider rejection. Check the message status before retrying.

Check a message before retrying

Read the message status through the API. A timeout does not prove that a message was not sent.

  • Send a messageExample API flowCreated
  • Read its statusUse the returned message IDInspect

Inspect the stored message before retrying a send.

Set it up once in your AI agent

One command adds the MCP server.

npx mailbot-mcp
ClaudeChatGPTCursorCodex
create_inboxget_inboxlist_inboxessend_messagereply_to_messagelist_messagesget_messagelist_threadsget_threadreplay_eventget_engagement_statsget_usage

Prefer code? The same actions are in the REST API and the Node and Python SDKs.

$ npx mailbot-mcp
connected · 12 tools
> send_message to=daniel.ortiz@fastmail.com
  msg_01JAX7Q2N4 accepted
> get_message msg_01JAX7Q2N4
  delivered 09:14:09 · 250 2.0.0 Ok
> list_threads inbox=support@halden.studio
  thr_01JAX7Q2K8 · new reply from Daniel
> reply_to_message msg_01JAX9B7TR
  msg_01JAX9D0WS accepted
> get_usage
  3,412 of 10,000 outbound this month

Pricing

Plans differ only in monthly volume.

Sandbox

$0

1,000 outbound emails per month

Start free

Usage counts recorded outbound messages, including scheduled messages. Received email and webhook delivery attempts are excluded. Retrying a send can create another counted message.

Questions people actually asked

The API returned 400. Did the email go out or not?
Check the error code and any message ID in the response. If the outcome is unclear, inspect the message status before retrying. Retrying a send can create another message.
Why does it say sent when nothing arrived?
Sender acceptance is not a delivery receipt. Read the message status and available delivery events through the API. An absent delivery event is not confirmation that an email arrived.
Why do I see 0 opens when I know people opened it?
An open count only reflects recorded tracking events. A zero does not prove nobody opened the email. Check whether tracking was enabled.
I upgraded. Why am I still blocked at 100 emails?
Account and inbox limits can both apply. An older inbox may retain its own daily limit after a plan change. Check the API error and contact support if that limit needs review.
Is my domain still verified?
Verification reflects the last DNS check. Use the domain verification API to check again after changing DNS records, and inspect the SPF, DKIM and DMARC results.
Where is my API key after signup?
On the Billing page, shown once, with a copy button. Rotation revokes the old key immediately. Update your agent with the replacement key before continuing work.
Is the service up?
Read /health for database, queue and overdue scheduled-send indicators. /healthz and /readyz check database and Redis connectivity.
Do I need the dashboard?
Only to pay and to manage keys. Your AI agent does the rest.
How do I stop my agent from emailing the wrong people, or too many?
Use separate API keys for your agents and revoke a key when it should stop. Account and inbox sending limits apply. Recipient allowlists, per-key sending budgets and human approval rules must be enforced by your application in this release.

Start with a sandbox inbox

Free, no credit card. Your AI agent can send its first email in a few minutes.