Skip to content
All docs

Guides

Discord Verification Bot: Verify Button, Form Gate and Message Templates

Copy a Discord verification message template, then wire the verify button that grants the role. No code, on your own bot, free during the beta.

5 min read

A Discord verification bot gates your server: new members see one locked channel with a Verify button, click it, and get a role that unlocks everything else. Spam bots that join and immediately post never make it past the gate. In NoriaFlow you build this as a visual workflow on your own bot. Two nodes for the basic version, a few more for an application-style form.

First, the honest part: this is button and form verification, not a captcha. There is no image puzzle. That is fine for most servers: the bots flooding Discord join and spam instantly without ever clicking a component. But if someone specifically targets your server with a scripted bot, a button alone will not stop them. Pair it with Discord's built-in verification level (Server Settings → Safety Setup) for layered protection.

Set up the server permissions first

The bot grants a role; the permissions do the gating. Two minutes of setup:

  1. Create a role called Verified.
  2. In every category and channel except #verify, remove View Channels from @everyone and grant it to Verified.
  3. Make #verify read-only for @everyone.
  4. In Server Settings → Roles, drag your bot's role above Verified. Discord refuses role grants otherwise.

New members now land in a server where only #verify exists.

Discord verification message templates to copy and paste

The message in front of the gate has one job: make the next click obvious. Pick one, replace the channel names, and post it in your locked verify channel.

Short and plain

Welcome! This server is locked until you verify.
Click Verify below to unlock the rest of the channels.

Community server

Welcome to [SERVER NAME]!
 
One step before you come in: click Verify below.
That unlocks #general, #introductions and everything else.

Gaming server

[SERVER NAME] - verification
 
Click Verify to unlock the game channels, voice rooms and LFG.
Stuck? Ask a moderator in #support.

Rules first

Before you verify
 
By clicking Verify you confirm you have read #rules.
Breaking them removes your access, not just your role.

Application style (pairs with the form gate below)

[SERVER NAME] applications
 
Click Verify to open a short form: three questions, under a minute.
A moderator reviews it and you get a direct message either way.

Minimal

Verification required.
Click Verify to gain access to the server.

Keep it to a few lines. A verification channel is the wrong place for a wall of text: the member has not seen anything yet, so every extra sentence is one more reason to leave instead of click. Put the detail in the channel the gate unlocks.

Build the verify button workflow

Step 1: post the button

  1. Add a Manual Trigger connected to a Discord action set to Send Message, targeting #verify.
  2. Message: Welcome! Click the button below to verify and unlock the server. ✅
  3. In Buttons & menus, add a button labelled Verify with the custom ID verify_me.
  4. Run it once. This is a one-time setup post.

Step 2. Grant the role on click

Create the actual verification workflow:

  1. Discord: Button Click trigger with Button ID Filter verify_me.
  2. Discord action set to Add Role. Pick Verified, User set to {{user_id}} (filled from the trigger).
  3. Optional: a Reply to Slash Command action (it answers any interaction, including button clicks) with Ephemeral enabled: You're verified. Welcome in! 🎉. Only the clicker sees it.

That's the whole bot. Test it with an alt account, then Activate. If the role never applies, check role hierarchy first. It is the cause nine times out of ten. The same Add Role action powers automatic roles on join if you want an unverified "newcomer" role too.

Optional: add form questions (application-style gate)

Want more than a click? The Button Click trigger has an Open a form (modal) on click option. Build a form with up to 5 fields, for example:

  • How did you find this server?: custom ID source
  • What brings you here?: custom ID reason

Give the form a custom ID like verify_form. Clicking Verify now opens the form instead of running the flow directly.

Handle the submission with a Discord: Modal Submitted trigger (Modal ID Filter verify_form). Each answer arrives as its own variable: {{field_source}}, {{field_reason}}. From there, two patterns:

  • Auto-grant + log: Add Role immediately, then Send Message to a private #verify-log channel: <@{{user_id}}> verified. Found us via: {{field_source}}. You get an audit trail without slowing members down.
  • Staff review: skip the auto-grant. Post the answers to a staff channel and let moderators grant the role manually (or with a separate approval button). Stricter, slower: good for communities that vet every member.

Typed answers are much harder for bots to fake than a click, so this is the strongest gate NoriaFlow offers.

Pair it with a welcome DM

Verification works best when new members know what to do. Add a Discord: Member trigger on Member Joined, connected to a Send Direct Message action:

Welcome to the server, {{username}}! Head to #verify and click the button to unlock all channels.

Steal a better opening line from these Discord welcome message examples and follow the complete Discord server onboarding guide. If you also want to tag unverified newcomers with a holding role the moment they join, see the Discord New Member Role template.

Keep the server clean after the gate

Verification filters who gets in; it does not moderate what they say once inside. Round it out with auto-moderation for spam, links, and bad words on the same bot.

Build your verification gate

One button, one role, no code, running on your own bot with your name and avatar, free during the beta.

Setup checks and next steps

  • Check the selected bot, server and destination channel. Role actions also require the bot role to sit above the role it changes.
  • Test with a dedicated channel or member before enabling this automation for everyone.
  • If a step fails, inspect its error and inputs rather than reconnecting every account.

See the extension setup guide for adding and reusing services, the node reference for parameters, and testing and debugging for execution diagnostics.

Frequently asked questions

How do I add a verify button to my Discord server?

Post a message with a Verify button in a locked #verify channel, then build a workflow: a Button Click trigger connected to an Add Role action that grants your Verified role. In NoriaFlow this takes two nodes and no code, and it runs on your own bot.

Is this a captcha verification bot?

No, and we won't pretend otherwise. NoriaFlow does captcha-free verification: a button click or a form submission, not an image puzzle. It stops the common join-and-spam bots, which never interact with buttons, but a determined attacker can script a click. Combine it with Discord's built-in verification level for stronger protection.

Does button verification actually stop bots?

It stops the majority of low-effort spam bots, because they join and post immediately without clicking components. It also stops nobody from lurking unverified. It is not bulletproof: sophisticated bots can click buttons. Adding form questions raises the bar further since answers take real effort to fake.

Can I ask questions before verifying someone?

Yes. The Verify button can open a Discord form (modal) with up to 5 questions: how they found you, their age, what they want from the server. You can auto-grant the role on submission and log answers to a staff channel, or let moderators review before approving.

What should a Discord verification message say?

State the one action required, name the button, and say what unlocks. Three lines is usually enough: what this channel is for, click Verify to continue, and what the member gets access to afterwards. Longer rules belong in the channel the gate unlocks, not in front of it.

How do I set up channel permissions for verification?

Remove the View Channels permission from @everyone (keep only #verify visible), then grant it on your Verified role. Unverified members see just the verify channel; one click unlocks the rest of the server.