> For the complete documentation index, see [llms.txt](https://acoservice.gitbook.io/acoservice-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://acoservice.gitbook.io/acoservice-documentation/setting-up-your-tenant/your-bot.md).

# Your bot

Getting your group's Discord bot online and into your server.

Your tenant runs **its own** Discord bot, from the same Discord application that handles member sign-in. This page covers getting it live.

{% hint style="danger" %}
**A bot that is invited but not running looks identical to a broken one.** Inviting the bot adds it to your member list; it only comes *online* once the platform operator has started a process with your **Bot Token**. If you invite before handing over the token, the bot will sit there greyed out and answer nothing. That is expected, not a fault — send the token.
{% endhint %}

## Before you invite

Two things must already be true, both covered in [Your Discord application](/acoservice-documentation/setting-up-your-tenant/discord-application.md):

1. A **bot user** exists on your application (Dev Portal → **Bot**).
2. **Server Members Intent** and **Message Content Intent** are enabled and saved. Without them the bot connects but cannot see who is in your server or read checkout messages — it will appear online and do nothing useful.

## Inviting it

Your platform operator will send you an invite link. It looks like this, with your own application's ID in it:

```
https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=8&scope=bot+applications.commands
```

Open it, pick your server, and authorise.

{% hint style="info" %}
**Only someone with Manage Server on your Discord can complete this.** Normally that is you, as the server owner. It is why the operator sends you the link rather than clicking it themselves — they are not an admin of your server, so the authorise button would be greyed out for them.
{% endhint %}

### Why it asks for Administrator

`permissions=8` is Administrator. The bot manages roles, channels and messages across your server, and a narrower permission set had to be re-granted by hand every time it gained a capability.

This is a broad grant and you should understand it as one: you are trusting the bot fully inside your server. If that is not acceptable, say so before you authorise — do not authorise and then restrict it afterwards, because removing permissions it depends on produces failures that are hard to attribute.

## Checking it worked

In Discord, the bot should appear in your member list and go **online** within a minute or two of the operator starting it.

Your operator can confirm the rest from your tenant's **Setup Status** page, which distinguishes the three states that otherwise look the same:

| Row                                     | What it means when it fails                                                                                |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Discord bot token saved**             | The token never reached the platform. Send it.                                                             |
| **Bot process running for this tenant** | The token is stored but nothing is running it, *or* you are being served by a different application's bot. |
| **Bot is in the guild**                 | Nothing has been invited yet, or it was invited to the wrong server.                                       |

[More about the checklist →](/acoservice-documentation/for-platform-operators/setup-status.md)

## Naming and avatar

The bot's username and avatar come from the **Bot** tab of your Discord application, and members see them. Set them to your brand before inviting — changing them later is possible but members will have already met the old name.

You can also give the bot a per-server **nickname** in Discord (right-click → Change Nickname) if you want it displayed differently in your server without touching the application.

## If something is wrong

* Bot missing from the member list → the invite was never completed, or went to another server.
* Bot present but permanently offline → no process is running your token.
* Bot online but ignores everything → intents were not enabled, or it lacks access to the channels in question.

[Full troubleshooting →](/acoservice-documentation/troubleshooting/bot-unresponsive.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://acoservice.gitbook.io/acoservice-documentation/setting-up-your-tenant/your-bot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
