Team inbox
The official Team inbox plugin lets the members of a shared mailbox (a Stalwart group with its own mailbox, such as support@example.com) assign a message to one of them and mark it done. Everyone in the team sees the same state.
Set it up
Team inbox is coming to the extension directory; it isn't listed there yet. Until then you install it from its ZIP:
- Download
team-inbox.zipfrom the plugins repository. - In Admin > Extensions > Plugins, make sure Plugins is on under Plugin policy. Plugins are off until an admin turns them on.
- Click Upload plugin and pick the ZIP.
- Open Team inbox in the plugin list and turn on Force on for everyone under Availability, so every user gets it without being asked and can't turn it off. The plugin has no settings.
It needs Bulwark 1.19 or later and works with Stalwart 0.16 and 1.0.
What users get
In the folders of a shared mailbox:
- Assign to me, Assign to…, Unassign, Mark done and Reopen in a message's right-click menu, its hover buttons and the reader toolbar. On phones they are in the row menu and the reader's More menu. Each appears only where it applies: Reopen on done messages, Unassign on assigned ones.
- On each row, a chip with the assignee's name and a Done mark.
- Assigned to me and Open chips in the list header. Tap one to filter the list, tap it again to remove the filter. Both can be on at once.


Nothing changes in a user's own mailbox, or in a mailbox another person shared with them.
Members answer from the team's address as in any shared mailbox.


How it is stored
On the message itself, as keywords, so it works in every Bulwark, on every device, and IMAP clients show it as flags:
| Keyword | Meaning |
|---|---|
$assigned:<principal id> | Assigned to that member, one at a time. The id is the member's Stalwart account id. |
$done | Dealt with. |
In a shared mailbox, Stalwart keeps one read state for everyone: when one member opens a message, it is read for the whole team. That is why Open means "not marked done", never "unread".
Names
The keywords carry ids, not names. The plugin finds names in three places:
- Each user's own name comes from their session.
- With directory lookups allowed in Stalwart, the plugin names the assignees on rows from the directory, and Assign to… searches it and can assign any typed address. This uses the plugin's
directory:readpermission. Stalwart 1.0 has directory lookups off by default; 0.16 has them on. - On Stalwart 1.0 and later, the plugin keeps a short list of names in the shared mailbox (the Inbox's metadata, entry
org.bulwarkmail.plugin.team-inbox, under 3.5 KB; the oldest names go first). Every member who uses the plugin adds themselves, and whoever assigns a message adds the assignee.
Without a directory and on Stalwart 0.16, other members show as Assigned until their name is known, and Assign to… offers the user and the members that messages were assigned to lately. To make a colleague assignable there, they assign one message to themselves once.
What isn't possible
- No notification to the assignee: plugins can't send push notifications or mail on their own. Members see their work with the Assigned to me filter.
- Shared mailboxes only: a folder one person shared with another doesn't count. A Stalwart group without a mailbox isn't visible to Bulwark.
- No admin settings and no policy keys: install and enable it as above. To take it away from everyone, disable or remove the plugin.
- Bulwark Lite has no plugins, so there is no assignment there. Keywords set elsewhere stay on the messages.
Next step
Back to Organisation settings for the other settings, or to Roll Bulwark out to an organisation for the checklist before go-live.