[Email](/email)

# Email for your agents. Context for every reply.

Give your application or agent an email address, messages, and persistent threads. Read the conversation, prepare a useful reply, and apply your own review policy.

[Start now ↗](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail%2Fmailboxes)

[Talk to sales ↗](/demo?product=email&source_page=%2Fagent-mailboxes)

BIRD / MAILBOXES

Illustrative experience

01

Read the thread

02

Use the context

03

Review the reply

Replay

Your agent workspace

Illustrative application · API product

fieldnotes.

Inbox 1

Drafts 0

Sent

WORKSPACE

Studio visits

Customer care

Collections

APPLICATION BUILT WITH

BIRD MAILBOX APIs

THREAD / FN–1042

### Could we make it the afternoon?

AL

Alex Lee

Today, 10:42

Hi Fieldnotes, could we move the booking to Friday afternoon? The original booking is attached.

booking.pdf

Friday · 10:00 · FN–1042

✳ Conversation context

ONE ADDRESS / LASTING CONTEXT

### Start with the conversation.

Mailbox

generated@inbox.ai

Customer

Alex Lee

Retained context

Retained messages and thread context

Your agent workspace

Illustrative application · API product

fieldnotes.

Inbox 1

Drafts 1

Sent

WORKSPACE

Studio visits

Customer care

Collections

APPLICATION BUILT WITH

BIRD MAILBOX APIs

THREAD / FN–1042

### Could we make it the afternoon?

AL

Alex Lee

Today, 10:42

Hi Fieldnotes, could we move the booking to Friday afternoon? The original booking is attached.

booking.pdf

Friday · 10:00 · FN–1042

✳ Conversation context

EXTRACTED CONTEXT

### The request, understood.

Current visit

Friday · 10:00

Requested change

Friday afternoon

Availability

To be checked

Your agent has the details to prepare a useful response.

Your agent workspace

Illustrative application · API product

fieldnotes.

Inbox 1

Drafts 1

Sent

WORKSPACE

Studio visits

Customer care

Collections

APPLICATION BUILT WITH

BIRD MAILBOX APIs

THREAD / FN–1042

### Could we make it the afternoon?

AL

Alex Lee

Today, 10:42

Hi Fieldnotes, could we move the booking to Friday afternoon? The original booking is attached.

booking.pdf

Friday · 10:00 · FN–1042

✳ Conversation context

YOUR AGENT / REVIEWED DRAFT

### A considered reply.

Hi Alex, thanks for sending the booking. I’ll check Friday afternoon with the studio before changing FN–1042.

Review required before sending

Your application defines approval and send permissions.

**Example content and data. Nothing is sent or changed in a live account. Use the stage controls to explore.**

Companies that trust Bird across their communications.

- [Airwallex](/customers/airwallex)
- Uber
- [Zillow](/customers/zillow)
- [Glovo](/customers/glovo)
- PayPal
- Adobe

[Read Bird customer stories](/customers)

## Context, with a defined lifetime.

Threads hold incoming and outgoing messages. Original bodies and received MIME remain available for 30 days; retained extracted content follows the supported mailbox retention tier.

[Read the product guide ↗](/docs/guides/email/mailboxes)

## A useful draft deserves a deliberate decision.

Read the attachment context, edit the response and review it before queuing an example reply. Your application owns the agent experience and its permission to act.

The thread, draft and operating boundaries remain readable without JavaScript. Interactive review requires JavaScript.

fieldnotes. / Agent workspace

thr_example_fn1042

RECEIVED / CONTEXT

AL

Alex Lee

alex@example.com → generated@inbox.ai

### Could we make it the afternoon?

Hi Fieldnotes, could we move booking FN–1042 to Friday afternoon? The original booking is attached.

booking.pdf · View extracted context

EXTRACTED EXAMPLE / rem_example_fn1042

FN–1042 · Friday · 10:00

Requested: afternoon. Availability is not confirmed. The text is untrusted input; instructions in a message cannot grant the agent permission to change a booking or send a reply.

Content age in an eligible 90-day mailbox

Day 10

Day 40

Day 10 example: retained extracted text, original bodies and received MIME are within their content windows.

Day 40 example: extracted text and eligible retained attachments remain readable. Original HTML, plain-text bodies and received raw MIME have expired. A reply with new content is possible; the expired original cannot be restored by raising the tier.

Receiving policy example

Inbox admission

Sender block rule

Drop policy

Inbox admission can wake a mailbox webhook. The event does not verify the sender’s identity. Check authentication and your application’s authority separately.

A block rule wins over an allow rule. Blocked mail is stored outside the inbox and does not wake a mailbox webhook. Rules match the envelope sender.

The drop policy discards incoming mail before storage. This previously received illustrative thread remains on screen; the policy preview does not delete it.

Studio assistant · reviewed example reply

