How to Set Up a Ban Appeal Form on Discord (Step-by-Step)
To set up a ban appeal form on Discord, create a separate "appeals" server (because banned members can't access your main one), add a bot with a ticket system, build an appeal form that asks for the user's ID, the ban reason, and why they should be unbanned, and route every submission to a private mod channel for review.
A ban appeal process is one of those things every server should have but most skip until a wrongful ban blows up in their DMs. The problem is structural: once you ban someone, they're gone. They can't post in a #appeals channel, they can't open a ticket, they can't even read your rules. So they message random staff, beg in other servers, or make alt accounts. A real appeal form fixes that by giving banned users one clear, fair place to plead their case, and giving your mod team one clean queue to review.
This guide walks through the whole setup, from where appeals should live to the exact questions to ask, plus copy-paste templates for approving and denying.
Why you need a ban appeal process
Bans are not always right. Mods misread context, automod flags false positives, raids cause collateral damage, and people genuinely change. Without an appeal path, every one of those situations turns into drama: alt accounts, public callouts, or a former regular badmouthing your server elsewhere.
A structured appeal process does three things:
- Catches mistakes. A second pair of eyes reviews the ban before it becomes permanent.
- Reduces staff harassment. Instead of banned users DMing five different mods, there's one intake form.
- Creates a record. You get a written log of who appealed, what they said, and how you ruled, which protects your staff if a decision is ever questioned.
It also signals that your moderation is fair rather than arbitrary, which matters for community trust. If you're building out your wider moderation policy alongside this, the ultimate guide to Discord server moderation covers how appeals fit into the bigger picture.
Where appeals should live (separate server vs channel)
Here's the core constraint: a banned user cannot see any channel in the server they were banned from. That rules out the obvious approach of making an #appeals channel in your main server, because the people who need it most can't reach it.
You have two real options:
A separate appeal server. Create a small, second Discord server whose only job is handling appeals. Banned users join it through a public invite link (one you post in your ban DM message, your server description, or your community's social profiles). This is the standard for medium and large servers because it works for everyone, even fully banned users, and keeps appeal traffic out of your main server.
A web form or external intake. Some servers use a Google Form or a website form linked in the ban message. This works but it's disconnected from Discord, so you lose threading, transcripts, and the ability to ping the mod team automatically. It's a fine fallback if you can't run a second server, but the bot-driven approach below is cleaner.
For most servers, the separate appeal server plus a ticket bot is the right answer. The rest of this guide assumes that setup.
Step 1: Create a dedicated appeal server
Make a new Discord server (the + button on the far left of your server list, then Create My Own). Keep it minimal:
- A #read-first channel explaining who can appeal and how long it takes.
- A #submit-appeal channel where the appeal form button lives.
- A private #appeal-review category your team uses, hidden from regular members.
Set the server's permissions so that @everyone can read the rules and submit an appeal but cannot see review channels. Then generate a permanent invite link from the #read-first channel (right-click the channel, Invite People, and toggle Set this link to never expire). This is the link you'll put in your ban message.
Step 2: Add a bot with a ticket system
You need a bot that turns an appeal into a private, trackable conversation. A ticket system is the natural fit: the user clicks a button, the bot collects their answers in a form (a Discord modal), and it opens a private channel or thread only the user and your mods can see.
PeakBot handles this for free, including ticket categories, transcripts, and form fields, so you don't pay for a premium tier just to run appeals. It's also a single bot that covers moderation, logging, and tickets together, which means the same tool that issues bans can power the appeal queue. If you want the full walkthrough of the underlying system, the Discord ticket system setup guide goes deeper than we will here.
Other bots can do this too. Carl-bot and Tickets are both well-known for ticketing, and if you already run one of them, you can adapt the same steps. The mechanics are nearly identical across bots: a button, a form, and a private channel.
To set it up with PeakBot:
- Invite the bot to your appeal server from peakbot.pro.
- Open the dashboard and go to the Tickets feature.
- Create a ticket category called Ban Appeal and point it at your #submit-appeal channel.
- Enable transcripts so every appeal is logged automatically.
Step 3: Build the appeal form
A good appeal form is short, specific, and forces the user to actually engage with what they did. When you configure the ticket form fields, ask for these:
- Your Discord username and user ID. The ID is the non-changing number you get by enabling Developer Mode and right-clicking the user's own profile. You need it to find their ban entry.
- Which server were you banned from? Relevant if you run appeals for multiple servers through one intake.
- Why were you banned? This tests whether they understand the rule they broke. "I don't know" is itself a signal.
- Do you think the ban was fair? Why or why not? This separates "I was wrongly flagged" appeals from "I broke the rule but I've changed" appeals, which you judge differently.
- What will you do differently if unbanned? The most useful question. Vague answers ("I'll be good") and specific answers ("I won't post links in general anymore") tell you a lot.
Keep it to five or six fields. Long forms get abandoned or filled with garbage. The structure here mirrors how a good staff application form works: targeted questions that surface real intent rather than a wall of open-ended boxes.
Step 4: Route appeals to your mod team
When a user submits, the bot opens a private ticket channel containing their answers. Configure two things so nothing slips through:
- Restrict access. Only your moderator/admin roles plus the appealing user should see the ticket channel. Lock
@everyoneout of the entire #appeal-review category. - Ping the right role on open. Set the ticket system to mention an
@Appeals Teamrole (or@Moderator) when a new appeal lands, so someone is notified instead of appeals sitting unseen for days.
If you'd rather not run a separate appeal server at all and prefer a DM-based flow, modmail is the alternative: a bot relays a banned user's DMs to a private staff channel and back. The modmail setup guide walks through that, though note the same ban constraint applies, so the user still needs an invite to a server where your modmail bot lives.
Step 5: Review and respond fairly
Consistency is what makes an appeal process trustworthy. A few ground rules for your team:
- Check the original ban log first. Look at why they were actually banned, not just what they claim in the appeal. This is where your bot's logging matters: if you log every moderation action, you can pull the exact reason and the mod who issued it.
- Don't let the banning mod be the sole judge. Where possible, have a different staff member or a small group review, so personal friction doesn't decide the outcome.
- Have a tier in mind. Decide in advance which offenses are appealable at all. Raids, doxxing, and threats are usually permanent. A first-offense spam ban or an automod false positive is usually worth a second chance.
- Set expectations. Tell users in #read-first how long reviews take and that one appeal per ban is the limit. This stops people from re-submitting hourly.
Aim for a clear verdict and a short reason. You don't owe a banned user a debate, but a one-line explanation ("Unbanned, this was an automod false positive" or "Denied, the rule against advertising is firm") keeps the process feeling fair rather than random.
Step 6: Use templates for approve and deny replies
Pre-written templates keep your responses fast and consistent. Paste these into the ticket, fill the blanks, then close it.
Approved:
Hi [username]. We've reviewed your appeal and decided to lift your ban. Your ban was for [reason]. You can rejoin using this invite: [link]. Please re-read the rules before posting, since a second ban for the same reason won't be appealable. Thanks for taking the time to appeal properly.
Denied (with a future path):
Hi [username]. We've reviewed your appeal, and we're keeping the ban in place for now. The ban was for [reason], and based on what you've shared we don't feel the situation is resolved. You're welcome to submit one more appeal in [30/60] days if you'd like to try again.
Denied (permanent):
Hi [username]. We've reviewed your appeal. Due to the nature of the offense ([reason]), this ban is permanent and not eligible for appeal. This decision is final. We wish you well elsewhere.
Keep the tone plain and respectful even when denying. The goal is a clear outcome, not a lecture.
Putting it together
Once this is live, your flow looks like: user gets banned, the ban DM points them to your appeal server invite, they click the appeal button and fill the form, the bot opens a private ticket and pings your team, a mod reviews against the original log, and you respond with one of the templates above. Every step is recorded.
If you want to spin up the appeal server's structure quickly, PeakBot's AI Server Builder can generate the channels, roles, and permissions for an appeals server from a plain-English prompt in under 60 seconds, though that piece is a Pro feature ($8.25/month per server). The ticket system itself, plus moderation and logging, is part of the 30+ features that are free with no time limit.
FAQ
Can a banned user see a ban appeal channel in my main server?
No. A banned user loses access to every channel in the server they were banned from, so an appeal channel in your main server is invisible to them. That's why appeals need to live in a separate server, a web form, or a DM-based modmail flow they can reach with a fresh invite link.
Do I need a separate Discord server just for ban appeals?
It's the most reliable option, but not the only one. A separate appeal server works for fully banned users and keeps appeal traffic organized, while a linked web form or a modmail bot in any shared server are valid alternatives if you'd rather not run a second server.
What questions should a ban appeal form ask?
At minimum: the user's Discord ID, which server they were banned from, why they think they were banned, whether they believe the ban was fair, and what they'll do differently if unbanned. Five or six focused questions surface real intent without the form getting abandoned.
Is setting up a ban appeal form free?
Yes. You can run the entire setup, ticket form, private review channels, logging, and transcripts, on PeakBot's free tier with no time limit. Only extras like the AI Server Builder require Pro, which is $8.25/month per server.
How long should I wait before reviewing an appeal?
Set a published window in your rules, commonly 24 to 72 hours, so users aren't re-submitting hourly and your team has time to check the original ban log. The exact timing matters less than being consistent and telling people what to expect.
