TechSupportBot is a Telegram bot for user support, bug reporting, idea collection, and development order requests. The bot supports multiple languages and can work both in polling mode (locally) and via webhook (e.g., on Vercel).
- Accepts user requests (bug reports, feature suggestions, development orders)
- Supports attachments: text, photos, videos, documents
- Multilingual interface (Russian, English, Japanese, Spanish)
- Notifies a dedicated support chat about new tickets
- Ticket status system (new, in progress, completed, review)
- Users can change the interface language
git clone https://github.com/Nighty3098/TechSupportBot.git
cd TechSupportBot
npm install
Create a .env
file in the project root and specify:
BOT_TOKEN=your_bot_token
SUPPORT_CHAT_USERNAME=support_chat_or_user
NOTIFY_CHAT=chat_id_for_tickets
BOT_TOKEN
β your Telegram bot tokenSUPPORT_CHAT_USERNAME
β username of the support chat/user for development ordersNOTIFY_CHAT
β chat ID (e.g.,-1001234567890
) where tickets will be sent
npm run dev
The bot will start in polling mode (for development).
- Use the function from
api/bot.ts
as the webhook endpoint. - Set environment variables in your Vercel project settings.
- In Telegram, set the webhook to your Vercel endpoint URL.
src/bot.ts
β main bot logicsrc/locales/
β language filesapi/bot.ts
β webhook endpoint (for Vercel)src/local.ts
β polling mode launcher for local development
/start
β greeting and main menu- Menu buttons:
- Bug report
- Suggest an idea
- Order development
- Change language
The user selects a category, sends a message (and optionally attachments). The ticket is sent to the support chat with a status change button. When the status is changed, the user receives a notification.
Supported languages:
- Russian
- English
- Japanese
- Spanish
- telegraf β Telegram Bot API framework
- dotenv β environment variables
- @vercel/node β serverless functions for Vercel
- typescript
npm run build
β build TypeScriptnpm run dev
β run in development mode (polling)npm run start
β run (polling)npm run local
β run (polling)
ISC