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

# Messaging Channels: Discord, Slack, Telegram & More

> Publish to Discord, Slack, Telegram, Twitch, Kick, and Nostr from Volta. Setup instructions and required credentials for each messaging channel.

Volta lets you publish directly to messaging platforms alongside your social media channels. Whether you're pushing an announcement to a Discord server, sending an update to a Slack workspace, or broadcasting to a Telegram channel, you can compose and schedule it all from the same place. Messaging channels follow the same scheduling and workflow as any other channel in Volta.

<Note>
  Most messaging platforms require a bot or application to be created through their developer portal. The setup typically takes 5–10 minutes, and you only need to do it once per platform.
</Note>

## Platforms

<AccordionGroup>
  <Accordion title="Discord">
    **Connection method:** OAuth 2.0 + Bot Token

    **Required credentials:**

    | Variable                | Description    |
    | ----------------------- | -------------- |
    | `DISCORD_CLIENT_ID`     | Application ID |
    | `DISCORD_CLIENT_SECRET` | Client Secret  |
    | `DISCORD_BOT_TOKEN_ID`  | Bot Token      |

    **How to connect:**

    <Steps>
      <Step title="Create a Discord application">
        Go to [discord.com/developers/applications](https://discord.com/developers/applications) and create a new application.
      </Step>

      <Step title="Create a bot">
        Under the **Bot** section, create a bot and copy its token. This is your `DISCORD_BOT_TOKEN_ID`.
      </Step>

      <Step title="Configure OAuth2">
        Under **OAuth2**, add the following redirect URL:

        ```
        https://your-volta-domain.com/integrations/social/discord
        ```

        Set the required scopes: `bot`, `identify`, `guilds`
      </Step>

      <Step title="Set bot permissions">
        Grant the bot these permissions: **Send Messages**, **Embed Links**, **Attach Files**, **Manage Webhooks**.
      </Step>

      <Step title="Invite the bot to your server">
        Use the OAuth2 URL generator to create an invite link and add the bot to your Discord server.
      </Step>

      <Step title="Connect in Volta">
        Enter your Application ID, Client Secret, and Bot Token in the Add Channel popup, then select the server and channel to post to.
      </Step>
    </Steps>

    **Limits and notes:**

    * Max 1,980 characters per message
    * Supports Markdown formatting in messages
    * The bot must be a member of the server before you can connect the channel
  </Accordion>

  <Accordion title="Slack">
    **Connection method:** OAuth 2.0 + Bot Token

    **Required credentials:**

    | Variable               | Description    |
    | ---------------------- | -------------- |
    | `SLACK_ID`             | Client ID      |
    | `SLACK_SECRET`         | Client Secret  |
    | `SLACK_SIGNING_SECRET` | Signing Secret |

    **How to connect:**

    <Steps>
      <Step title="Create a Slack app">
        Go to [api.slack.com/apps](https://api.slack.com/apps) and create a new app **From scratch**.
      </Step>

      <Step title="Add a redirect URL">
        Under **OAuth & Permissions**, add the following redirect URL:

        ```
        https://your-volta-domain.com/integrations/social/slack
        ```
      </Step>

      <Step title="Add Bot Token Scopes">
        Under **OAuth & Permissions → Bot Token Scopes**, add:
        `channels:read`, `chat:write`, `users:read`, `groups:read`, `channels:join`, `chat:write.customize`
      </Step>

      <Step title="Install the app to your workspace">
        Click **Install App to Workspace** to generate the bot token.
      </Step>

      <Step title="Invite the bot to your channel">
        In Slack, invite the bot to any channel you want to post in with `/invite @your-app-name`.
      </Step>

      <Step title="Connect in Volta">
        Enter your Client ID, Client Secret, and Signing Secret in the Add Channel popup, then authorize through Slack.
      </Step>
    </Steps>

    **Limits and notes:**

    * The Slack bot token never expires — you won't need to re-authenticate
    * The bot must be invited to any private channel before it can post there
  </Accordion>

  <Accordion title="Telegram">
    **Connection method:** Bot Token (BotFather)

    **Required credentials:**

    | Variable         | Description              |
    | ---------------- | ------------------------ |
    | `TELEGRAM_TOKEN` | Bot Token from BotFather |

    **How to connect:**

    <Steps>
      <Step title="Create a Telegram bot">
        Open Telegram and start a conversation with [@BotFather](https://t.me/BotFather). Send `/newbot` and follow the prompts to create your bot. Copy the **bot token** you receive.
      </Step>

      <Step title="Add the bot to your channel or group">
        Add the bot to the Telegram channel or group where you want to publish, and promote it to **Administrator**. The bot needs permission to post messages.
      </Step>

      <Step title="Connect in Volta">
        Enter your bot token in the Add Channel popup. You'll then be asked to provide your chat ID or use the `/connect` command in your channel to link it.
      </Step>
    </Steps>

    **Limits and notes:**

    * Max 4,096 characters per message
    * Supports HTML formatting (bold, italic, links, code blocks)
    * Group media posts support up to 10 media items
  </Accordion>

  <Accordion title="Twitch">
    **Connection method:** OAuth 2.0

    **Required credentials:**

    | Variable               | Description   |
    | ---------------------- | ------------- |
    | `TWITCH_CLIENT_ID`     | Client ID     |
    | `TWITCH_CLIENT_SECRET` | Client Secret |

    **How to connect:**

    <Steps>
      <Step title="Register a Twitch application">
        Go to [dev.twitch.tv/console](https://dev.twitch.tv/console) and register a new application. Set the OAuth redirect URL to:

        ```
        https://your-volta-domain.com/integrations/social/twitch
        ```
      </Step>

      <Step title="Connect in Volta">
        Enter your Client ID and Client Secret in the Add Channel popup and authenticate with your Twitch account.
      </Step>
    </Steps>

    **Required scopes:** `user:write:chat`, `user:read:chat`, `moderator:manage:announcements`

    **Limits and notes:**

    * Max 500 characters per message
    * Supports both chat messages and channel announcements (with color options)
  </Accordion>

  <Accordion title="Kick">
    **Connection method:** OAuth 2.0 with PKCE

    **Required credentials:**

    | Variable         | Description   |
    | ---------------- | ------------- |
    | `KICK_CLIENT_ID` | Client ID     |
    | `KICK_SECRET`    | Client Secret |

    **How to connect:**

    <Steps>
      <Step title="Create a Kick OAuth app">
        Go to the [Kick Developer Portal](https://kick.com/) and create an OAuth application. Set the redirect URI to:

        ```
        https://your-volta-domain.com/integrations/social/kick
        ```
      </Step>

      <Step title="Connect in Volta">
        Enter your Client ID and Client Secret in the Add Channel popup and authenticate with Kick.
      </Step>
    </Steps>

    **Required scopes:** `chat:write`, `user:read`, `channel:read`

    **Limits and notes:**

    * Max 500 characters per message
    * Uses PKCE (S256) for the OAuth flow
  </Accordion>

  <Accordion title="Nostr">
    **Connection method:** Direct credentials — no OAuth app setup needed

    Nostr is a decentralized protocol. You connect by entering your private key directly — no app registration required.

    **How to connect:**

    <Steps>
      <Step title="Get your Nostr private key">
        Generate or export your Nostr private key in **HEX format**. You can do this from a Nostr client like [iris.to](https://iris.to) or any compatible wallet.
      </Step>

      <Step title="Add the channel in Volta">
        Go to **Channels → Add Channel → Nostr** and paste your private key (HEX format) into the password field.
      </Step>
    </Steps>

    **Limits and notes:**

    * Max 100,000 characters per post
    * Posts are broadcast to multiple relays simultaneously, including nos.lol, relay.damus.io, relay.snort.social, and others
    * Keep your private key secure — it controls your Nostr identity
  </Accordion>
</AccordionGroup>
