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 Noria 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.
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 Noria 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, follow the complete Discord server onboarding guide, and see the Discord New Member Role template if you also want to tag unverified newcomers with a holding role the moment they join.
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.