# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.asagi.xyz/guides/verification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
