Unibox
A unified inbox across all connected mailboxes, with labels and threading.
One inbox for every connected mailbox. Read, sort, and reply from a single screen instead of logging into each account. Three columns: a scope rail for picking what to look at, a conversation list, and a thread view where you read and reply.
Verified warmup mail stays out of Unibox, including your mailbox's Sent copies and warmup run by Warmbly Cloud. It does not create inbox notifications, raise the unread count or trigger reply classification. The consumer also checks existing messages in batches (once a day and after every restart) and removes confirmed warmup from Unibox, and any reply notification it had raised goes with it. This leaves the messages in your email provider and keeps ordinary conversations intact.
Layout
The columns are yours to size. Every choice here is remembered in the browser you made it in, so the inbox opens the way you left it.
| Control | What it does |
|---|---|
| The divider between the scope rail and the list | Drag it to resize the scope rail. With focus, arrow keys nudge it (hold Shift for a bigger step), Home and End set the minimum and maximum, and Enter (or a double-click) restores the default 220 px. The width is remembered in this browser. |
| The divider between the list and the thread | Drag it to widen the conversation list so long subjects fit, or to give the space back to the thread. It also takes the keyboard once it has focus: arrow keys nudge it (hold Shift for a bigger step), Home and End go to the narrowest and widest the window allows, Enter (or a double-click) puts it back to the default. |
Collapse at the bottom of the left navigation, or b | Shrinks Warmbly's own navigation to an icon rail and gives the width to the page. Row labels become tooltips; unread mail keeps its count badge and an open Advisor finding shows as a coloured dot on the icon. The same control expands it again. |
| The section headers in the left navigation (Email, CRM, Resources) | Click one to fold its section away, and again to bring it back. Like the other layout choices, it is remembered in this browser. A folded section still shows the page you are on, and a coloured dot beside its header flags an open Advisor finding on one of the pages it hides. The icon rail follows the same choice. |
| The section headers in the scope rail (Mail, Views, Mailboxes, Labels, Tags) | Click one to fold its section away, and again to bring it back. A folded section still shows the scope you are looking at, and a small blue dot beside its header means a row it folds away has a highlighted count (rows you hid never raise it). The … beside a header (or a right-click on it) folds every other section, unfolds them all, or moves the section up or down the rail. The pencil on Mail and Views puts the rows in edit mode: untick a row to hide it, drag it by its handle (or focus the handle and use the arrow keys) to reorder, and press Done, Escape, or click anywhere else. Reset puts that section back the way it shipped. On a phone, a long press on a header or row opens the same menu. Each row also has its own … menu and right-click menu to move it, hide it (with an undo), or mark a folder read, and Alt with an arrow key moves the focused row. Only one of these menus is open at a time: opening another, clicking or tapping anywhere else, or Escape closes it. A small "2 hidden" beside the pencil tells you rows are off the rail. Hiding a row only takes it off the rail, so its shortcuts and links keep working, and the scope you are in always stays visible. Hidden rows and the order of rows and sections are saved to your account for each workspace, so your phone and every other browser you sign in on show the same rail; which sections are folded is remembered per browser. |
| Add to Favorites in a row's … menu, or the star beside a row in the Mail and Views edit mode | Pins that scope to a Favorites section at the top of the scope rail, so the places you check every day sit together whichever section they come from: Inbox and Sent from Mail, a view such as Needs a reply, one mailbox, or a label or tag. The section only appears once something is in it, and each row also stays in its own section with the same live count. Favorites fold, move and reorder like the other sections (drag in edit mode, or Alt with an arrow key). Rename in a favorite's menu, F2 on a focused favorite, or the pencil beside it in edit mode gives it a name of its own, such as "Inbox work", while its home row keeps the real one; clear the name to go back. Untick a favorite in edit mode, or choose Remove from Favorites, to take it out (with an undo), and Remove all favorites in the section's … menu empties it. The scope you are in is highlighted once, in Favorites unless you opened it from its own section. Favorites, with their names, are saved to your account for each workspace like the rest of the rail's arrangement, so they follow you to your phone and any other browser, and they are not shared with teammates. A rail you arranged before this was saved to your account is picked up the first time you open the unibox. |
| The contact button in the thread header | Shows or hides the contact panel on the right. It starts closed when no preference is saved. Opening or closing it sticks across conversations, and existing preferences are preserved. |
How wide the list can get depends on the window: the thread always keeps enough room to read a message, and the contact panel counts toward that when it is open, so the widest setting is narrower on a laptop than on a large monitor.
On a screen narrower than 1024px the contact panel is an overlay rather than a column, so it always starts closed there. Below 768px the list and the thread take turns on the full screen instead of sitting side by side.
The contact panel shows the person on the other side of the conversation: the first sender who is not one of the workspace's mailboxes. It finds their contact by address first. When that address is not a contact but the conversation answers one of your campaign emails (people often reply from an alias, a second domain or a colleague's account), the panel shows the lead that campaign wrote to, with a Replied from line naming the address the reply actually came from. Only when neither matches does it offer Add as contact.
Keyboard
The conversation list takes the keyboard, so a triage pass never needs the mouse. Press ? anywhere in Warmbly for the full list; these are the ones that act on the inbox.
| Key | Does |
|---|---|
j / k | Move down and up the list. From no selection, j takes the first conversation and k the last, whichever way the list is sorted. |
g g / G | Jump to the first or last conversation. |
Enter | Open the top conversation when nothing is selected yet. |
x | Tick or untick the row you are on, to build a selection. |
e | Archive the selection, or the row you are on when nothing is ticked. |
Escape | Clear the ticked rows, then the open conversation. Inside the search box it gives the keyboard back to the list. |
/ | Put the caret in the list's search box. |
c | Label the open conversation. |
The shortcuts modal only lists what the screen you are on can actually do, so these rows appear while the inbox is open and not elsewhere.
Folders
The rail is two short groups and then your mailboxes. The first group is where you work: All mail, Inbox, Unread, Awaiting reply, Agent drafts, Snoozed. The second holds the rest of the mail folders, plus Scheduled alongside them, so direction is visually clear instead of one combined list:
| Folder | Group | Shows |
|---|---|---|
| Inbox | First | Inbound mail, plus anything filed in a custom folder at the provider, unless that folder is excluded from sync |
| Drafts | Second | Messages sitting in a mailbox's drafts folder |
| Sent | Second | Outbound mail, campaign and manual |
| Archive | Second | Archived (Gmail's All Mail, the Archive folder elsewhere) |
| Spam | Second | Junked at the provider |
| Trash | Second | Deleted |
Scheduled sits between Sent and Archive. It is a view rather than a folder, listing every send queued from the workspace's mailboxes, whichever teammate queued it, and it reads naturally next to Sent.
Opening Inbox from the main navigation starts in the Inbox folder. Sent messages live in Sent; choose All mail when you want inbound and outbound messages together. An Inbox conversation still shows its complete history, including your replies, when you open it.
Each message starts in the folder the provider has it in: IMAP special-use folder attributes, Gmail labels, and Outlook well-known folders all map to the same six. Moves at the provider (archiving, deleting, junking a message, clearing it out of spam, moving it back to the inbox) follow on the next sync. In Gmail each of those is a label change, and Warmbly files the message by the labels it ends up with, so a conversation archived in Gmail leaves Inbox here too. Gmail mailboxes are also rechecked against Gmail every few hours, which catches a move the live sync missed. Drafts are also reconciled: a draft the mailbox no longer holds is removed here too, so the fresh copy Gmail saves on every autosave does not leave the previous ones behind. You can also file a conversation yourself, which moves it in the mailbox too; see filing a conversation. The active row is highlighted grey, unread counts sit on the right in blue, and hovering a folder reveals a three-dot menu with Mark all as read (on a phone it is always shown, to the right of the count).
Spam and Trash stay out of every other view, and so does Archive: filing a conversation is how you take it out of the way, so it leaves Unread, Awaiting reply, every mailbox, label and tag view, and the unread badge. All mail and the Archive folder are the two places it stays, which is where you go to find it again.
Spam and Trash start from when you connect
The initial import that runs when a mailbox is first connected covers Inbox, Sent, Archive, and Drafts. It deliberately skips the existing contents of Spam and Trash, whose history would consume the import budget that belongs to real conversations. Both folders fill normally from the moment the mailbox is connected, so they show what arrives from then on rather than what was already there.
Scopes
| View | Shows |
|---|---|
| All mail | Every conversation across every mailbox, archived ones included (except Spam and Trash) |
| Unread | At least one unread message |
| Awaiting reply | You wrote last and they have not answered |
| Agent drafts | Conversations where the inbox agent has a reply waiting for review |
| Snoozed | Snoozed for later |
| Scheduled | Sends queued from the workspace's mailboxes |
Below those sit the premade Views, which answer the questions a pipeline turns on. They are built on the labels automatic inbox tagging writes, exist from the moment the workspace is created, and need nothing set up:
| View | Shows |
|---|---|
| Action required | Automated mail that needs someone to act: a failed payment, a suspended account, a suspicious sign-in, a sending limit, a service about to expire |
| Hot leads | Replies labelled Interested, Meeting or Pricing |
| Needs a reply | They wrote last and nobody has answered for two days or more |
| Follow up | You wrote last and heard nothing, or an interested thread went quiet |
| Declined | Not interested, wrong person, or asked to unsubscribe |
| Automated | Mail nobody wrote: sign-in codes, receipts, notifications, newsletters, bounces and auto-replies |
A view is a filter over its labels, so a conversation appears in it as soon as a label lands and leaves it when the label does. Without a classifier key on the instance only the two follow-up views fill, from sent-message dates alone.
Automated is different: it is where machine mail lives instead of the inbox. When automatic tagging judges that nobody wrote a conversation, it leaves Inbox, Unread, every mailbox and tag view, and the unread badge, and shows only under Automated (and in All mail). A message the classifier was not sure about stays in the inbox. A reply from a person brings the conversation straight back, before it is even classified. Automated mail that needs your action, such as a failed payment for a mailbox's subscription or a suspended account, never goes to Automated: it stays in the inbox labelled Action required, and the Action required view lists it with its unread count (see Mail that needs your action).
Below the views, the rail lists each mailbox with its unread count, plus your Labels and Tags. Long lists collapse to the first few with a Show all toggle and an inline filter. For a slice of time (today, the last week), use the date range in the filters rather than a view; the list's title shows which view you are in, with how many conversations are loaded.
Counts come from the server in one request, so they always match the rows. The current view and open conversation live in the URL (/app/unibox/unread), so refreshing, bookmarking, and sharing all land in the same place.
Search (press /) covers the sender and recipients, the subject, and the text of the messages themselves, so a name, an address, or a phrase from the middle of an email all find the conversation. A half-typed word matches as a prefix, so results narrow as you type rather than appearing only once a word is finished. Quoted phrases match exactly, OR widens, and a -word excludes.
It searches the scope you are in. When that finds nothing, the empty state offers Search all mail, which widens to every folder and keeps what you typed. Changing view yourself clears the box, so a query typed for one scope never silently filters the next.
The filter button next to the title opens a small panel that narrows the list on the spot: read state, a date range (today, the last 7 or 30 days, or two dates), sender, labels, mailboxes (or a whole tag of them), and sort order. Anything you add shows as a chip under the search box, and each chip removes itself with one click. A view that already fixes one of these, such as Unread or a single mailbox, does not offer that control again.
Threading
Each row is a conversation, not a message, with a count next to the sender when more than one message is inside. Opening it shows every message in order, with the message count and the owning mailbox under the subject. Replies and new inbound mail land in the same thread. Rows group under Today, Yesterday, This week, and Earlier headers.
The list loads more conversations as you reach the end of it, and it keeps its place: opening a conversation, or leaving the inbox and coming back, returns you to the row you were on rather than the top of the list.
Picking another folder or view closes the open conversation, since it may not be in the new list. To close it yourself, use the X at the right of the conversation header on a wide screen, the back link above it on a phone (it names the list you came from), or Escape.
Threading applies on both sides. A reply carries an In-Reply-To header naming the last message in the conversation, which is what nests it for the recipient. From a Gmail mailbox that holds the conversation it also carries Gmail's thread id, which nests it in your own mailbox. The recipient's mail client only ever sees the header: a thread id means nothing outside the mailbox that issued it, so a reply sent from another mailbox goes without one.
Keyboard navigation
j / k move between rows, Enter opens, Esc closes, / focuses search, c labels. Press ? for the full list.
Reading a message
The newest message in a conversation opens expanded, along with anything still unread. Older messages collapse to their preview line; click the header (or the preview) to open one. Bodies load per message, so a long thread does not pull down every message at once.
What you see is the message as it was sent: paragraphs, line breaks, lists, tables, and inline images are all preserved, and special characters and emoji render as themselves rather than as entity codes. The conversation list still shows a one-line preview, which is a summary of the message and not the message itself.
HTML mail renders in an isolated frame, so a sender's styling cannot leak into the dashboard and nothing in the message can run code. Links open in a new tab and carry no referrer. If the stored copy of a message cannot be read, Warmbly shows the preview it has and says so instead of failing to open the conversation.
Warmbly removes its open-tracking pixels from the displayed copy, including quoted messages. Reading mail here, whether in Inbox, Sent or another view, does not record a campaign open. The delivered email keeps its tracking pixel for recipient opens.
Remote images in mail you receive are held back until you ask for them. Any sender can put a tracking pixel in a message, and loading it would tell them when you read it, your IP address and your mail client. A message that references remote images, backgrounds or fonts shows a bar with Load images; click it to show them for that message. Images embedded in the message itself display straight away, and your own sent messages are not affected.
Recognized quoted history collapses behind Show quoted text. Click it to read the full chain. Messages made entirely of quoted content and ambiguous inline replies stay visible. Outgoing messages from the connected mailbox have a blue left border and an Outgoing badge.
Message details
Every open message has a details toggle on its recipient line, the to under the sender's name, and the sender's name and address open the same panel. It shows the message envelope in place: every From, Reply-To, To, Cc and Bcc address, when it was sent and, if that differs, when the mailbox received it, both in your own time zone, the mailbox and folder it lives in, its size, and the Message-ID and In-Reply-To headers. Click any address or identifier to copy it. The info icon next to Reply and Forward opens the same panel, including on a message that is still collapsed.
Labels
Labels are one workspace list, used on contacts, on conversations here and by forms, so Interested means the same thing on a contact as it does on a conversation. The list is shared with the rest of the team too: a label anyone creates is available to everyone, and a conversation one member labels shows that label to the next. Label with the tag button in the conversation header or c: search existing labels, tick what applies, or type a name and Create. A conversation can carry several.
Labeled conversations show colored chips on the row and in the header, and each label appears in the rail with its own count for one-click filtering. Labels you apply are never touched by the system. Automatic inbox tagging adds its own labels alongside them, additively, and never removes one a person applied.
Labels vs mailbox tags
Labels mark conversations and contacts. Mailbox tags mark the mailboxes themselves (grouping accounts by client or domain). Both filter from the rail, but they describe different things.
Read state
A conversation is unread when any message inside is unseen, marked by a blue dot in the margin, bolder text, and a blue timestamp. Opening it marks its messages seen and updates the counts, and so does Mark as read on the row or on a selection, without opening anything.
Mark as unread marks only the newest message you received in the conversation unread, preferring one outside Spam and Trash. If the conversation has no received message, its newest sent copy turns unread instead. Otherwise your own sent copies stay read. Drafts are never marked unread, and marking individual message ids or sweeping a folder never marks sent or draft copies unread. Marking it unread from the open conversation closes it, because the reader marks whatever it shows as read.
Read state travels both ways. A message arriving already read is stored that way, and reading a conversation here marks it read in the mailbox itself, so Gmail, Outlook and any IMAP mailbox stop showing it bold too. Mark as unread does the same in reverse, and Mark all as read on a folder carries the whole sweep across. Only a real change travels: opening a conversation you have already read costs nothing at the provider.
The relay runs on the worker that holds the mailbox, just after Warmbly's own copy is updated, so the dashboard never waits on it. If the mailbox is between workers at that moment, or the provider refuses, Warmbly keeps your read state and the mailbox keeps its own; nothing retries, because the next sync reports whatever the provider actually thinks.
Filing a conversation
The thread header carries three filing actions, on the row above the message on a wide screen and behind the three-dot menu on a narrow one:
| Action | Does |
|---|---|
| Mark as unread | Marks the newest received message unread, or the newest sent copy if none was received, and closes it |
| Archive | Moves the conversation to Archive, so it leaves Inbox |
| Delete | Moves the conversation to Trash, so it leaves every view except Trash |
Archive and Delete both offer Undo on the confirmation toast. Open the Trash or Archive folder and the same header offers Move to inbox, so nothing filed by accident is stuck.
From the list, without opening anything
You do not have to open a conversation to deal with it. Hover a row (or just look at it on a phone, where they are always shown) and the right of the first line carries Archive and a three-dot menu with Open in new tab, Mark as read / unread, Snooze, Labels, Archive or Move to inbox, and Delete. Right-clicking a row (or pressing the menu key, or Shift + F10, on a focused row) opens the same menu where you clicked. On a phone, press and hold a row for about half a second to open that menu at your finger without opening the conversation. In Archive and Trash the same controls offer the way back rather than the way out.
Using one of these on the conversation you have open closes it, as the conversation's own buttons do. That includes Mark as unread, since an open conversation counts as read.
Archiving from a row files the whole conversation, not the message the row is showing, so it really does leave the view you filed it from.
Working on several at once
Each row has a tick box in its left gutter, in place of the unread dot. Hover a row to see it, or press Select in the list header, which shows every box at once and adds an All box that takes everything currently loaded. The × next to All leaves select mode and drops anything ticked, which is the way out on a phone; Escape does the same on a keyboard. x ticks the row you are on from the keyboard, and holding Shift while ticking takes the whole run between that row and the last one you ticked.
With anything ticked, a bar appears along the bottom of the screen with the count and the actions that apply to all of them: Mark read, Mark unread, Snooze, Archive (or Move to inbox) and Delete. Each one is a single request, so filing a screenful is as quick as filing one. Clear drops the selection, and so does Escape; changing view drops it too, since the rows it applied to are no longer the rows on screen.
Right-clicking one of the ticked rows (or long-pressing it on a phone) opens a menu for the whole selection, with the same actions as the bar, and it drops the selection once the action is done. Right-clicking a row you have not ticked acts on that row alone and leaves the selection as it was.
Filing in the mailbox too
Like read state, filing travels to the mailbox itself, so a conversation you clean up here is cleaned up in Gmail, Outlook or your IMAP client as well:
| Here | Gmail | Outlook | IMAP |
|---|---|---|---|
| Archive | Takes off the Inbox label | Moves to Archive | Moves to the Archive folder |
| Delete | Moves to Trash | Moves to Deleted Items | Moves to the Trash folder |
| Move to inbox | Puts the Inbox label back | Moves to Inbox | Moves to INBOX |
Delete never removes mail for good: it lands in the mailbox's own trash, where Undo, Move to inbox or the mail client can bring it back until the provider empties it. An IMAP server with no Archive folder gets one, named Archive, as Apple Mail and Outlook do; a server with no Trash folder keeps its copy where it is. Your own sent copies stay in Sent on Outlook and IMAP, as their own clients leave them when you archive a conversation; Gmail files a conversation as a whole, so there they follow it into the trash or back to the inbox. Drafts are never moved, and neither is warmup mail.
The move runs on the worker that holds the mailbox, just after Warmbly's own copy is filed, so the list never waits on it. The worker then reports where the provider has each message, which is how the next sync knows the move was yours and not the provider's. If the mailbox is between workers at that moment, or the provider refuses, the conversation stays filed here and keeps its place at the provider; nothing retries.
To keep filing inside Warmbly for one mailbox, turn off Mirror Archive and Delete on its Settings tab (see mailboxes). Filing then only moves the conversation here, and the next sync will not undo it: Warmbly records where the provider has each message separately from where you filed it, and follows the provider only when the provider itself moves the message. So archiving or junking a message in Gmail still reaches Warmbly either way, and an ordinary sync pass does not.
Replying
Reply, forward, or hover any single message to reply to it specifically. The composer appears when you ask for it or return to a conversation with a saved reply or forward. You can apply a saved template or Insert booking link. A template with an HTML body keeps its formatting; see templates and HTML.
Choosing the sending mailbox
From starts on the mailbox that holds the message, so a reply you do not touch goes out exactly as before. The exception is a shared reply inbox: when the message answers an email from another mailbox whose reply-to names this one, From starts on that sending mailbox, so the contact keeps hearing from the address they wrote to, and a note under From says so with a button to reply from the inbox itself. The message also shows which mailbox's email it answers, next to the sender's name. Click it to send from any other active mailbox in the workspace: the same searchable picker as Compose, with each mailbox's budget for today, auth health and history with the recipient. There is no Auto here; a reply always names its mailbox. The signature preview follows the mailbox you pick. When the mailbox holding the message is no longer active, the composer says so and Send stays off until you pick one that is.
A reply from a different mailbox keeps the conversation's subject and its In-Reply-To and References headers, so the recipient sees it in the same conversation. A provider thread belongs to the mailbox that holds it, so unless the mailbox you pick already has a message in this conversation, the first such reply starts a conversation of its own there (later replies from it continue that one), and the recipient's answer arrives in that mailbox, or in the address its reply-to names. A note under From says so, with Switch back to return to the original mailbox. A forward has no thread to keep, so it simply leaves from the mailbox you pick.
Forwarding
Forward sends the message you picked to someone new. The subject gets Fwd: and the To line starts empty. What you type is an optional note; you can send a forward without one. The recipient gets your note, then the sending mailbox's signature (when signature sync is on), then a Forwarded message block with the original From, Date, Subject, To and Cc lines and the original message underneath, formatting included. The Date line uses the sending mailbox's time zone.
The composer shows the message it will forward under your note; expand Forwarded message to read it before you send. Attachments on the original are not forwarded. If only a preview of the original is stored (the thread shows "Only a preview of this message is stored"), the composer says so, and the forward carries that preview. Forwarding one of your own tracked sends puts its links back to their real destinations, so the new recipient's clicks do not count against the original send.
Pausing their follow-ups
The contact panel lists every campaign the sender is a lead of, with their status in it and what happens next: the next step and when, the hold and when it lifts, or why the flow ended. A campaign with a step still to send has Pause, which opens the same dialog as the campaign's Leads list (until a date, or until you resume them, with an optional note). A held lead has Resume instead; for a contact held because they are copied on another lead's emails it asks first, since it starts a second thread to them. Neither appears on a lead whose flow has ended, and both need the Manage campaigns permission. See Out of office and pausing one lead.
The reply composer offers the same thing for the moment you answer. When the recipient still has a follow-up queued, Pause follow-ups next to Schedule holds them for 3 days, 1 week, 2 weeks, 30 days or until you resume them. When they are a lead of more than one such campaign, the menu lists each one, all ticked, and you untick the ones to leave running (at least one stays ticked). Nothing is paused until the reply is accepted, and a send that fails pauses nothing. A scheduled reply pauses the follow-ups straight away and counts the length from when the reply goes out, so a follow-up cannot overtake it. Undoing or cancelling the reply does not lift the pause, so use Resume in the contact panel if you change your mind. A lead already on hold, for example after an away message arrived while you were writing, keeps that hold.
Reply drafts
Replies and forwards save after a short typing pause, and save the latest edits when you close the composer, leave the conversation, or reload. Returning to the thread reopens a saved draft, including one addressed to an older message, with the mailbox you picked and its HTML body, if it has one. Discard removes it; successfully queuing a send removes it too. Undoing a send restores the message for editing, from the same mailbox.
These reply drafts are personal to your signed-in user and workspace in this browser. They do not sync to other devices, appear in the mailbox's Drafts folder, or travel in a workspace export. Clearing browser data removes them. Draft saved confirms browser storage succeeded; Draft not saved means you should copy your text before leaving.
AI drafts
AI lives at your cursor, not in the toolbar. With the cursor in the body, click the sparkle (or press ⌘J) for three options: write something inline, Draft a reply from this thread, or Continue writing.
A thread draft is grounded in the whole conversation, the contact's record and campaign membership, and your workspace voice profile. Grounding reads the messages themselves, not their preview lines, with quoted history stripped and the most recent messages given the most room, so the draft answers what was actually asked rather than the opening sentence. While it writes, a review bar offers Keep, Retry, Adjust (steer with an instruction like "shorter"), or Discard. Nothing sends until you press Send. Each draft costs AI credits.
Select any text for a floating Edit with AI pill: quick actions (improve, shorten, expand, fix grammar, friendlier, more formal) or a free instruction, rewriting just the selection with Undo and Again one click away. One credit per rewrite. The same control works in the campaign step editor.
An edit applies your instruction and leaves everything else alone: it does not rewrite the passage into a fresh email, and "fix the grammar" changes the grammar and nothing more. Personalization tokens, conditions, spintax, AI blocks, form links and links (their destinations included) are carried through unchanged, so rewriting copy never drops a {{.FirstName}} or an opt-out link. Bold, italic and headings inside the rewritten selection are not preserved, so select around them when the styling matters. When the model decides the passage already satisfies the instruction, the review row says No change rather than claiming a rewrite you cannot see.
Set your voice profile under Settings, Workspace: what you sell, who to, and how you want to sound. It grounds every AI writing surface.
For drafts written automatically on every inbound reply and held for approval, turn on the inbox agent. It never sends on its own.
Composing
Compose at the top of the conversation list, the n key anywhere, or the Email action on a contact opens a docked window so you can keep browsing while writing.
The window title bar carries Full screen, which lifts the same composer to the centre of the screen over a dimmed backdrop for writing something longer. Click the button again, click the backdrop, or press Escape to drop it back to the corner with the draft intact. A second Escape closes the window, saving to Drafts as usual. Minimize always docks to the bottom right.
To searches contacts as you type and accepts raw addresses. Suppressed recipients (bounced, complained, unsubscribed) are flagged before you write a word, and the send is blocked.
Seeds, beside Cc and Bcc, adds your workspace's own seed inboxes to To, for a quick look by hand at where a message lands. Tick seeds one by one, a whole provider at once, or all of them; the picker remembers your last choice in this browser. It appears once the workspace has a seed inbox and you have the View campaigns permission. This sends one message addressed to every seed you add, so each seed sees the others. For a separate copy per seed and a verdict read back automatically, run a placement test on the seeds you choose.
Auto mailbox selection
From defaults to Auto, scoring every active mailbox in the current workspace for the recipient: an existing conversation with them wins first (contacts should keep hearing from one address), then the most remaining daily budget, with domain auth health as the tiebreaker.
The picker shows the pick and its reason before sending. Opening it reveals every mailbox with a budget bar (sent today against its limit), a history badge, and an auth-health dot, so overriding is informed. The menu filters by mailbox tag; with a tag selected, Auto picks within that group only, which is the from_tag_id field on POST /unibox/compose.
Templates and HTML
Template in either composer inserts a saved template from Templates. Into an empty body it becomes the body; otherwise it goes under what you have written, and its subject fills the subject line only when that is still empty (in a reply, only when it is a bare Re: or Fwd:). The picker marks templates that have an HTML body.
A template with an HTML body (Also send an HTML body on the template) switches the composer to HTML, and the recipient gets that HTML exactly as written, links behind words and all. The template's plain-text body goes out beside it as the plain-text part, so write both when you want both. A template with only an HTML body gets a plain-text part generated from the HTML, with each link's address after its text.
In HTML mode the body becomes the same editor as a mailbox signature: HTML edits the formatted text (or the source, with the code button), Preview shows it as a mail client renders it, and Plain holds the plain-text part. With Sync HTML & plain on, the plain-text part follows the HTML: Plain previews it, and the one that goes out is rendered from the HTML when the email is sent. Sync starts off when the template brought its own plain text. The mailbox signature is still added on send. HTML in the action bar switches a plain email to HTML, or back to plain text after asking first, which keeps the plain-text part as the body. AI writing works on plain text only, so it is unavailable in HTML mode, and an AI draft has to be kept or discarded before switching to HTML or adding an HTML template.
Drafts and history
Typing autosaves to Drafts after a pause, including an HTML body. Closing keeps the draft; sending or emptying removes it. Drafts sit at the top of the inbox's left rail, resume on any device, and are personal rather than shared.
With a recipient set, History slides out every conversation you have had with them: tabs split the full thread from just your sent mail, search narrows by subject, rows open the real thread, and the panel notes which mailbox you usually use.
⌘J, Edit with AI, and a Suggest action for an empty subject all work here too. AI drafts are grounded in the contact record, your full correspondence with that address, and your voice profile, and the review card shows what it used. When it genuinely cannot tell what the email is for, it asks one short question instead of inventing a pitch.
Sending controls
| Control | Behavior |
|---|---|
| Undo send | Instant sends wait 30s by default (adjustable 5 to 120s under Settings, Profile). A header countdown offers Cancel, which returns the email to the composer intact. Applies to API sends with send_mode: instant too. |
| Schedule | Queue a send for later. It appears inline in the thread as a dashed card and in the Scheduled view, where anyone in the workspace with Unibox access can cancel it. A usage meter warns as the workspace approaches its queued-send cap. |
| Snooze | Clears a conversation until a time you pick, up to 90 days out, with presets or a custom time. Un-snooze now brings it back immediately. |
Scheduled and smart-queued sends skip the undo window, since they already wait. Cancel them from the Scheduled view, or via DELETE /unibox/scheduled/:task_id.
Realtime
Nothing needs refreshing. New mail appears in the list, updates the open thread, and raises the unread count on its own. The open conversation updates as soon as its mail changes; rail counts, lists and analytics catch up within a couple of seconds, so a burst of incoming mail refreshes them once instead of once per message. The count on Unibox in the navigation (and in the browser tab) is the number of unread conversations in Inbox, the view it opens, so it never points at mail that view does not list: sent mail, drafts, archived, snoozed and automated conversations are left out. Read-state changes, replies, scheduled sends, snoozes, and label changes all refresh the affected views, keeping rail counts, the list, and the open thread consistent.
Keeping inboxes healthy
Replying promptly supports sender reputation, which warmup and good deliverability practice protect. See Deliverability.