Modmail is a self-hosted Discord bot for your server. It works similar to Reddit's Modmail—both in functionality and purpose. It serves as a shared inbox for server staff to communicate with their users in a seamless way.
When a member sends a direct message to Modmail, the bot will create a channel (we call it a "thread") into a designated category. All further DM messages will automatically relay to that channel, then any available staff can respond within the channel. Compared to ticketing bots, Modmail allows easier and more organised discussions among staff.
An example of a Modmail thread.
- Changeable bot status, prefix, category, log channel, etc.
- Versatile command permission system.
- Interface elements (color, responses, reactions, etc.).
- Snippets and command aliases.
- Minimum duration for accounts to be created before allowed to contact Modmail (
- Minimum length for members to be in the guild before allowed to contact Modmail (
Advanced logging functionality
- When you close a thread, Modmail will generate a log link and post it to your log channel.
- Native Discord dark-mode feel.
- Markdown/formatting support.
- See past logs of a user with
- Searchable by text queries using
- Ease of installation: you can get your Modmail bot running in under 10 minutes!
- Schedule tasks in human time, e.g.
?close in 2 hours silently.
- Editing and deleting messages are synced.
- Support for the diverse range of message contents (multiple images, files).
- Paginated commands interfaces via reactions.
This list is ever-growing thanks to active development by our exceptional contributors. See a full list of available commands by using the
Support Modmail with your contributions! Whether it be improvements to the documentation or new functionality, please feel free to make the change. Check out our contributing guidelines before you get started.
Throughout this documentation when we're referring to bot commands, we will assume the prefix of the bot to be ? and will display them like in this example: ?help. Optional arguments will be enclosed in square brackets: Example: ?close [time] [reason] [silently] Required arguments will be enclosed in angle brackets: Example: ?contact <user>