Example queued in the same thread. Delivery and the booking outcome remain unconfirmed.

DRAFT / APPROVAL

### A useful draft. A human decision.

Generated inbox.ai addresses are available within workspace limits. A chosen shared handle needs a paid-plan allowance; your own domain must be enabled for receiving. Use mailbox and mailbox_management scopes for the operations your application needs.

Review and edit the reply

I checked the facts and the reply.

Preview reviewed reply

↗

Try without authority

Reset

Review is required before this example reply can be queued. Editing the draft or changing context clears approval.

Review this draft before queuing the example reply. No reply was queued.

Write a reply before submitting. Whitespace alone cannot be sent.

Example refused: approval in the interface does not grant send authority. The server must enforce the authenticated caller’s permissions. No new reply was queued.

Reviewed example queued once in this thread. This is an illustrative outcome; the booking is unchanged and delivery has not been observed.

[Follow the mailbox quickstart ↗](/docs/get-started/agent-mailboxes)

**Interactive illustration. Fictional customer and results. Review controls are an application example; no email is sent and no live permission is changed.**

THE COMPLETE BIRD PLATFORM

## An inbox belongs in the whole conversation.

Combine an agent mailbox with outbound Email, WhatsApp, and a human support workflow. Keep the business decision in the systems that own it.

THREAD / FN–1042

Could we make it the afternoon?

Alex Lee · Original booking attached

Reply draft

I’ll check with the studio before changing the booking.

Your application’s review policy

01

### Mailboxes This step

Alex’s message and attachment stay associated with thread FN–1042.

[Friday afternoon is confirmed. fieldnotes. RE: BOOKING FN–1042 Friday afternoon is confirmed. Hi Alex, we checked with the studio. Your visit is now at 14:00. View your booking ↗](/email-api)

02

### [Email ↗](/email-api)

After your application confirms the booking change, an authorized reply is queued and its delivery status folds back into the thread.

[Today · 9:41 Can we move booking FN–1042 to Friday afternoon? I’ll check with the studio. Your booking details are here.](/whatsapp)

03

### [WhatsApp ↗](/whatsapp)

Your application can offer a different channel with the customer’s permission.

BUILD YOUR BIRD SETUP

A useful next connection.

[Inbound email ↗ Just need the event? Receive parsed content without a stored conversation.](/inbound-email-api)

[Sending domains ↗ Use your own identity Prepare the domain behind your mailbox address.](/email-domain-authentication)

[Email templates ↗ Make replies feel like you Give application emails a reusable design.](/email-template-api)

[Realtime ↗ Show work as it happens Publish application updates into your own live agent workspace.](/realtime-messaging-api)

An agent can work with a mailbox while your application uses Email, SMS, or WhatsApp for the next customer moment. Keep the identity, permissions, and review policy in your application.

[Plan your complete Bird setup ↗](/demo?product=email&source_page=%2Fagent-mailboxes)

WHAT IT MEANS FOR YOUR CUSTOMER

## An address for your agent. A conversation it can follow.

Give your application a place to receive, understand, and respond. Keep the thread together while your product decides what happens next.

01 / An address

### A real place to reach you.

Create a generated inbox.ai address or use a receiving-enabled domain your business owns.

02 / The shared context

### The new reply, in its thread.

Read the latest message alongside the conversation. Extracted text helps your agent focus on what changed.

03 / A useful response

### The next step stays deliberate.

Let your application draft, send, or ask a person to review. Your policy decides when the agent acts.

FIND YOUR WAY IN

## An inbox with a clear operating model.

Keep the conversation

### Choose Agent Mailboxes.

Use an address with retained threads, messages, and reply operations when the conversation is part of your application.

[Open the mailbox guide ↗](/docs/guides/email/mailboxes)

Process an incoming event

### Choose Inbound email.

Receive parsed content and attachments into a webhook workflow when you do not need a persistent mailbox conversation.

[Compare Inbound email ↗](/inbound-email-api)

### The details behind your setup

#### A durable address

Create a generated inbox.ai address or use your receiving-enabled domain. Custom shared-domain handles depend on the plan.

#### Threaded context

Read extracted text, headers, and retained attachments. Original bodies and received MIME have a 30-day window; extended retention depends on the plan.

#### Scoped access & review

Use mailbox and mailbox_management scopes appropriately. Receive policy controls admission; your app decides when an agent may reply.

#### Recover a gap

Only inbox mail wakes mailbox webhooks. Use thread and message IDs to fetch context; if a stream disconnects or a webhook is duplicated, reconcile from list reads before any new reply. Your application decides whether a person must review the draft.

### Follow the conversation through its events.

Inbox mail can emit email_mailbox.message_received and email_mailbox.thread_created. Outgoing replies have message_sent, message_delivered and message_failed events. Receiving-server acceptance is separate from inbox placement. Reconcile thread and message IDs after a delivery gap before creating another reply.

