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 first, then shown in Slack and in the dashboard.
Getting in
The dashboard is at https://app.nexmail.nexprove.com. Sign in with your work email address. A new team starts at Create a workspace; teammates join from an invite or the team's join link.
Forgot your password? Choose Forgot? on the sign-in page and follow the link in the email. An admin can also set you a new one under Settings → Users.
Change your password at Settings → Account. Doing so signs you out everywhere else, which is intentional. Minimum 12 characters.
| Role | Can do | Cannot do |
|---|---|---|
| Member | Read every conversation, reply, assign, add internal notes, change status, change their own password | Change domains, routes, providers, Slack settings, or other people’s accounts |
| Admin | Everything 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.
| Filter | Shows |
|---|---|
| All | Everything except archived |
| Unread | Conversations nobody has opened since the last message arrived |
| Open | Still needs a response |
| Pending | Waiting on the other person |
| Closed | Dealt with |
| Archived | Closed and hidden from every other view |
| Assigned to me | Conversations assigned to you |
| Unrouted | Mail 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.
| Action | What it does |
|---|---|
| Reply | Sends a real email back to the sender, threaded so it appears in their existing conversation |
| Assign | Marks who is dealing with it. Visible to everyone |
| Close / Reopen | Changes the status. Nothing is deleted |
| Add note | Internal 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
| Button | What happens |
|---|---|
| Reply | Opens a dialog. Sends a real email to the person who wrote in |
| Open conversation | Opens the full thread in the dashboard, in your browser |
| Assign | Opens a picker of teammates, and posts a note in the thread saying who assigned it to whom |
| Close | Marks the conversation dealt with, and says so in the thread. Nothing is deleted |
Sending a reply
- Press Reply on the message card.
- 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.
- Type your reply. Plain text, up to 8,000 characters.
- Press Send. The email is handed to the gateway, which queues it and sends it. Slack never sends mail itself.
- 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.
| Command | What it does |
|---|---|
/email | Help, 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> @person | Assigns 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:
- An exact rule for the address it was sent to
- A catch-all rule for that domain
- The domain's default channel
- A global fallback channel
- 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.
Calendar
The Calendar page shows the Team calendar, your own private calendar, and any calendar you connect under Settings → Calendars: Google, Outlook, iCloud, Fastmail or another CalDAV server sync both ways, and any calendar link is shown read-only.
- Invites in your email are added exactly, with their updates and cancellations. A meeting time written in an email becomes a tentative event to confirm
- Mail to your personal address goes on your calendar; everything else on the Team calendar. Only people who can read the email see the event
- Type an event in plain words in the box at the top, such as “Lunch with sam@acme.com Friday 1pm”. It opens filled in for you to check
Booking links
Under Settings → Booking links, create a page where people pick a free time from your calendars. Set your weekly hours, the meeting lengths and the calendar bookings go on, and add a Google Meet link if that calendar is Google. Both of you get an invite, and the confirmation has a link to cancel. Insert your link into any email from the editor toolbar.
Meeting notetaker
On the Team plan, open a meeting with a Meet, Zoom or Teams link and choose Send notetaker. It joins when the call starts. Afterwards the transcript and a summary are on the event, filed as a note on the email thread, and posted in its Slack thread.
When something looks wrong
| Symptom | What to do |
|---|---|
| A test email never appeared | Check 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 arrived | Open the conversation. A queued or failed reply says so on the message, with the reason |
| Slack went quiet but the dashboard works | Slack notification is a separate step. Mail is still being stored; only the announcement failed |
| An attachment will not download | Attachments on sent mail were not recorded before September 2026. Older sent messages may show none |
| You are locked out | Wait 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
- Drafts save as you type, and every send has a few seconds to undo
- Read and unread are shared across the team, not per person
- Nothing in Trash is deleted. Restore a conversation any time
Missing something? Tell us from Request a feature in the menu under your name, or at /feedback.