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, 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.