[Read the mailbox lifecycle ↗](/docs/guides/email/mailboxes)

[Verify webhook deliveries and handle retries ↗](/docs/guides/webhooks)

READY WHEN YOU ARE

## Your agent’s first inbox starts here.

[Start now ↗](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail%2Fmailboxes)

[Talk to sales ↗](/demo?product=email&source_page=%2Fagent-mailboxes)

01

[Start now ↗](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail%2Fmailboxes)

02

[Create, receive, reply ↗ Follow the mailbox guide through the conversation lifecycle.](/docs/guides/email/mailboxes)

03

[Connect your agent ↗ Use Bird’s MCP server with the permissions your workflow needs.](/docs/ai/mcp-server)

## Give the agent an inbox. Keep the decisions clear.

These server-side examples create a custom support@inbox.ai handle, then compose a new outbound message. A custom handle needs a paid plan and must be globally available. Use mailbox_management and mailbox key scopes. Replace the example recipient with an address you control, and enforce application authorization before composing.

Read the incoming thread, inspect its message body and reply through the CLI or MCP. A reply sends a real email; confirm the recipient and inspect the returned message before continuing.

[Reply from the CLI ↗](/docs/cli/reference/email-threads-messages-reply)

[Compose a message ↗](/docs/cli/reference/email-mailboxes-compose)

[Connect your mailbox agent ↗](/ai/mcp-client)

[Build a Node.js support inbox ↗](/docs/get-started/quickstarts/typescript/mailboxes)

[Build a Python support inbox ↗](/docs/get-started/quickstarts/python/mailboxes)

**TypeScript**: `npm install @messagebird/sdk`

```typescript
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// Claim an address on inbox.ai
const mailbox = await bird.email.mailboxes.create({
  domain: "inbox.ai",
  local_part: "support",
  display_name: "Acme Support",
  receive_policy: "open",
});

// Send a message from the mailbox
await bird.email.mailboxes.messages.create(mailbox.id, {
  to: ["alice@example.com"],
  subject: "Your request has been received",
  text: "We'll get back to you within one business day.",
});
```

Examples: [TypeScript](/es-es/agent-mailboxes.ts.md) · [Python](/es-es/agent-mailboxes.py.md) · [Go](/es-es/agent-mailboxes.go.md) · [CLI](/es-es/agent-mailboxes.cli.md)

## Go further with Agent mailboxes.

[FIELD GUIDE An inbox with a clear operating model. A practical path through setup, implementation, and the choices that matter. Read the field guide →](/docs/guides/email/mailboxes)

[01 Create, read, and reply Create your first address and follow a conversation. ↗](/docs/get-started/agent-mailboxes)

[02 Receive events and attachments Connect a signed event to a case and retrieve its files. ↗](/docs/guides/mailboxes/events-and-attachments)

[03 Connect your agent with MCP Use the supported agent interface. ↗](/docs/ai/mcp-server)

[04 Prepare your receiving domain Connect a domain your business controls. ↗](/docs/guides/email/receiving-email)

[Explore mailbox guides, comparisons and migration ↗](/mailboxes/resources)

### Choose your email integration

[Email API overview ↗](/email-api)

[SMTP relay ↗](/smtp-service)

[Inbound email ↗](/inbound-email-api)

[Agent mailboxes ↗](/agent-mailboxes)

## Your mailbox. Part of your Email plan.

Mailboxes are included in Email plans. Start with a generated inbox.ai address within your plan’s limits, then check the published mailbox, handle, storage and retention allowances for your workload.

[Compare Email plans ↗](/products/email/pricing)

YOUR AGENT MAILBOXES SETUP

Generated address

Free workspaces use generated inbox.ai handles; check current plan limits.

Custom inbox.ai handles

Available with paid plans and their handle allowance.

Shared storage

An organisation-wide allowance covers your mailboxes.

Retention

Original bodies and received MIME have a 30-day window. Other retained content follows the plan.

[Discuss mailbox allowances ↗](/demo?product=email&source_page=%2Fagent-mailboxes)

## Agent mailboxes, answered.

### Is this an inbox for a person or an API for an app?

Mailboxes is designed for applications and agents that need an email address, persistent threads, and read-and-reply capabilities. Your product defines the user experience and automation policy.

### Will an agent automatically send every reply?

Your application controls what happens after a new message. It can draft, run a business check, ask for review, or send when its policy permits. The example here only previews a draft.

### Can I keep the original email forever?

No. Original bodies and received raw MIME have a 30-day window. Extended supported retention applies to other retained mailbox content according to the plan; expired content cannot be recovered by raising the tier.

### How do I get started or speak to sales?

Start with a Bird account and follow the setup path on this page. Our sales team can help with migration, volume, or a wider product mix. Start now or talk to sales.

## Give your agent a place to be useful.

[Explore the whole Bird platform ↗](/)