Skip to content

Admin Panel

Веб-панель /admin — альтернативный интерфейс для команды поддержки. Менеджеры работают в браузере вместо Telegram-группы. Построена на Filament 3.

Доступ

Адрес панели: https://<your-domain>/admin

Для входа нужна учётная запись из таблицы users.

Создать нового пользователя через artisan:

bash
docker exec pet php artisan app:create-admin-user

Разделы панели

Диалоги

Маршрут: /admin/conversations

Основной раздел для обработки обращений. Показывает список всех пользователей, написавших боту.

КолонкаОписание
Chat IDИдентификатор пользователя в его платформе
Платформаtelegram, vk или внешний источник
Последнее сообщениеДата и время последнего сообщения

Фильтры: по платформе (telegram / vk). Сортировка по умолчанию: по дате обновления, новые сверху.

Страница диалога

Показывает историю переписки с конкретным пользователем. Входящие и исходящие сообщения отображаются в хронологическом порядке.

В режиме admin_panel доступна форма ответа. Порядок отправки:

  1. Введите текст в поле «Сообщение».
  2. Нажмите кнопку отправки.
  3. Ответ сохраняется в БД и отправляется пользователю через очередь.

TIP

Форма ответа скрыта, если панель открыта в режиме telegram_group.

Чаты

Маршрут: /admin/bot-users

Список всех зарегистрированных пользователей бота с возможностью блокировки.

ДействиеОписание
ЗаблокироватьУстанавливает is_banned = true. Пользователь получит уведомление о блокировке вместо ответа
РазблокироватьСнимает блокировку (is_banned = false)

External Sources

Маршрут: /admin/external-sources

INFO

Раздел доступен только администраторам (role = admin).

Управление внешними источниками, интегрированными через REST API.

Создание источника:

  1. Нажмите «New External Source».
  2. Укажите название и (опционально) «Webhook URL» — адрес, на который будут отправляться ответы.
  3. Сохраните — токен доступа генерируется автоматически.

WARNING

При сохранении существующего источника токен обновляется автоматически. Все интеграции, использующие старый токен, перестанут работать — обновите токен на стороне клиента.

Получить текущий токен источника:

bash
docker exec pet php artisan tinker --execute="echo \App\Models\ExternalSource::find(1)->accessToken->token;"

Пользователи

Маршрут: /admin/users (группа «Настройки»)

INFO

Раздел доступен только администраторам (role = admin).

Управление учётными записями для входа в /admin.

РольЧто доступно
managerДиалоги, Чаты
adminВсё, включая Пользователи и External Sources

Создание пользователя через панель:

  1. Перейдите в «Настройки → Пользователи».
  2. Нажмите «New Пользователь».
  3. Заполните имя, email, пароль (минимум 8 символов) и роль.

Создание через artisan:

bash
docker exec pet php artisan app:create-admin-user

TIP

Команда создаёт пользователя с ролью по умолчанию. Роль можно изменить в панели.

Поведение в разных режимах

Функцияadmin_paneltelegram_group
Просмотр сообщений в /adminДаДа (read-only)
Форма ответа в /adminДаСкрыта
Создание форум-топиков в TelegramНетДа
Новые сообщения сохраняются в БДДаДа

Частые вопросы

Не вижу форму ответа.

Проверьте, что в .env задан MANAGER_INTERFACE=admin_panel и контейнер перезапущен. Убедиться в текущем значении:

bash
docker exec pet php artisan tinker --execute="echo config('app.manager_interface');"

Новые сообщения не появляются.

Страница обновляется каждые 5 секунд. Если сообщения не появляются после 10 и более секунд — проверьте, работает ли очередь:

bash
docker compose ps

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

При блокировке через панель уведомление о блокировке отправляется через очередь. Убедитесь, что worker запущен.

Выпущено под лицензией MIT.