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:
- Create a role called
Verified. - In every category and channel except
#verify, remove View Channels from@everyoneand grant it toVerified. - Make
#verifyread-only for@everyone. - 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
- Add a Manual Trigger connected to a Discord action set to Send Message, targeting
#verify. - Message:
Welcome! Click the button below to verify and unlock the server. ✅ - In Buttons & menus, add a button labelled
Verifywith the custom IDverify_me. - Run it once. This is a one-time setup post.
Step 2. Grant the role on click
Create the actual verification workflow:
- Discord: Button Click trigger with Button ID Filter
verify_me. - Discord action set to Add Role. Pick
Verified, User set to{{user_id}}(filled from the trigger). - 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 IDsourceWhat brings you here?: custom IDreason
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-logchannel:<@{{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.