Email gateway

How to use the shared inbox

Email sent to one of our team addresses arrives in Slack and in a web dashboard. Anyone on the team can reply from either, and the person on the other end just sees a normal email conversation.

Sign in to the dashboard

What this is

One shared mailbox for the whole team, instead of mail landing in one person's personal inbox where nobody else can see it. Every message is stored in our own database first, then shown in Slack and in the dashboard.

Getting in

The dashboard is at https://nexmail.nexprove.com. Sign in with your work email address and the password an administrator gave you.

There is no sign-up page and no “forgot password” email. Accounts are created by an admin under Settings → Users. If you are locked out, an admin can set you a new password immediately.

Change the password you were given, at Settings → Account. Doing so signs you out everywhere else, which is intentional. Minimum 12 characters.

RoleCan doCannot do
MemberRead every conversation, reply, assign, add internal notes, change status, change their own passwordChange domains, routes, providers, Slack settings, or other people’s accounts
AdminEverything a member can, plus all of Settings and user management—

The inbox

Every conversation the team has received, newest activity first. A conversation is one email thread — the original message and every reply, in order.

FilterShows
AllEverything except archived
UnreadConversations nobody has opened since the last message arrived
OpenStill needs a response
PendingWaiting on the other person
ClosedDealt with
ArchivedClosed and hidden from every other view
Assigned to meConversations assigned to you
UnroutedMail that arrived at an address with no rule. It is stored, but nobody was notified in Slack — worth checking

Search covers the subject, the people involved, and the message text. You can also filter by domain, by the address it was sent to, and by Slack channel.

Reading and replying

Open a conversation to see the whole thread: who sent what, when, to which address, and any attachments.

ActionWhat it does
ReplySends a real email back to the sender, threaded so it appears in their existing conversation
AssignMarks who is dealing with it. Visible to everyone
Close / ReopenChanges the status. Nothing is deleted
Add noteInternal only. Never emailed to anyone. Use it to leave context for a teammate

Sending a new email

Compose starts a fresh conversation. Pick the address it should come from, add recipients, write, send.

The From field is a dropdown rather than free text, and it only offers addresses on domains that are configured and active. That is not an arbitrary restriction: sending as a domain we have not set up authentication for gets the message treated as spam and damages the reputation of the domains we do use.

Working from Slack

Most of the day-to-day work can be done without opening the dashboard at all. Mail arrives in the channel, and you can read it, answer it, hand it to someone and close it from there.

When mail arrives

The bot posts a card into the channel that address routes to, showing who it is from, which address it was sent to, the domain, the subject, the number of attachments and a preview of the message. Attachments are linked, never uploaded into Slack.

It is a preview, not the whole email. Long messages are cut off — use Open conversation for the full text. Later messages on the same thread appear as replies under that first card, so a conversation stays in one place.

The four buttons

ButtonWhat happens
ReplyOpens a dialog. Sends a real email to the person who wrote in
Open conversationOpens the full thread in the dashboard, in your browser
AssignOpens a picker of teammates, and posts a note in the thread saying who assigned it to whom
CloseMarks the conversation dealt with, and says so in the thread. Nothing is deleted

Sending a reply

  1. Press Reply on the message card.
  2. A dialog opens. The top shows who it is going to, which address it will come from, and the subject — check these, because you cannot change them here.
  3. Type your reply. Plain text, up to 8,000 characters.
  4. Press Send. The email is handed to the gateway, which queues it and sends it. Slack never sends mail itself.
  5. The reply appears in the thread so the rest of the team can see it went, and it appears in the dashboard as part of the conversation.

The reply is threaded, so the recipient sees it as part of the conversation they started rather than as a new email out of nowhere.

Commands

Type /email on its own for the list of commands, a count of what is open and unassigned, and a link to the inbox.

CommandWhat it does
/emailHelp, plus how many conversations are open and how many are unassigned
/email search <text>Finds up to 10 conversations by subject, the address they came to, or a participant. It does not search message bodies — use the dashboard for that
/email open <id>Shows the subject, address, status and assignee, with a link to the full thread
/email assign <id>Assigns it to you. That is the default when you name nobody
/email assign <id> @personAssigns it to someone else. An email address works too
/email close <id>Closes it and says so in the thread

Command replies are private — only you see them. Actions that change something (assign, close) also post a short note into the conversation thread, so the team can see what happened and who did it.

What you cannot do from Slack

  • Start a new email. Slack can only reply to a conversation that already exists. To write to someone first, use Compose in the dashboard
  • Attach a file to a reply. The reply dialog is text only. Send it from the dashboard if it needs an attachment
  • Change who it is from, or the subject. Both are fixed to the conversation
  • Search message text. Slack search covers subjects, addresses and participants only

If Slack goes quiet

Slack notification is a separate step from storing the mail. If the bot stops posting, the email is still being received and is still in the dashboard — only the announcement failed. Check the Unrouted filter first, in case the address simply has no rule pointing at a channel, then the Health page.

If the bot cannot post to a channel at all, the usual cause is that it was never invited to it. Slack rejects posts to channels an app is not a member of.

Who gets notified where

When mail arrives, the system decides which Slack channel to announce it in, in this order:

  1. An exact rule for the address it was sent to
  2. A catch-all rule for that domain
  3. The domain's default channel
  4. A global fallback channel
  5. No rule matched — the mail is still stored and appears under the Unrouted filter, but nobody is notified

Mail is never discarded for want of a rule. If something lands in Unrouted, it means a route is missing, not that the message was lost.

When something looks wrong

SymptomWhat to do
A test email never appearedCheck the Unrouted filter first. If it is not there either, check the Health page — if the worker is down, mail is queued rather than lost
A reply has not arrivedOpen the conversation. A queued or failed reply says so on the message, with the reason
Slack went quiet but the dashboard worksSlack notification is a separate step. Mail is still being stored; only the announcement failed
An attachment will not downloadAttachments on sent mail were not recorded before September 2026. Older sent messages may show none
You are locked outWait 15 minutes, or ask an admin to set a new password

The Health page shows every dependency — database, queue, mail provider, Slack, worker — with the last successful check and the last error. It never shows credentials.

What it does not do yet

  • No bulk sending, mailing lists or contact management. It is a shared inbox, not a campaign tool
  • No drafts. A half-written reply is lost if you navigate away
  • No snooze, labels, canned replies or signatures
  • Read and unread are shared across the team, not per person
  • It runs on one machine. When that machine is off the dashboard is unavailable — incoming mail is retried by the sender rather than lost, but it will be delayed

If something here would genuinely help, say so — this list is a set of decisions, not a set of oversights, and decisions can change.