> For the complete documentation index, see [llms.txt](https://docs.asagi.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.asagi.xyz/guides/verification.md).

# Verification

## Step 1: Assigning an Automatic Role

Assign an automatic role to users who join your server. This can be the “<mark style="color:red;">Unverified</mark>” role or any other role that restricts access to the server's main channels.

<figure><img src="/files/uOC4ZeiHccpJw4Cp28N3" alt=""><figcaption><p>Example: Assigning the "<mark style="color:red;">Unverified</mark>" role</p></figcaption></figure>

## Step 2: Setting Up Channel and Category Permissions

Configure the permissions for channels and categories. Ensure that the role assigned in the previous step (e.g., “<mark style="color:red;">Unverified</mark>”) has restricted access to most channels. Specifically, remove the "<mark style="color:yellow;">View Channels</mark>" permission for the "<mark style="color:red;">Unverified</mark>" role in channels where access should be restricted, and add the same "<mark style="color:yellow;">View Channels</mark>" permission for the <mark style="color:green;">@everyone</mark> role.

<figure><img src="/files/z7ahPUugkSosazg91VUI" alt=""><figcaption><p>Example: Configuring category permissions</p></figcaption></figure>

## Step 3: Creating a Verification Channel

Create a private text channel for verification. Set the channel permissions so that only the role assigned in the first step (e.g., “<mark style="color:red;">Unverified</mark>”) has the "<mark style="color:yellow;">View Channels</mark>" permission. This ensures that only new users can access the verification process, while other roles do not see this channel.

<figure><img src="/files/aVPrIF81Rsr4ms2z6l8X" alt=""><figcaption><p>Example: Creating a verification channel</p></figcaption></figure>

## Step 4: Sending a Message

Send a message in the verification channel using the `/say` command from our bot. You can also use JSON code to generate an embed for a more customized message. For detailed instructions on how to create embeds using JSON, refer to the [JSON Builder Guide](/guides/json-builder-in-the-asagi-bot.md).

<figure><img src="/files/0ihQLvmiGJ8TjG2KHiTG" alt=""><figcaption><p>Example: Message with verification instructions</p></figcaption></figure>

## Step 5: Using Reactions or Interactive Messages

### **Example 1: Using Reactions**

For verification via reactions:

1. **Configure Reaction**: Set up our bot to respond to a specific reaction on the verification message.
2. **Role Management**: When a user reacts, the bot will:
   * Remove the "<mark style="color:red;">Unverified</mark>" role
   * Assign the "<mark style="color:green;">Verified</mark>" role

#### **Example Setup:**

* **Reaction**: A specific emoji (e.g., ✔️)
* **Role to Remove**: "<mark style="color:red;">Unverified</mark>"
* **Role to Assign**: "<mark style="color:green;">Verified</mark>"

<figure><img src="/files/VpQo837ASUl7GVGfxzlx" alt=""><figcaption><p><strong>Example: Reaction-based verification</strong></p></figcaption></figure>

### **Example 2: Using Interactive Messages**

For verification via interactive messages:

1. **Configure Interactive Message**: Use buttons in your interactive messages to handle verification.
2. **Role Management**: When a user clicks a button, the bot will:
   * Remove the "<mark style="color:red;">Unverified</mark>" role
   * Assign the "<mark style="color:green;">Verified</mark>" role

#### **Example Setup:**

* **Button Emoji**: e.g., ✔️
* **Role to Remove**: "<mark style="color:red;">Unverified</mark>"
* **Role to Assign**: "<mark style="color:green;">Verified</mark>"

<figure><img src="/files/V6YtAghTCXr4BNM53bPM" alt=""><figcaption><p>Example: Button-based verification</p></figcaption></figure>
