Бот телеграмм службы поддержки

Ryan Wright 0c0c02e6d7 Spelling fix 4 сар өмнө
.dockerignore d44209d57e First bytes 4 сар өмнө
.gitignore d44209d57e First bytes 4 сар өмнө
Dockerfile d44209d57e First bytes 4 сар өмнө
README.md 0c0c02e6d7 Spelling fix 4 сар өмнө
bun.lockb d44209d57e First bytes 4 сар өмнө
docker-compose.yml d44209d57e First bytes 4 сар өмнө
index.ts d44209d57e First bytes 4 сар өмнө
package.json d44209d57e First bytes 4 сар өмнө
tsconfig.json d44209d57e First bytes 4 сар өмнө

README.md

Бот службы поддержки

Как работает бот. Есть сам бот, и есть приватная группа. В бот пишет клиент. В группе сидят сотрудники поддержки. Когда клиент пишет в бот сообщение, ему выдается номер и оно передается в группу. Сотрудники могут ответить на обращение, решить проблему и закрыть тикет. Раз в сутки запускается очистка базы от закрытых тикетов. В качестве идентификатора используется порядковый номер строки в базе на момент добавления, поэтому коды тикетов получаются короткими и удобными.

Как запустить

  1. Вам нужен docker compose на сервере. Установите его подходящим для вашей системы способом и следуйте дальнейшей инструкции.
  2. Создайте в папке с приложением пустую папку с именем db и пустой файл с именем .env
  3. Запишите в файл .env следующие строки и не забудьте сохранить изменения

    TELEGRAM_SUPPORT_CHAT_ID=-1234567 # ID приватного чата, где сидят сотрудники
    TELEGRAM_TOKEN=00000000:AaaaaaAaaaaaaaAa-bBBBBbbbbb # Токен бота из BotFather
    APP_NAME=Моё приложение # название вашего приложения
    
  4. Выполните в консоли сервера следующую команду

    docker compose up -d --build
    
  5. Все готово, можете закрывать консоль

Команды

Клиент в чате с ботом может писать только одну команду /start. Все остальные команды предназначены для приватного чата.

В чате сотрудники могут вызывать следующие команды

  • /help - показать подсказку по командам
  • /tickets - вывести список из 10 самых новых открытых тикетов. Если открытых тикетов больше - будет показан знак ...
  • /closed - вывести количество закрытых тикетов. Эти тикеты будут удалены через какое-то время
  • /answer - ответить на тикет. Сообщение будет переслано клиенту
  • /close - закрыть тикет. Он будет помечен для удаления, а клиенту придет благодарность за обращение