Docs / Workplace

Workplace

Workplace is the shared inbox in Studio. A mailbox points at a connected account — a Microsoft 365 or IMAP mount — and the team works its conversations together: status, owner, category, tags, priority, notes, replies. Every message is a node, so everything an automation can do with a node it can do with mail. Connecting the account is one click in the admin console; the Microsoft 365 bundle mounts the inbox, the sent folder and an outbox that sends.

The Workplace board: columns Open, Waiting, Snoozed and Done, with a filter bar above
The board: one card per conversation, columns from the mailbox's own status set, heat on the left edge for how long a customer has waited.

The model

  • A message is a raisin:Mail the mount owns. Studio reads it; the only things written back are read/unread state and importance.
  • A conversation is every message sharing a provider conversation id, across the inbox and sent folders.
  • The team’s state for a conversation — status, assignee, category, tags, priority, due date, snooze, notes, board position — lives on a studio:MailThread beside the mailbox. It is created the first time someone (or an automation) triages the conversation; a conversation without one is simply open, unassigned, untagged.
  • A draft or a send is a raisin:OutboundMail in the mailbox’s outbox. Creating one does nothing; setting it to queued is the send. The provider threads and quotes it.

Views

The app bar switches between List (conversations with a docked reader), Board, Calendar (due and snoozed conversations on dates), Schedule and Pressure (who has been waiting longest against the desk’s response target). Which views a mailbox offers, and which opens first, is content — see Permissions below.

The board

Group by chooses the columns: Status (the mailbox’s own set, draggable), Category, Assignee or Priority (draggable). Lanes adds a second axis across the board — status columns with a lane per priority, or per assignee — so one board answers two questions at once. A card sits where its column and its lane meet, and dropping it into another cell changes both in one write.

The board grouped by status with priority swimlanes: Urgent, High and Normal rows across the columns
Lanes by priority across status columns. Category and assignee axes are read-only; status and priority accept drops.

The filter pills narrow every grouping by priority, category and assignee. Cards can be ordered by hand inside a column: the position is stored on the thread, so it survives reloads and everyone on the desk sees the same order. Customize opens the mailbox settings — columns, default grouping, response target, allowed recipient domains — from the board itself.

Group-by and lane choices are remembered per mailbox in your browser; the mailbox’s own default is what a new reader sees.

The reader

A conversation opens as a stack: the header with the triage bar (status, assignee, category, tags, snooze, priority), then every message oldest first, then anything on its way out, then reply actions and internal notes.

A conversation in the reader with the triage bar, three messages and a queued reply below them
The reader: triage in the header, the conversation, and the outbound reply under the last message with its status.

Drafts and sends inline. Anything in the outbox that answers this conversation is shown under the messages: a draft an automation suggested, with Send, Edit and Discard; a queued or sending reply with its status; a failed one with Try again. Edit opens the composer on that draft and sends the same node, so there is never a second copy. A send whose outcome is genuinely unknown is never retried automatically — a person checks the account’s sent items first.

Notes are internal and never sent. Reply, Reply all and Forward compose against the latest message, so the provider threads the answer where the recipient expects it.

What automations add

Three library steps make mail a first-class subject for automations:

StepGives you
Read an emailThe body as text, the whole conversation before it, the attachment text the asset pipeline extracted, and whether the customer is waiting on you.
Triage a conversationThe board’s state written from a run: status, category, tags, priority, assignee, a note.
Reply to an emailA draft in the outbox for a person, or a queued send.

The support desk triage example is the shape to copy: read in context, classify, file, draft, ask, send. Because a customer’s reply is a new message in the same conversation, the same automation handles follow-ups with the earlier exchange in view.

Trigger on raisin:Mail Created under your mailbox’s inbox path with /**. Attachments arrive as raisin:Asset children of the message and their text follows seconds later from the asset pipeline; Read an email reports how many are still pending.

Two more shapes worth having, both ordinary automations:

  • When the board runs hot. A schedule every fifteen minutes, Find nodes for conversations still Open with no reply for longer than your promise, and a task to the on-call person when the count crosses a line — the heat you see on the cards, turned into a page before a customer notices.
  • When money is involved. A refund request classified by the triage step can create the refund itself: a gate for a person, then refund-order, which writes a queued refund into the Stripe mount and lets the payment loop settle it. The conversation closes when the refund node reports success.

Permissions

Workplace’s views and actions are children of its application definition, so row-level security decides what each role is offered — no permission check lives in the interface:

NodeHides
views/board, views/pressure, …The corresponding view for a role that cannot read it.
actions/board-moveDragging between columns and lanes.
actions/board-reorderHand ordering within a column.
actions/board-customizeThe Customize button.
actions/set-priorityThe priority menu in the reader.

The board view’s configuration also lists which groupings the switch offers and the default. An installation adds or narrows these under /apps/local/appdefs/workplace; a package that ships a desk for a client does the same in its own tree.

Pilot documentation. Studio is in a partner pilot. Screens and YAML shown here are current as of the version noted on each page; tell your Maravilla contact when something does not match what you see.