Поддержите проект сделав пожертвование.

Илья Лящук

Backend, Frontend, Weekend

Новый релиз Laravel-бота для техподдержки: интеграция с ВКонтакте и Docker-окружение с мониторингом

Презентация работы бота

Привет, коллеги.

В этом посте делюсь обновлениями по своему open source-проекту — Laravel-боту для технической поддержки. За месяц проект набрал более 100 клонирований и 40+ звёзд на GitHub. От сообщества начали поступать предложения и баг-репорты — спасибо всем, кто подключился.

На основе фидбека реализовал два ключевых улучшения:

  • интеграция с ВКонтакте как новым каналом сообщений
  • docker-compose сборка с полноценным стеком и логированием через Loki + Grafana

GitHub – https://github.com/prog-time/tg-support-bot

Если понравится — буду рад вашей ⭐!

Интеграция с ВКонтакте

Теперь бот может получать сообщения от сообщества ВКонтакте и пересылать их в Telegram-группу. Это позволяет объединить входящий поток из разных платформ в одном канале.

Поддерживается пересылка:

  • текстовых сообщений
  • файлов
  • изображений
  • голосовых
  • контактов (преобразуются в текстовый формат)

Подключение ВКонтакте

В сообществе ВКонтакте:

  • создайте ключ с доступом к сообщениям, фото и документам
  • настройте Callback API на https://<домен>/api/vk/bot
  • активируйте события: входящие/исходящие сообщения

В .env проекта пропишите:

VK_TOKEN=...
VK_CONFIRM_CODE=...
VK_SECRET_CODE=...

Роутинг и обработка реализованы через Laravel Controller с валидацией входящих запросов по VK_SECRET_CODE.

Презентация работы бота

Docker-сборка

Проект теперь поставляется с готовым docker-compose.yml, включающим:

  • nginx, php-fpm, PostgreSQL
  • pgAdmin — для доступа к БД через браузер
  • Grafana + Loki — для логирования и мониторинга

Логируются:

  • все входящие и исходящие события (включая Telegram и VK)
  • исключения, ошибки Laravel и stack trace

Примеры метрик:

  • количество сообщений по каналам
  • частота ошибок
  • пиковые нагрузки

Grafana может быть сразу подключена к Loki и PostgreSQL для визуализации как логов, так и пользовательских метрик.

Grafana для бота

Что дальше

Реализованные доработки — результат прямой обратной связи от пользователей. Следующий этап — интеграция нового канала трафика (анонс после 80 звёзд на GitHub).

Если используете Laravel в проектах с Telegram/VK-ботами, посмотрите репозиторий на GitHub — возможно, он закроет часть ваших задач по организации единой поддержки через мессенджеры.

Pull requests и обсуждения приветствуются.

Telegram-бот на Laravel для клиентской поддержки через темы в группах

Разработка поддержки через Telegram часто заканчивается тем, что каждый менеджер ведёт переписку с клиентом в личке, а история общения теряется где-то между GIF-ками и ссылками. Это не масштабируется и выглядит как временное решение.

Я столкнулся с этой проблемой сам и решил сделать своего Telegram-бота на Laravel, который решает сразу несколько задач:

  • структурирует коммуникацию,
  • прячет личные аккаунты менеджеров,
  • даёт возможность работать с обращениями в одной Telegram-группе,
  • использует темы (топики) для диалогов с каждым клиентом.

Где посмотреть и задать вопросы

Весь код открыт, поддержка звёздочками приветствуется 😉:

🔗 https://github.com/prog-time/tg-support-bot

Если при установке возникнут вопросы — пишите в Telegram:

📬 https://t.me/prog_time_bot

Как это работает

Пользователь пишет боту. Если это новое обращение — в Telegram-группе создаётся отдельная тема, куда бот отправляет первое сообщение клиента и базовую информацию о нём. Менеджеры отвечают внутри темы, и бот пересылает ответы пользователю от своего имени.

Благодаря этому:

  • у команды появляется общая история переписки;
  • менеджеры не светят свои личные аккаунты;
  • можно подключать нескольких операторов без потери контекста;
  • клиент чувствует, что с ним работают “как в саппорте”, а не в личке.

Особенности реализации

Бот написан на Laravel 12 и использует стандартный стек.

Файлы, фото и сообщения не сохраняются — всё пересылается в Telegram напрямую. Это упрощает соблюдение конфиденциальности и избавляет от лишних забот с хранением персональных данных.

Для кого это решение

Проект подойдёт для небольших команд, фрилансеров, техподдержки онлайн-сервисов, Telegram-first продуктов, онлайн-школ, консультационных проектов и всех, кто получает обращения через Telegram и хочет организовать поддержку быстро и просто.

Установка

  1. Клонируем репозиторий:
git clone https://github.com/prog-time/tg-support-bot.git
  1. Создаём бота через BotFather.

  2. Создаём приватную Telegram-группу с включёнными темами, добавляем туда бота как администратора.

  3. Получаем ID группы (например, с помощью getmyid_bot).

  4. Настраиваем .env:

APP_URL=https://your-domain.com
TELEGRAM_TOKEN=your_bot_token
TELEGRAM_GROUP_ID=your_group_id
TELEGRAM_SECRET_KEY=ваш_уникальный_ключ
  1. Устанавливаем webhook: Переходим в браузере по адресу: https://your-domain.com/api/telegram/set_webhook

Готово. Теперь можно писать боту, и он будет маршрутизировать обращения в соответствующие темы в группе.

Если вам пригодился проект — буду рад фидбеку и идеям по улучшению.