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

# Adapters Overview

> Deploy bots to multiple messaging platforms

## Available Adapters

<CardGroup cols={2}>
  <Card title="Discord" icon="discord" href="/sdk/router/adapters/discord">
    Discord bot integration with slash commands
  </Card>

  <Card title="Telegram" icon="telegram" href="/sdk/router/adapters/telegram">
    Telegram bot with inline keyboards
  </Card>

  <Card title="Slack" icon="slack" href="/sdk/router/adapters/slack">
    Slack app with events API
  </Card>

  <Card title="WhatsApp" icon="whatsapp" href="/sdk/router/adapters/whatsapp">
    WhatsApp Business API integration
  </Card>

  <Card title="Crisp" icon="message" href="/sdk/router/adapters/crisp">
    Crisp live chat widget
  </Card>

  <Card title="Custom" icon="plug" href="/sdk/router/custom-adapters">
    Build your own platform adapter
  </Card>
</CardGroup>

## What are Adapters?

Adapters connect the Router SDK to messaging platforms. Each adapter:

* Receives messages from the platform
* Normalizes message format
* Sends responses back to the platform
* Handles platform-specific features

## Using Adapters

Import and configure adapters:

```javascript theme={null}
import { Router, DiscordAdapter, TelegramAdapter } from '@boostgpt/router';

const router = new Router({
  apiKey: process.env.BOOSTGPT_API_KEY,
  projectId: process.env.BOOSTGPT_PROJECT_ID,
  defaultBotId: process.env.BOOSTGPT_BOT_ID,
  adapters: [
    new DiscordAdapter({
      discordToken: process.env.DISCORD_TOKEN
    }),
    new TelegramAdapter({
      telegramToken: process.env.TELEGRAM_TOKEN
    })
  ]
});

await router.start();
```

## Multi-Platform Deployment

Deploy to multiple platforms with one codebase:

```javascript theme={null}
import {
  Router,
  DiscordAdapter,
  TelegramAdapter,
  SlackAdapter
} from '@boostgpt/router';

const router = new Router({
  apiKey: process.env.BOOSTGPT_API_KEY,
  projectId: process.env.BOOSTGPT_PROJECT_ID,
  defaultBotId: process.env.BOOSTGPT_BOT_ID,
  adapters: [
    new DiscordAdapter({
      discordToken: process.env.DISCORD_TOKEN
    }),
    new TelegramAdapter({
      telegramToken: process.env.TELEGRAM_TOKEN
    }),
    new SlackAdapter({
      slackToken: process.env.SLACK_TOKEN,
      signingSecret: process.env.SLACK_SIGNING_SECRET
    })
  ]
});

router.onMessage(async (message, context) => {
  // Same handler works across all platforms
  if (message.content === '/help') {
    return 'I can help you! Ask me anything.';
  }
  return null;
});

await router.start();
console.log('Bot running on Discord, Telegram, and Slack!');
```

## Platform-Specific Logic

Handle platform differences when needed:

```javascript theme={null}
router.onMessage(async (message, context) => {
  if (message.platform === 'discord') {
    return 'Discord response with <@user> mentions';
  }

  if (message.platform === 'telegram') {
    return 'Telegram response with /commands';
  }

  if (message.platform === 'slack') {
    return 'Slack response with <@U123> format';
  }

  // Default response for all platforms
  return null;
});
```

## Adapter Configuration

Each adapter has specific configuration:

### Discord

```javascript theme={null}
new DiscordAdapter({
  discordToken: 'your-discord-bot-token'
})
```

### Telegram

```javascript theme={null}
new TelegramAdapter({
  telegramToken: 'your-telegram-bot-token'
})
```

### Slack

```javascript theme={null}
new SlackAdapter({
  slackToken: 'xoxb-your-slack-token',
  signingSecret: 'your-signing-secret'
})
```

### WhatsApp

```javascript theme={null}
new WhatsAppAdapter({
  phoneNumberId: 'your-phone-number-id',
  accessToken: 'your-access-token',
  verifyToken: 'your-verify-token'
})
```

### Crisp

```javascript theme={null}
new CrispAdapter({
  identifier: 'your-identifier',
  key: 'your-key'
})
```

## Getting Platform Credentials

* **Discord**: [Discord Developer Portal](https://discord.com/developers/applications)
* **Telegram**: [@BotFather](https://t.me/botfather)
* **Slack**: [Slack API](https://api.slack.com/apps)
* **WhatsApp**: [Meta Business](https://developers.facebook.com/docs/whatsapp)
* **Crisp**: [Crisp App Settings](https://app.crisp.chat)

## Next Steps

Choose your platform to get started:

<CardGroup cols={3}>
  <Card title="Discord" icon="discord" href="/sdk/router/adapters/discord">
    Setup Discord bot
  </Card>

  <Card title="Telegram" icon="telegram" href="/sdk/router/adapters/telegram">
    Setup Telegram bot
  </Card>

  <Card title="Slack" icon="slack" href="/sdk/router/adapters/slack">
    Setup Slack app
  </Card>
</CardGroup>
