Bird vs Aurinko for email integrations
Choose whether the application needs a new agent-owned address or access to a customer’s existing mailbox. That decision comes before API syntax.
Where Aurinko fits
Aurinko exposes a unified API for accessing and synchronizing mail across providers, including draft, message and attachment operations. Its connected-mailbox use case differs from creating a dedicated agent inbox.
Read Aurinko documentation ↗Where Bird fits
Bird Agent Mailboxes provisions a receiving address for the application and exposes thread and reply operations. Use it for an agent-owned inbox while retaining separate connected-account access where the product still needs it.
Explore Bird Agent Mailboxes ↗Compare the integration you will operate
| Capability | Bird | Aurinko |
|---|---|---|
| Mailbox ownership | Create an address dedicated to the application task. | Access and synchronize an existing provider-backed mailbox. |
| Conversation state | Use Bird mailbox, thread and message identities. | Map connected-account messages and synchronization state. |
| Scope of replacement | Move workflows that can receive at the new dedicated address. | Retain workflows requiring the user’s existing mail, drafts or synchronization. |
Run the same customer journey
Select a task that can run at a new address and test it end to end. Separately list any requirement to search historical user mail or synchronize account changes; the new inbox test does not satisfy those requirements.
Start the working example ↗Make the switch deliberately
Move the dedicated-address workflow and leave connected-account functionality in place where needed. Preserve old account and message references for continuity.
Migrate from Aurinko ↗Give the agent a mailbox it can use.
Create a mailbox, retain its ID and send from that address. Then test incoming messages, threads and replies. Connected personal accounts and newly hosted mailboxes require different migration plans.
Run the complete quickstart ↗npm install @messagebird/sdkimport { 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.",
});
Questions before switching
Can a new mailbox replace access to an existing user account?
What should I test before changing inbound routing?
Do old message IDs work with a new provider?
Choose your next step
Test it with your own workflow.
Start with the guide, or bring your integration and migration requirements to our team.