Skip to content

Nighty3098/TechSupportBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TechSupportBot

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).

Features

  • 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

Quick Start

1. Clone the repository

git clone https://github.com/Nighty3098/TechSupportBot.git
cd TechSupportBot

2. Install dependencies

npm install

3. Configure environment variables

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 token
  • SUPPORT_CHAT_USERNAME β€” username of the support chat/user for development orders
  • NOTIFY_CHAT β€” chat ID (e.g., -1001234567890) where tickets will be sent

4. Run the bot locally

npm run dev

The bot will start in polling mode (for development).

5. Deploy to Vercel

  • 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.

Project Structure

  • src/bot.ts β€” main bot logic
  • src/locales/ β€” language files
  • api/bot.ts β€” webhook endpoint (for Vercel)
  • src/local.ts β€” polling mode launcher for local development

Main Commands and Scenarios

  • /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.

Localization

Supported languages:

  • Russian
  • English
  • Japanese
  • Spanish

Dependencies

Scripts

  • npm run build β€” build TypeScript
  • npm run dev β€” run in development mode (polling)
  • npm run start β€” run (polling)
  • npm run local β€” run (polling)

License

ISC

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •