How to give roles automatically in Discord
There are two common ways to hand out roles automatically: give one to everyone who joins, or let members claim one by pressing a button. Both are quick to build.
Steps
Decide which kind you need
A role on join is for a starter role such as
Member. A button is for roles members choose, or for a verification step.For a role on join: draw an event flow
Add a flow, choose Event and pick Member joins. Add an Add role step, connect it and type the role's name. This runs on a bot that stays connected, so it needs the Paid plan.
For a button: use the verification template
The verification template posts a button that gives members the
Verifiedrole. It runs on slash commands and buttons, so it's free. Change the role's name in the step to hand out a different one.Put the bot's role above the one it gives
Discord only lets a bot give roles below its own. In your server settings, drag the bot's role above the role it hands out.
Deploy and test
Deploy the bot, then join with a test account or press the button to see the role arrive.
Good to know
- For a role on join, turn on the Server Members intent for your application in the Discord Developer Portal.
- A flow can give several roles by chaining more Add role steps.
Questions
Why didn't the bot give the role?
Almost always the bot's role sits below the role it is trying to give. Move the bot's role higher in the list.