> ## Documentation Index
> Fetch the complete documentation index at: https://docs.echoauth.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Ticket bot setup guide

> Go from license key to a live Discord ticket bot in about 10 minutes.

EchoAuth Tickets hosts your Discord ticket bot for you. You create an account with your license key, set up the bot in your browser and deploy it with one click. You don't need a server or any coding.

<Info>
  **Before you start, have these ready:**

  * The license key from your SellAuth invoice (it looks like `ECHO-XXXXX-XXXXX-XXXXX-XXXXX`)
  * Admin access to your Discord server
  * A Discord account that can create applications in the [Discord Developer Portal](https://discord.com/developers/applications)
</Info>

## 1. Create your account

<Steps>
  <Step title="Open the registration page">
    Open the EchoAuth Tickets panel and click **Create an account** below the sign-in form. If you used the link from your invoice, your license key is already filled in.
  </Step>

  <Step title="Enter your license key and login details">
    Paste your **license key**, choose a **username** (3 to 32 characters: letters, numbers, `.`, `_` and `-`) and a **password** with at least 8 characters. Then click **Create account**.

    <Frame caption="Register with the license key from your SellAuth invoice">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/register.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=963b556456e896df44c36bf5111ac365" alt="The Create your account form with license key, username and password fields" width="1440" height="900" data-path="images/ticket-bot/register.png" />
    </Frame>
  </Step>

  <Step title="Check your dashboard">
    You land on the dashboard. It shows how many days your license has left, your bot's status and a **Getting started** checklist. Each item in the checklist opens the setting it needs.

    <Frame caption="The dashboard right after you register. Setup is at 0/6">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/dashboard.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=afdb4921c1fac548a8e7ea01642dcfdb" alt="Dashboard showing an active license, a bot that is not deployed yet, and the getting started checklist" width="1440" height="900" data-path="images/ticket-bot/dashboard.png" />
    </Frame>
  </Step>
</Steps>

## 2. Create your Discord bot

Your ticket bot runs on your own Discord application. You create it once in the Discord Developer Portal.

<Steps>
  <Step title="Create an application">
    Go to the [Discord Developer Portal](https://discord.com/developers/applications), click **New Application**, give it a name (for example your shop name) and create it.
  </Step>

  <Step title="Enable the privileged intents">
    Open the **Bot** tab. Under **Privileged Gateway Intents**, turn on all three:

    * **Presence Intent**
    * **Server Members Intent**
    * **Message Content Intent**

    Click **Save Changes**.

    <Warning>
      If these intents are off, the bot can't start or can't read messages in tickets.
    </Warning>
  </Step>

  <Step title="Copy the bot token">
    Still on the **Bot** tab, click **Reset Token** and copy the token. You paste it into the panel in the next section.

    <Warning>
      Your bot token works like a password. Don't share it or post it anywhere. If it leaks, reset it here and paste the new one into the panel.
    </Warning>
  </Step>

  <Step title="Invite the bot to your server">
    Open **OAuth2 → URL Generator**. Select the `bot` and `applications.commands` scopes, then select the **Administrator** permission. Open the generated URL and add the bot to your server.
  </Step>

  <Step title="Turn on Developer Mode in Discord">
    In Discord, go to **User Settings → Advanced** and turn on **Developer Mode**. Now you can right-click servers, channels, categories and roles and choose **Copy ID**. You need these IDs in the next steps.
  </Step>
</Steps>

## 3. Configure your bot

Click **Configuration** in the sidebar. Settings are grouped into tabs. The **Live preview** on the right shows how your messages will look in Discord as you type.

Whenever you change something, a bar appears at the bottom of the page. Click **Save** to keep your changes, or **Save & Deploy** to save and restart the bot with the new settings right away.

<Steps>
  <Step title="General: add your token and server ID">
    On the **General** tab, fill in:

    * **Bot Token**: the token from the Developer Portal
    * **Server ID**: right-click your server icon and choose **Copy Server ID**
    * **Owner User ID** (optional): your own Discord user ID. This user always has access to the SellAuth admin commands.
    * **Owner Role ID** (optional): a role that may use `/refund`, `/remove_password`, `/add_customer_balance`, `/redo_delivery` and `/replace`

    <Frame caption="General tab with the token and server ID filled in. The save bar appears at the bottom">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/general.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=c550d06ff7725d8856d3712e44097982" alt="General configuration tab with bot token, server ID and owner user ID filled in, and the unsaved changes bar" width="1440" height="900" data-path="images/ticket-bot/general.png" />
    </Frame>
  </Step>

  <Step title="Ticket Behavior: choose a logs channel">
    On the **Ticket Behavior** tab, set the **Logs channel ID**. The bot posts ticket logs here, and `/panel` doesn't work without it. Right-click the channel in Discord and choose **Copy Channel ID**.

    You can also set how many tickets a user may have open, a cooldown, whether only staff may close tickets, and whether closed tickets are archived instead of deleted.

    <Frame caption="Ticket Behavior tab. The logs channel is required">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/ticket-behavior.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=b73fdb6598b4fd49b20c56671d6b65ca" alt="Ticket Behavior tab with the logs channel ID filled in" width="1440" height="900" data-path="images/ticket-bot/ticket-behavior.png" />
    </Frame>
  </Step>

  <Step title="Categories: set where tickets open and who can answer them">
    On the **Categories** tab, select a category on the left (for example **General Support**) and fill in:

    * **Discord category ID**: the channel category where new tickets are created. Right-click the category in Discord and choose **Copy Category ID**.
    * **Support roles**: paste a role ID and press **Enter**. Members with these roles can see and answer tickets in this category.

    Repeat this for every category you use. To use more categories, open one and turn on **Enabled**. Button mode shows up to 5 categories and dropdown mode up to 8. Under **Form** you can add up to 5 questions that users answer before the ticket opens.

    <Frame caption="Category 1 with a Discord category ID and a support role">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/categories.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=82fa0f8f57ffe9b5cd68eaf5b5c1b4d3" alt="Categories tab with the Discord category ID and a support role filled in, next to a preview of the ticket message" width="1440" height="900" data-path="images/ticket-bot/categories.png" />
    </Frame>

    <Tip>
      Set the form field **Function** to **SellAuth invoice lookup** to have the bot look up the order automatically when a customer enters their invoice ID.
    </Tip>
  </Step>

  <Step title="Ticket Panel: design the message members click">
    On the **Ticket Panel** tab, edit the title, message, color, images and footer of the panel. Turn on **Use a dropdown menu** to show categories in a dropdown instead of buttons. The preview updates as you type.

    <Frame caption="Ticket Panel tab with the live Discord preview">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/ticket-panel.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=8eb97253931ed5ad11efb96f41c8cbba" alt="Ticket Panel tab next to a Discord preview of the Support Center panel with a category dropdown" width="1440" height="900" data-path="images/ticket-bot/ticket-panel.png" />
    </Frame>
  </Step>

  <Step title="SellAuth (optional): connect your shop">
    To use the SellAuth commands (`/invoice`, `/refund`, `/replace` and more) and invoice lookups, open the **SellAuth** tab and enter your **API key** (dash.sellauth.com → Account → Developers), **Shop ID**, **Shop currency** and **Shop domain**.

    <Frame caption="SellAuth tab">
      <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/sellauth.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=27f8ddc2f4a8db61dabb08029b3130cb" alt="SellAuth integration tab with API key, shop ID, currency and domain fields" width="1440" height="900" data-path="images/ticket-bot/sellauth.png" />
    </Frame>
  </Step>
</Steps>

## 4. Deploy your bot

Go back to the **Dashboard**. When the first five checklist items have a check mark, click **Deploy**. Your bot starts in a few seconds and comes online in your server.

<Frame caption="All settings done. Only the deploy step is left">
  <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/dashboard-ready.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=e7426998aad99958eb32136d3d4b948f" alt="Dashboard with five of six setup steps completed and the Deploy button" width="1440" height="900" data-path="images/ticket-bot/dashboard-ready.png" />
</Frame>

After the first deploy, use **Save & Deploy** on the Configuration page to apply later changes.

<Note>
  If the deploy fails, open **Logs** in the sidebar. The most common causes are a wrong bot token or intents that are turned off in the Developer Portal.
</Note>

## 5. Post the ticket panel in Discord

In your Discord server, go to the channel where members should open tickets and run:

```
/panel
```

You need the **Administrator** permission to run this command. The bot posts the panel in that channel. Members now pick a category, answer the form, and a private ticket channel opens for them and your support roles.

## Renew or extend your license

Open **License & Account** in the sidebar. Paste a new key under **Redeem a license key** and click **Redeem**. The time is added on top of your current expiry date, so you can extend early without losing days. You can also change your password on this page.

<Frame caption="License & Account page">
  <img src="https://mintcdn.com/echoauth/b3ZMlCVQ6TV3E0yE/images/ticket-bot/account.png?fit=max&auto=format&n=b3ZMlCVQ6TV3E0yE&q=85&s=ae5f1857dd2f29e1320e152fe5a2ff17" alt="License and Account page with the redeem license key form, change password form and license history" width="1440" height="900" data-path="images/ticket-bot/account.png" />
</Frame>

<Warning>
  When your license expires, your bot is stopped. Your configuration and transcripts are kept. Redeem a new key and deploy again to bring the bot back online.
</Warning>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The bot is online but slash commands don't show up">
    Make sure you invited the bot with the `applications.commands` scope and that **Slash commands** is turned on in **Configuration → General → Commands**. Discord can take a few minutes to show new commands. Restarting Discord often helps.
  </Accordion>

  <Accordion title="/panel does nothing">
    Check that **Logs channel ID** on the **Ticket Behavior** tab is set to a channel that exists in your server, and that you have the Administrator permission.
  </Accordion>

  <Accordion title="Tickets open in the wrong place or staff can't see them">
    Check the **Discord category ID** and **Support roles** of that category on the **Categories** tab. Each category has its own settings. Make sure the bot's role has permission to manage channels in that category.
  </Accordion>

  <Accordion title="I can't create an account with my key">
    Copy the key exactly as it appears on your invoice. Each key can be used only once. If you already have an account, sign in and redeem the key under **License & Account** instead.
  </Accordion>
</AccordionGroup>

Still stuck? Open a ticket in our [support server](https://discord.echoauth.dev).
