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

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

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

  3. For a button: use the verification template

    The verification template posts a button that gives members the Verified role. 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.

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

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

More guides

Draw the first flow.

A command, a reply and a deploy is a working bot. It takes a few minutes.

Start building