> For the complete documentation index, see [llms.txt](https://docs.hexabot.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hexabot.ai/faq/which-channels-are-supported-in-hexabot.md).

# Which channels are supported in Hexabot?

Hexabot supports multiple channels through installable [**extensions**](https://hexabot.ai/extensions). A channel is the bridge between an external platform, such as a messaging platform or a social media platform, and your Hexabot workflows: it receives incoming messages from the platform, converts them into Hexabot events, and sends Hexabot responses back to the same platform.

This means you can build your workflow once in Hexabot and expose it through different channels such as WhatsApp, Facebook Messenger, Telegram, Discord, or Slack.

### Supported channels

The currently available Hexabot channel extensions include:

| Channel              | Extension page                                                                | Package name               | Typical use case                                                           |
| -------------------- | ----------------------------------------------------------------------------- | -------------------------- | -------------------------------------------------------------------------- |
| WhatsApp             | [View extension](https://hexabot.ai/extensions?type=channel\&search=whatsapp) | `hexabot-channel-whatsapp` | Connect a bot to WhatsApp through the Meta WhatsApp Cloud API              |
| Telegram             | [View extension](https://hexabot.ai/extensions?type=channel\&search=telegram) | `hexabot-channel-telegram` | Connect a bot to Telegram users, groups, or automation workflows           |
| Discord              | [View extension](https://hexabot.ai/extensions?type=channel\&search=discord)  | `hexabot-channel-discord`  | Connect a bot to a Discord server or community                             |
| Slack                | [View extension](https://hexabot.ai/extensions?type=channel\&search=slack)    | `hexabot-channel-slack`    | Connect a bot to a Slack workspace, direct messages, or mentioned channels |
| Facebook / Messenger | [View extension](https://hexabot.ai/extensions?type=channel\&search=facebook) | `hexabot-channel-facebook` | Connect a bot to a Facebook Page and talk to users through Messenger       |

You can also browse all available channel extensions from the [Hexabot Extension Library](https://hexabot.ai/extensions) by filtering the list by **Channel**.

### Before you install a channel

Before installing a channel extension, make sure you already have:

1. A working Hexabot project.
2. Access to the external platform you want to connect.
3. A public HTTPS URL for your Hexabot API, especially for webhook-based channels.
4. The required platform credentials, such as access tokens, app secrets, bot tokens, or verification tokens.
5. A workflow in Hexabot that you want to expose through the channel.

For local testing, you can expose your local Hexabot API using a tunneling tool such as ngrok, then use the generated HTTPS URL as your webhook base URL.

### Install a channel extension

Channel extensions are installed as npm packages inside your Hexabot project.

From the root directory of your Hexabot project, run:

```bash
npm install <channel-package-name>
```

For example:

```bash
npm install hexabot-channel-whatsapp
```

After installing the package, restart the Hexabot API so the new channel can be discovered.

If you are using a Docker-based setup, rebuild or restart the API service according to your deployment method.

### Configure the channel in Hexabot

Once the channel package is installed and the API has restarted:

1. Open the Hexabot Admin Panel.
2. Go to **Integrations**.
3. Open **Channels** or **Sources**.
4. Create a new source.
5. Select the channel you installed.
6. Fill in the required configuration fields.
7. Save the source.
8. Copy the generated webhook URL if the external platform requires one.
9. Paste the webhook URL into the external platform’s developer console or bot settings.
10. Test the channel by sending a message from the external platform.

The webhook URL usually follows this pattern:

```
https://<your-domain>/api/webhook/<sourceId>
```

The exact configuration fields depend on the channel. For example, WhatsApp requires Meta WhatsApp Cloud API credentials, Slack requires Slack app credentials, and Telegram requires a bot token.

### Channel-specific setup

#### Facebook / Messenger

Use the Facebook / Messenger channel when you want users to interact with your bot through a Facebook Page.

Install the channel:

```bash
npm install hexabot-channel-facebook
```

Typical requirements include:

* A Facebook account with access to Meta for Developers.
* A Facebook Page connected to your bot.
* A Meta app configured for Messenger.
* A public HTTPS URL for your Hexabot API.
* A Hexabot source using the Facebook channel.

After creating the source in Hexabot, configure the webhook in Meta for Developers and subscribe it to the required Messenger events.

#### WhatsApp

Use the WhatsApp channel when you want users to interact with your bot through WhatsApp Business.

Install the channel:

```bash
npm install hexabot-channel-whatsapp
```

Typical requirements include:

* A Meta Developer account.
* A WhatsApp Business Account.
* A WhatsApp phone number ID.
* A permanent or temporary access token.
* A verify token for webhook validation.
* A public HTTPS URL for your Hexabot API.

After creating the source in Hexabot, configure the webhook in the Meta Developer dashboard and connect it to your WhatsApp Business assets.

#### Telegram

Use the Telegram channel when you want users to interact with your bot through Telegram.

Install the channel:

```bash
npm install hexabot-channel-telegram
```

Typical requirements include:

* A Telegram bot created with BotFather.
* A Telegram bot token.
* A public HTTPS URL for your Hexabot API if the channel uses webhooks.

After creating the source in Hexabot, configure the Telegram bot token and webhook according to the channel documentation.

#### Discord

Use the Discord channel when you want your Hexabot workflow to interact with users in a Discord server.

Install the channel:

```bash
npm install hexabot-channel-discord
```

Typical requirements include:

* A Discord application.
* A Discord bot.
* A bot token.
* The required bot permissions.
* A Discord server where the bot is installed.

After configuring the source in Hexabot, invite the bot to your Discord server and test it from a channel where the bot has permission to read and send messages.

#### Slack

Use the Slack channel when you want your bot to interact with users in a Slack workspace.

Install the channel:

```bash
npm install hexabot-channel-slack
```

Typical requirements include:

* A Slack workspace.
* A Slack app.
* A bot token.
* Event subscriptions.
* Interactivity configuration if your workflow uses interactive components.
* A public HTTPS URL for your Hexabot API.

After creating the source in Hexabot, configure the Slack app event subscription URL using the webhook URL generated by Hexabot. You can then test the bot through direct messages or by mentioning it in a Slack channel.

### Testing your channel

After installing and configuring a channel:

1. Make sure the Hexabot API is running.
2. Make sure the channel source is enabled.
3. Send a test message from the external platform.
4. Check that the message appears in Hexabot.
5. Confirm that the correct workflow is triggered.
6. Verify that the response is sent back to the same platform.

If the bot does not respond, check:

* Whether the API is reachable from the public internet.
* Whether the webhook URL is correct.
* Whether the external platform credentials are valid.
* Whether the channel source is enabled.
* Whether the workflow has a valid entry point.
* Whether the API logs show webhook or authentication errors.

### Can I use multiple channels for the same bot?

Yes. You can expose the same Hexabot workflow through multiple channels by installing and configuring several channel extensions.

For example, the same support workflow can be connected to:

* WhatsApp for customer support.
* Facebook Messenger for social media users.
* Slack for internal teams.
* Discord for communities.
* Telegram for automation or personal assistant use cases.

Depending on your use case, you can either reuse the same workflow across channels or create channel-specific workflows.

### What if my desired channel is not available?

If the channel you need is not available in the Extension Library, you can develop your own custom channel.

Hexabot is designed to be extensible. A custom channel acts as an adapter between an external messaging platform and Hexabot. It receives incoming events from the platform, maps them to Hexabot’s internal event format, and converts Hexabot responses back into the platform’s message format.

To build your own channel, follow the developer guide:

[**Developer Guide → Develop Custom Channels**](/developer-guide/develop-custom-channels.md)

Most custom channels should start as HTTP webhook channels. This is the recommended approach for platforms that send inbound messages through webhooks, such as messaging apps, social platforms, and customer communication tools.

Use a WebSocket channel only when you are building an interactive client that needs a persistent live connection.

### Summary

Hexabot currently supports several popular communication channels through extensions, including Facebook / Messenger, WhatsApp, Telegram, Discord, and Slack.

To use a channel:

1. Install the corresponding npm package.
2. Restart the Hexabot API.
3. Create a channel source in the Admin Panel.
4. Configure the external platform webhook or bot settings.
5. Test the conversation from the external platform.

If your preferred channel is not available, you can build a custom channel and integrate Hexabot with almost any messaging platform that provides an API or webhook system.


---

# 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://docs.hexabot.ai/faq/which-channels-are-supported-in-hexabot.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.
