Version 1.4.3
/help shows anyone how ModMailBot works. The bot’s status now says /help | ModMailBot.
New
/helpshows how the bot works: how members open a ticket, what staff do, and where admins start. It links the setup guide, the command reference and the support server, and only the person who runs it sees the reply. If you hid the bot’s commands from members under Server Settings → Integrations,/helpis hidden too: the setup guide shows how to let members use it.
Changed
- The bot’s status under its name now says /help | ModMailBot, so members know where to start, and can tell which bot it is if your server gave it another name.
Version 1.4.2
Backups are now kept for 90 days instead of a year, and /data delete is shorter and says when the backup copies are gone.
Changed
/data deleteis shorter, and says where your data goes. It deletes your server’s data from our database at once, as before. Its confirmation and its reply are shorter, and say that encrypted backup copies are gone within 90 days.
Privacy
- Backups kept 90 days, not a year. Backups follow the 3-2-1 rule: three copies of the data, on two kinds of storage, one of them off-site. Every four weeks we export our databases, encrypt the export with a key only we hold, and keep it in Proton Drive, outside our Cloudflare account. We keep the three newest exports, so deleted data is gone from every backup within 90 days. The privacy policy and the subprocessor list say so.
Version 1.4.1
ModMailBot now shows as online in your member list, with “Run /setup to get started” under its name.
Changed
- The bot shows as online. It showed as offline before, though it answered every command. Its status now says Run /setup to get started. Commands work as they did.
Privacy
- Nothing new is collected. The bot keeps one connection to Discord open, only for its online status, which some servers prefer to see. A bot can use that connection to get a live feed of each server, messages included. We decided against that, for your server’s privacy, so ModMailBot asks for none of it.
Version 1.4.0
Each panel can now show its own ticket types. /panel add puts a panel in another channel with the types you pick, and /panel buttons changes which types a panel shows.
New
- Panels with their own buttons. Each panel shows the ticket types you choose for it, so #help can offer Report a member and Ask a mod while #appeals offers Ban appeal alone. Your panels keep every button they have now.
/panel addputs a panel in another channel without going back through/setup: pick its ticket types, keep the default text or write your own, then publish. It refuses a channel that already has a panel./panel buttonschanges which ticket types a panel shows. A panel keeps at least one button. Withoutchannel:, it lists your panels to pick from when you have more than one.
Changed
- New ticket types and your panels. With one panel, a new ticket type goes on it, as before. With panels in two or more channels,
/config ticket addand the setup wizard ask which panels show it. Until you pick, members can’t open it, and staff still can with/create. A restored type goes back on the panels it was on; if none of your panels shows it now, it stays on none, and the reply offers to place it. /config viewlists your panels and the ticket types each one shows, and lists the types no panel shows in a section of their own./diagnosenames those types too.- Picking a panel’s channel in
/panel delete,/panel settextand/panel buttonslists only the channels that have a panel, as you type. - A button you take off a panel stops opening tickets at once, before the panel updates: a member who presses it is told to use another button. A type no panel shows can’t be opened by members at all.
Version 1.3.0
Panels now update themselves when you change your ticket types, and setup ends by offering to announce the panel to your members. /archive now queues tickets so large ones finish, and /config ticket restore brings back a removed ticket type.
New
- Announce your panel. Once the panel is published,
/setupoffers to post a short announcement that points members at it, and shows you the text before anything goes out. - Panels keep up with your ticket types. Adding, removing, restoring or editing a ticket type (its name, button color or place), or changing its emoji, updates every panel in your server within seconds. The daily check now compares each panel with your settings, not only whether it still exists, and repairs any that differ. A panel holds 25 buttons, and the reply names the types left without one.
/config ticket restorebrings back a removed ticket type with its settings, in the place it had. It’s refused while a type on your panels has the same name, upper and lower case alike.- A welcome page. Adding the bot from the website now ends on a page with the three things to do first, and the install message links to it. Cancel instead, and a page explains what the permissions are for.
- The
/closemessage says when it’s over. When a ticket closes on its countdown or with/forceclose, the message loses its buttons and says the ticket closed. Messages posted before this update keep their buttons. /diagnosechecks more: the permissions the bot needs server-wide to open tickets, and button emoji Discord may refuse.
Changed
/archivequeues the ticket, so large tickets have time to finish: they used to be cut off partway. It checks the ticket and says the transcript will follow within a few minutes, and the log channel gets a note when it’s done. If archiving fails, staff are told, and the ticket waits for/archiveor/reopen.- Automatic archiving stops after three tries. A ticket that fails to archive is tried three times, an hour apart, then you get one notice to archive it by hand. It used to retry every hour, with a notice each time. If the archive channel refuses the bot, automatic archiving turns off for that ticket type, with a notice that says how to turn it back on.
- Reopening needs the rank closing needs.
/reopenand/forceclosenow also need the ticket type’s close rank, where that is higher. On servers that add the bot from this version on, whoever can close a ticket can reopen it. Servers that already have the bot keep/reopenat rank 4 unless they had set their own, and/config staff gatechanges it. - Log and archive channels must be private. Pick one in
/setup,/config log-channelor/config ticket addoredit, and a channel members can see is refused, with the reason. The bot adds itself to the channel you pick and refuses one it still can’t use, naming what’s missing. Before, such a channel was saved anyway. - Removing a ticket type says what happened. If the type was never used for a ticket, it’s deleted. If it was, it comes off your panels and is kept for those tickets:
/config viewlists it under Removed ticket types, and other/config ticketcommands refuse it until it’s restored. Your last ticket type can’t be removed: add its replacement first. sort:counts the types on your panels. Removed types no longer count, and keep their places./data deletealso deletes the bot’s panel messages, and names any it couldn’t reach, for you to delete.- Notices name the ticket’s channel, as in “ticket #12 (#sam-report-a-member)”, not only its number. Every post an archive makes leads with the ticket and its type, so two archives posting at once are easy to tell apart.
- Button emoji. An emoji Discord won’t accept is refused when you set it, and if Discord turns down the new emoji when the bot updates your panels, the previous one is put back. A saved emoji that isn’t a single emoji is left off its button, so your panels can still be updated, and
/diagnosenames it. To set one, type:and pick it from Discord’s list. /config clearticketsonly closes ticket records whose channel is gone. A ticket whose channel still exists is listed for/forcecloseinstead.- Setup screens. Back goes to the screen before. The staff screens start from your current staff roles, and an optional rank can be cleared. Quick setup names rank 2 “Staff”, as custom setup does (it said “Moderator”). The channel screens say not to sync permissions if you move one of the bot’s channels into another category.
Fixed
- A ticket closes at the time the member was shown, and a long countdown no longer holds up other tickets that are due.
- Pressing I need more assistance once a ticket has started closing tells the member it’s closing, without pinging staff. Pressed before that, it still keeps the ticket open.
- After a failed automatic archive,
/archiveand/reopenwork straight away. For up to an hour after, they used to say the ticket was already being archived. - A new ticket type no longer jumps to the front of the panel after you’ve reordered types with
sort:. - Setup,
/config ticket addand setup’s Add a ticket type no longer take their settings from a ticket type you had removed, and setup no longer gives that type your staff role and channels. They use your default type, the first one on the panel. - Closing a ticket no longer tells staff to remove a member whose access was already gone.
- In setup, a failed publish says what went wrong, and clicks while it’s working get a short note instead of being dropped.
- Create them for me names the permission the bot is missing, or Discord’s limit of 500 channels, and removes the channels it made if a later step fails.
/panel deleteno longer forgets a panel whose message it couldn’t delete.- A deleted archive channel no longer stops the bot updating your other archive channels and the log channel when you change staff ranks or a ticket type.
/diagnosenames the deleted channel. /config viewno longer goes unanswered on a server with many ticket types. A view too long for one message continues over up to five, numbered.
Privacy
- We count visits to our install links, and the installs and cancelled installs that come through them, in daily totals per link that hold no IP address, cookie, user ID or server ID. When you add the bot through one of those links, the website keeps your server’s ID and the link until the bot has counted the install, for about an hour at most. Nothing keeps which link your server came through.
- The bot keeps daily counts of why a ticket couldn’t be opened, such as the member being blocked or already having one open. They hold no user IDs, and help us troubleshoot pain points for future bug fixes.
- Audit log entries are now deleted after 180 days.
- The privacy policy has the details.
Version 1.2.0
The guide became a step-by-step setup guide, with new reference and help pages beside it. Archive failure notices also appear in the ticket’s channel, not only in the log channel.
New
- Archive failures are reported in the ticket’s channel too. The notice goes there as well as to your log channel, and says so if no log channel is set or the bot can’t reach it.
/diagnosewarns when a ping role can’t actually be pinged, because Discord won’t let the bot mention it, and its warnings now come first in the report.- Website: the guide is now a step-by-step setup guide, beside two new pages: a reference for every command and permission, and help & troubleshooting, which replaces the FAQ. Old FAQ links still work.
Changed
- “Staff rank” replaces “tier” in replies, setup and most command descriptions.
- Staff can only open a ticket type they can see.
/createand Open Modmail refuse a type whose channels the staff member couldn’t see. - Setup names the channels it creates
#ticket-archiveand#ticket-log(they were#archiveand#modmailbot-logs). Channels it made before keep their names. - Archive notices in the log channel lead with the ticket type, as in “Report a member ticket #12 archived”.
- The install message says Discord shows
/setuponly to Administrators, so someone who added the bot with Manage Server knows to ask one, and it links to the setup guide./supportand/diagnoselink to the website’s help and reference.
Fixed
/diagnosechecks Read Message History on the ticket category. Archiving needs it, and without it a transcript came out empty.
Version 1.1.2
You can choose where each ticket type sits on the panel, and add hint text to intake questions. Custom setup now names rank 2 Staff.
New
sort:on/config ticket editsets a ticket type’s place on the panel and in pickers. The first type is the default for/createand Open Modmail, and/config viewmarks it./config ticket placeholdersets the grey hint text inside an intake question’s answer box.
Changed
- Custom setup names rank 2 “Staff”, not “Support”. Servers already set up keep their names.
Version 1.1.1
Each ticket type’s channels are now visible only to the staff ranks that handle it.
Fixed
- Ticket channels follow each type’s audience. Staff see a type’s channels from the lowest rank among that type’s roles upward, and never below its close rank. Before, a close rank of 1 let every rank see every ticket. Ticket channels already open kept their permissions.
- Escalation roles get the ticket channel directly, so they can see the ticket they are pinged into.
- Archive channels follow the same rule, unless the ticket type has its own archive rank.
Version 1.1.0
/create suggests ticket types by name, and new servers start with a Contact Us panel. /diagnose now warns about two common setup problems.
New
/diagnosewarns when a role gives the bot Administrator, naming the role (the bot never needs it), and when a channel restriction under Server Settings → Integrations would stop staff commands working inside tickets.- A FAQ on the website that covers both.
Changed
/createsuggests ticket types by name as you type, instead of taking a number. In/config ticketcommands the option is now calledtype(it wasid).- A ticket type has one name, used on its button, in pickers, in archives and in transcript file names. Types whose name and button label had drifted apart now use the button label.
- New servers start with “Contact Us” as the panel heading and the first ticket type. Servers already set up keep theirs.
Version 1.0.2
Transcript files are now named after the member and the ticket type.
Changed
- Transcript file names read like
sam-report-a-member-transcript.htmlinstead ofticket-12-transcript.html. Long transcripts keep their part numbers.
Version 1.0.1
Opening a ticket can no longer stall without a word.
Fixed
- A ticket that stalls while opening now fails cleanly. The member is told, their form answers are shown back to them to copy, and the half-made channel is removed.
Version 1.0.0
The first public release.
New
- A panel button members press to open a private ticket channel with your staff, after a short form.
- Staff ranks decide who sees, closes and archives each ticket type.
/closeasks the member to confirm, with a countdown./forceclose,/reopenand/createcover the rest.- Transcripts are posted to your own archive channel, files included.
/setupwalks you through it, and/diagnosechecks the bot’s permissions.- The bot never asks for Administrator and never stores message content.