{"slug": "one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows", "title": "One Inbox Per Agent: Why Shared Mailboxes Break Autonomous Workflows", "summary": "Volanea is pitching a per-agent inbox model for agentic email workflows, arguing that shared mailboxes and single SMTP credentials break autonomous agents by erasing attribution, collapsing threads, and widening the blast radius of a credential leak. The company's approach assigns each agent its own address and scoped API key, and parses inbound mail into JSON with thread IDs rather than raw MIME, with a free tier covering 1,000 emails a month.", "body_md": "Most agentic email setups start the same way: one shared mailbox, one SMTP credential, and a line in the README that says \"don't send anything weird.\" It demos fine. Then the agents start running on schedules, and three problems arrive at once.\n\n**Attribution disappears.** When four agents can send from `support@`, an outbound message has no owner. A bad reply can't be traced to a run, a prompt version, or a task. Structured logs help, but only if identity is part of the send path, and most SMTP wrappers drop it.\n\n**Threads collapse.** An agent that asks a question needs the answer routed back into the same run. With a shared inbox, two agents replying to the same customer produce a thread where each one sees the other's drafts, and the next turn gets ambiguous context.\n\n**Blast radius is global.** One inbox means one credential, one rate limit, and one compromise path for every agent you run.\n\nThe fix is unglamorous: give each agent its own address and its own scoped key.\n\n``` php\nagent-7@inbox.yourapp.com  -> run 48f2, prompt v12\nagent-8@inbox.yourapp.com  -> run 51aa, prompt v12\n```\n\nRouting becomes a lookup instead of a guess. Inbound mail arrives already attached to a thread, so the agent's next turn has the exact message it was waiting for:\n\n```\n{\n  \"to\": \"agent-7@inbox.yourapp.com\",\n  \"from\": \"customer@example.com\",\n  \"subject\": \"Re: invoice 1042\",\n  \"threadId\": \"th_9f2c\",\n  \"text\": \"Confirmed, go ahead.\"\n}\n```\n\nTwo details matter in practice. First, a per-agent key should be scoped to that inbox, so a leaked key burns one agent instead of the fleet. Second, inbound parsing should return plain text plus a thread id, not a raw MIME blob the model has to decode. Quoted replies and attachments are exactly where agents waste tokens and invent context.\n\n[Volanea](https://volanea.com) implements agentic inboxes this way: an isolated address per agent, scoped API keys, and inbound mail parsed to JSON with thread ids. The free tier covers 1,000 emails a month, enough to run a small fleet before committing to anything.\n\nIf you are wiring agents to email, count inboxes before you count tokens. Setup notes live at [volanea.com/docs](https://volanea.com/docs).", "url": "https://wpnews.pro/news/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows", "canonical_source": "https://dev.to/volanea/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows-5eeh", "published_at": "2026-11-02 16:44:29+00:00", "updated_at": "2026-11-02 16:53:52.177477+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-infrastructure"], "entities": ["Volanea"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows", "markdown": "https://wpnews.pro/news/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows.md", "text": "https://wpnews.pro/news/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows.txt", "jsonld": "https://wpnews.pro/news/one-inbox-per-agent-why-shared-mailboxes-break-autonomous-workflows.jsonld"}}