Skip to main content
Not yet released. This guide describes implemented changes awaiting rollout. Availability requires the corresponding backend and dashboard release.

Goal

Run a shared address where every conversation has one owner and one status, people and agents never answer the same email twice, and nothing goes out that you did not allow.

Prerequisites

  • A domain set up for mail. A team inbox can use any of your verified mail domains.
  • The people who will work the inbox on your StackShift team.
  • To connect your own agent: an agent connection with access to the inbox, from Settings › Connected agents.

Workflow

1
Open Mail › Settings › Team inboxes and choose Add a team inbox. Pick the address, a name for your side bar, the from name customers see, who works it and, if you like, up to 5 addresses that get a copy of each new email.
2
Open the inbox from the side bar. Switch between Open, Waiting and Done, and use Mine, Unassigned and Waiting for you to find your work.
3
Assign each conversation to a person, to Stackie or to one of your agents. Add notes for your team; customers never see them.
4
Reply as the inbox. While you write, others see that you are replying and their reply waits, so the customer gets one answer.
5
To let Stackie help, open the inbox settings, switch Stackie on, write its instructions and choose how it sends replies.
6
To wake your own agent, add it under Your agents and either have it call mailbox_inbox_wait over MCP or give the inbox a webhook URL.

Owners and statuses

  • A conversation has at most one owner: a person on the inbox, Stackie, or one of your agents. Nobody is a valid owner too.
  • Open means someone needs to act. Waiting means you are waiting on the customer. Done means it is finished.
  • When the customer writes again, a Waiting or Done conversation goes back to Open and shows Replied again.
  • When you send a reply you can move the conversation to Waiting or Done in the same step.

Notes and the reply lock

  • Notes stay in StackShift. They are never added to the email, so no reply, forward or export can send them. Type @ to tell someone.
  • Opening the reply box takes the lock for that conversation. It lasts while you are writing and ends a short while after you stop.
  • While someone else holds the lock, your reply waits. You can still add a note, or take over; the other person is told and keeps their unsent text as their draft.
  • Agents take the lock while they write and never take it from a person.

Stackie on a team inbox

Stackie works conversations you assign to it, or every new conversation nobody has picked up if you choose that. It reads the conversation, your team’s notes and your instructions. A note on a conversation wins over the instructions. You can let Stackie look at chosen projects and databases so it can answer with facts, for example whether a refund went through. It only reads them. A restart, redeploy or database change always waits for you in Approvals. Stackie uses the AI credits shared across your account. There is no separate allowance per inbox. When credits run out it pauses and the inbox says so.
  • Draft only: Stackie writes the reply in the conversation and a person sends it.
  • Ask before sending: every reply waits under Waiting for you, with why it waits and what Stackie checked. Send, edit or discard it.
  • Send simple replies on its own: a reply goes out straight away only when it answers someone who has written to this inbox before, adds nobody new, has no attachment, contains nothing Stackie cannot back up from the conversation, its notes or what it checked, and nobody is replying. Anything else waits for you.

Your own agents

Add a connected agent under Your agents in the inbox settings. Choose how it sends replies, with the same three choices as Stackie, and when to wake it: when a conversation is assigned to it, or for every new conversation. Over MCP the agent calls mailbox_inbox_wait with the last cursor it saw. The call returns as soon as something happens, or after 50 seconds with nothing. With a webhook, StackShift POSTs signed events to your URL. Check the StackShift-Signature header the same way as for other Mail webhooks.
  • Reads: mailbox.conversations.list, mailbox.conversation.get and mailbox.inbox.wait.
  • Changes: mailbox.conversation.assign, mailbox.conversation.status and mailbox.notes.add.
  • Replies: mailbox.conversation.respond follows the agent’s send setting for this inbox. mailbox.reply and mailbox.send still always ask you.
  • Webhook events: mailbox.conversation.received, mailbox.conversation.assigned, mailbox.conversation.status_changed, mailbox.conversation.note_added, mailbox.conversation.reply_waiting and mailbox.conversation.sent.

API and CLI

  • GET /api/v1/mail/mailboxes/{mailboxId}/conversations lists conversations with status and assignee filters and a count for each status. GET and PATCH …/team-inbox read and change the inbox name, copies and reply lock time.
  • PUT …/conversations/{threadId}/assignee and …/status change the owner and the status. Send the revision you read; a stale one returns revision_conflict.
  • POST …/conversations/{threadId}/notes adds a note. POST and DELETE …/lock take and release the reply lock, and POST …/lock/take takes it over.
  • POST …/conversations/{threadId}/send sends your draft as the inbox. It returns reply_locked when someone else is replying.
  • GET …/pending-replies lists replies waiting for you; POST …/pending-replies/{id}/send, with an edited body if you changed it, and POST …/pending-replies/{id}/discard decide them.
  • The CLI has the same commands under stackshift mail, for example stackshift mail inbox-conversations, inbox-assign, inbox-status and inbox-note.

Pricing

  • Every paid Mail plan includes 3 team inboxes and the Free plan includes 1. Each extra team inbox is ₦1,500 a month.
  • Each team inbox has 5 GB of storage, counted in its domain’s storage.
  • Replies and copies sent from a team inbox count toward your Mail plan’s monthly emails. Mail you receive does not.
  • Team inboxes are worked in StackShift, through the web client, API, CLI and agents, so every reply is locked, credited to the person or agent who sent it, and counted once.
  • Mailboxes for a person, and shared mailboxes on Basic or Pro, keep their own prices and work in mail apps as before.

Expected result

Every conversation shows who owns it and whether it is open, waiting on the customer or done. Replies from people and agents go out as the inbox, once, and replies that need a person wait under Waiting for you.

Mailboxes

Host real mailboxes on your own domain: add the domain, create mailboxes, aliases and groups, route addresses, bring mail over from another provider and connect any mail app.

Mailbox AI, the screener and agent tools

Turn on AI for a domain, summarize and draft with it, screen unknown senders, and let an agent work in only the mailboxes you choose.

Mail through external agents

Use explicit workspace and Test or Live action consent for Mail reads, content management, sending and billing preparation.

Shared AI credits

Understand your monthly AI allowance, purchase additional credits, choose your funding source, and track Assets and agent usage.