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

# Configurar un Discord gateway

> Crea un bot de Discord y conéctalo a Alter Gateways

Utilice esta guía para crear un bot Discord, otorgar los permisos que Alter necesita y conectarlo en **Configuración → Integraciones → Gateways**.

<Info>
  Alter connects to Discord as a **bot** using a **bot token**. You create the bot in the [Discord Developer Portal](https://discord.com/developers/applications); Alter does not generate an invite URL for you — you add the bot to your server from the portal.
</Info>

## Antes de empezar

* Una cuenta Discord con permiso para crear aplicaciones (y agregar bots a su servidor de destino).
* **Alter** instalado y ejecutándose en tu Mac.
* Unos minutos para copiar tokens e ID: trate los tokens de bot como contraseñas.

Referencias oficiales:

* [Discord Developer Portal](https://discord.com/developers/applications)
* [Discord quick start — overview of apps](https://discord.com/developers/docs/quick-start/overview-of-apps)

## Paso 1: crear una aplicación Discord

<Steps>
  <Step title="Open the Developer Portal">
    Go to [discord.com/developers/applications](https://discord.com/developers/applications) and sign in.
  </Step>

  <Step title="New Application">
    Click **New Application**, choose a name (for example `Alter`), and confirm.

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/create-app.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=3f1f63157dfae3960e6ad8ee104fa761" alt="Discord Developer Portal — General Information page after creating an application" width="1350" height="496" data-path="images/gateways/discord/create-app.png" />
    </Frame>

    *Source: [discord.js guide — Application Setup](https://discordjs.guide/preparations/app-setup)*
  </Step>

  <Step title="Open the Bot page">
    In the left sidebar, select **Bot**, then click **Add Bot** (or **Reset Token** if you already created one).

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/add-bot.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=c42c7a1b6718996c49048355eca76293" alt="Discord Developer Portal — Bot page with Add Bot button" width="975" height="431" data-path="images/gateways/discord/add-bot.png" />
    </Frame>

    *Source: [Stack Overflow — permanent OAuth invite for a Discord bot](https://stackoverflow.com/questions/68218211/how-do-you-create-a-permanent-oauth-invite-for-your-discord-bot)*
  </Step>
</Steps>

## Paso 2: Habilite Message Content Intent

Alter debe leer el texto del mensaje en servidores y mensajes directos. Discord requiere que active esto explícitamente en Developer Portal.

<Steps>
  <Step title="Open Bot settings">
    In your application, go to **Bot**.
  </Step>

  <Step title="Enable Message Content Intent">
    Under **Privileged Gateway Intents**, turn on **Message Content Intent**.

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/message-content-intent.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=a5ec9372471d846bcec7f64d0ae02f19" alt="Discord Developer Portal — Privileged Gateway Intents with Message Content Intent enabled" width="1490" height="590" data-path="images/gateways/discord/message-content-intent.png" />
    </Frame>

    *Source: [PyCord docs — Gateway Intents](https://docs.pycord.dev/en/master/intents.html)*
  </Step>

  <Step title="Save changes">
    Confirm any prompts. Without this intent, Alter cannot read messages and shows an error such as *Enable Message Content Intent for this bot*.
  </Step>
</Steps>

## Paso 3: copia el token del bot

<Steps>
  <Step title="Reveal the token">
    On the **Bot** page, click **Reset Token** (first-time setup) or **Copy** under **Token**.

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/created-bot.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=6a63f4e56bfae86fe857b8e1572c3636" alt="Discord Developer Portal — Token del bot section with Reset Token" width="2127" height="670" data-path="images/gateways/discord/created-bot.png" />
    </Frame>

    *Source: [discord.js guide — Application Setup](https://discordjs.guide/preparations/app-setup)*
  </Step>

  <Step title="Store it securely">
    Paste the token somewhere safe temporarily — you will enter it in Alter in a later step. If it leaks, use **Reset Token** in the portal and update Alter.
  </Step>
</Steps>

<Warning>
  Never commit or share your bot token. Anyone with the token can control your bot.
</Warning>

## Paso 4: invita al bot a tu servidor

Alter no crea un enlace de invitación dentro de la aplicación. Genera uno en el Developer Portal:

<Steps>
  <Step title="Open OAuth2 URL Generator">
    In your application sidebar, go to **OAuth2** → **URL Generator**.
  </Step>

  <Step title="Select scopes">
    Under **Scopes**, check **bot**.

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/oauth2-bot-scope.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=52919f4562d2357a776f595d90e019b8" alt="Discord Developer Portal — OAuth2 URL Generator with bot scope selected" width="892" height="618" data-path="images/gateways/discord/oauth2-bot-scope.png" />
    </Frame>

    *Source: [Stack Overflow — permanent OAuth invite for a Discord bot](https://stackoverflow.com/questions/68218211/how-do-you-create-a-permanent-oauth-invite-for-your-discord-bot)*
  </Step>

  <Step title="Select bot permissions">
    Under **Bot Permissions**, enable:

    * **View Channels**
    * **Send Messages**
    * **Read Message History**
    * **Attach Files**
    * **Create Public Threads** and **Send Messages in Threads** (optional — only needed if you enable **Iniciar discusiones del servidor en hilos** in Alter)

    These let Alter read your messages, reply, send file outputs from tool runs, and optionally create discussion threads in server channels.

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/oauth2-bot-permissions.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=25cb1b7e266ce780c457b35426056caf" alt="Discord Developer Portal — OAuth2 URL Generator bot permissions" width="753" height="598" data-path="images/gateways/discord/oauth2-bot-permissions.png" />
    </Frame>

    *Source: [Stack Overflow — permanent OAuth invite for a Discord bot](https://stackoverflow.com/questions/68218211/how-do-you-create-a-permanent-oauth-invite-for-your-discord-bot). Select the permissions listed above — not Administrator.*
  </Step>

  <Step title="Copy and open the generated URL">
    Copy the URL at the bottom, open it in your browser, choose your server, and authorize the bot.

    Discord documents this flow in [Adding bots to servers](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow).

    <Frame>
      <img src="https://mintcdn.com/alter-95c0cbf0/MYpqj9sX5kEixlPR/images/gateways/discord/bot-auth-page.png?fit=max&auto=format&n=MYpqj9sX5kEixlPR&q=85&s=7476e6f9ad302904d0e37ef04370b9ee" alt="Discord bot authorization page when opening the generated invite URL" width="441" height="492" data-path="images/gateways/discord/bot-auth-page.png" />
    </Frame>

    *Source: [discord.js guide — Adding Your App](https://discordjs.guide/preparations/adding-your-app)*
  </Step>
</Steps>

<Tip>
  You need **Manage Server** (or equivalent) on the target Discord server to complete the invite.
</Tip>

## Paso 5: Opcional: copiar los ID de servidor y de usuario

Úselos si desea restringir con qué servidor o usuarios pueden hablar Alter.

<Steps>
  <Step title="Enable Developer Mode in Discord">
    In the Discord client: **User Settings → Advanced → Developer Mode** → on.

    See [Discord's ID documentation](https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID).
  </Step>

  <Step title="Copy Server ID">
    Right-click your server icon → **Copy Server ID**. Paste this into Alter's **ID del servidor (opcional)** field to ignore messages from other servers.
  </Step>

  <Step title="Copy user IDs">
    Right-click a user → **Copy User ID**. Use comma-separated IDs in **IDs de usuario de Discord permitidos** to allow only those people.
  </Step>
</Steps>

Deje **Server ID** y **IDs de usuario de Discord permitidos** vacíos para permitir que cualquiera pueda enviar mensajes al bot (sujeto a los permisos del canal Discord).

## Conéctate en Alter

<Steps>
  <Step title="Abrir ajustes de Gateways">
    Abre **Configuración** (⌘,) → **Integraciones** → **Gateways**. Consulta la [descripción general de Gateways](/apps-tools/gateways#open-gateways-settings) para otras formas de abrir Configuración.
  </Step>

  <Step title="Añadir un gateway de Discord">
    Haz clic en **Añadir gateway** → **Discord**. Alter crea una nueva entrada de gateway en la lista.
  </Step>

  <Step title="Rellenar campos de Conexión">
    | Campo                                                    | Qué introducir                                                                                                                                                   |
    | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Nombre**                                               | Una etiqueta reconocible (por ejemplo `Discord — Servidor de trabajo`).                                                                                          |
    | **Token del bot**                                        | El token del **Paso 3**. Alter acepta tokens con o sin el prefijo `Bot `.                                                                                        |
    | **ID del servidor (opcional)**                           | Tu ID de guild del **Paso 5**, o déjalo vacío para cualquier servidor en el que esté el bot. Si se define, Alter registra comandos slash solo para ese servidor. |
    | **ID del canal de mensaje de disponibilidad (opcional)** | Un ID de canal donde Alter publica «Hey, I'm up and running.» tras conectarse correctamente.                                                                     |
    | **IDs de usuario de Discord permitidos**                 | IDs de usuario separados por comas, o vacío para acceso abierto. Usa `*` para permitir explícitamente a todos.                                                   |
    | **Requerir mención en servidores**                       | Cuando está activo, el bot solo responde en canales de servidor al `@mention`. Los DM no cambian.                                                                |

    Un enlace **Guía de configuración gateway Discord** al final de la sección Connection abre esta página en el navegador.
  </Step>

  <Step title="Elegir Acción predeterminada y comportamiento de hilos">
    **Ask Anything** es la predeterminada y funciona en Discord de inmediato. Para una action personalizada, establece **Disponibilidad** en **Discord** o **Todos** en **Action Editor → Gateways**.

    En **Comportamiento**, opcionalmente activa **Iniciar discusiones del servidor en hilos** para que cada mensaje nuevo de nivel superior en un servidor tenga su propio hilo de Discord y chat de Alter. Los mensajes ya dentro de un hilo continúan ese chat. Los DM no cambian. Si lo usas, concede **Create Public Threads** y **Send Messages in Threads** al invitar al bot (**Paso 4**).
  </Step>

  <Step title="Activar y guardar">
    Activa **Activado** y haz clic en **Guardar y reiniciar**. Espera un estado como **Conectado como bot …** o **Conectado como @…**.
  </Step>
</Steps>

Si la conexión falla, consulta [Solución de problemas de Gateways](/apps-tools/gateways#troubleshooting).

## Prueba el bot

<Steps>
  <Step title="Confirmar que Alter está en ejecución">
    Los Gateways solo funcionan mientras Alter está abierto en tu Mac.
  </Step>

  <Step title="Enviar /help">
    En un DM o canal de servidor, envía `/help` (o usa el comando slash `/help` de Discord). El bot debe listar comandos y mostrar los botones **New chat**, **Choose action** y **Past chats**.
  </Step>

  <Step title="Enviar un mensaje">
    Envía un mensaje normal (o `@mention` al bot en un servidor si **Requerir mención en servidores** está activo). Alter reacciona con 👀, muestra **Thinking…**, transmite la respuesta y reacciona con ✅ o ❌ al terminar.
  </Step>

  <Step title="Probar /new">
    Ejecuta `/new` para iniciar una conversación nueva con la **Acción predeterminada**, o `/new ask-anything` para una acción concreta.
  </Step>

  <Step title="Probar mensajes de voz">
    Envía un **mensaje de voz** de Discord o adjunta un archivo de audio. Alter lo transcribe con tu procesador de voz seleccionado (**Configuración → Voice**) y envía el texto a la acción activa.
  </Step>
</Steps>

## Páginas relacionadas

* [Gateways overview](/apps-tools/gateways)
* [Set up a Telegram gateway](/apps-tools/gateways-telegram)
* [Alter Actions — Disponibilidad en Gateways](/workflows/alter-actions#gateways)
* [Alter Settings](/how-to/settings-guide)
