Тикеты поддержки
Тикеты — приватные каналы для обращений: участник нажимает кнопку, бот создаёт канал, который видят только он и поддержка. Внутри — назначение ответственного, приоритет, внутренние заметки, оценка качества и сохранённая переписка.
Как открыть и включить
Модуль включается в списке модулей переключателем
tickets, и настраивается в разделе «Тикеты». Выключённый модуль прячет команды и кнопку создания.
Чтобы участники смогли открывать обращения, опубликуйте панель: зайдите в
нужный канал и отправьте r!set_forms. Появится сообщение с кнопкой
«Создать обращение».
Настройки
| Настройка | Что делает |
|---|---|
| Категория для каналов | Куда складывать каналы тикетов. Не выбрана — канал появится в корне сервера |
| Роли поддержки | Кто видит каналы обращений |
| Пинговать роль при открытии | Необязательный пинг при новом тикете |
| Приветствие в тикете | Первое сообщение бота в канале |
| Шаблон имени канала | Доступны {username} и {id}; хотя бы один обязателен |
| Приоритет новых тикетов | Значение по умолчанию для всего сервера; категория может его переопределить |
| Открытых тикетов на человека | Запрещает создание новых тикетов, если у пользователя уже открыто максимальное количество |
| Автозакрытие после простоя | Часы без сообщений; 0 — не закрывать |
| Канал для транскриптов | Куда отправлять копию переписки при закрытии |
| Хранение событий/транскриптов/заметок | Срок в днях; 0 — хранить бессрочно. Очистка касается только полностью закрытых тикетов |
| Оценка доступна | Необязательный срок ответа на оценку CSAT (звёзды от 1 до 5, см. ниже); 0 — без срока |
Раздел «Команды поддержки и маршрутизация» объединяет Discord-роли в именованные команды. Категории можно направить разным командам и отдельно переопределить родительскую Discord-категорию, роль для пинга, приветствие, шаблон имени и приоритет. Кнопка предпросмотра показывает итог сохранённой конфигурации и источник каждого значения до создания реального тикета.
Приоритет источников ролей: команда категории → глобальные роли → роли,
привязанные к рангам Staff-системы → роль Moderator.
Точечные права на тикеты (см. «Права для команд»)
добавляются независимо. Изменения ролей пакетно применяются и к открытым
каналам; права доступа удалённых и больше не нужных ролей на канале снимаются.
Категории и форма вопросов
Категории — это варианты обращения («Оплата», «Жалоба», «Баг»). Если категорий нет, тикет открывается сразу; если есть — участник сначала выбирает нужную.
Каждой категории можно задать до пяти вопросов. Тогда при открытии появится форма, а ответы попадут в первое сообщение тикета — модератору не придётся переспрашивать. Пять — предел Discord для таких форм.
Форма показывается до создания канала: если человек её закроет, пустого тикета не останется.
Удаление категории означает мягкое архивирование: существующие тикеты хранят снимок её имени и команды, поэтому история не меняется. Две активные категории с одинаковым именем (даже в разном регистре) создать нельзя.
Команды
| Команда | Кто может | Что делает |
|---|---|---|
/ticket queue | поддержка | Очередь открытых обращений |
/ticket close | поддержка, автор | Закрыть текущий тикет с причиной |
/ticket add | поддержка, автор | Добавить участника в тикет |
/ticket remove | поддержка | Убрать участника (кроме автора) |
/ticket transfer | поддержка | Передать обращение другому сотруднику |
/ticket unclaim | назначенный | Вернуть тикет в очередь |
/ticket reopen | поддержка | Переоткрыть закрытый тикет по номеру |
/ticket priority | поддержка | low, normal, high, urgent |
/ticket reply | поддержка | Выбрать и отправить безопасный макрос |
/ticket note | поддержка | Внутренняя заметка |
/ticket notes | поддержка | Показать заметки по тикету |
В канале тикета также есть кнопки «Взять в работу» и «Закрыть».
Рабочее место поддержки в панели
Раздел «Тикеты» — полноценная очередь, а не статичный снимок. В ней можно фильтровать обращения по статусу, приоритету, категории, команде, автору, исполнителю и датам, менять сортировку и переходить по страницам. По умолчанию сначала идут срочные и высокие приоритеты, затем самые старые обращения.
Нажмите номер тикета, чтобы открыть карточку справа. В ней доступны ответы формы, участники, хронология событий и история назначений, причина закрытия, оценка и структурированный транскрипт. Ссылка Discord открывает живой канал; если канал удалён вручную, панель показывает предупреждение, но сохранённая история остаётся доступной.
Из панели сотрудник может взять или вернуть тикет в очередь. Право
tickets.manage дополнительно разрешает передачу, смену приоритета и
участников; tickets.notes — чтение и добавление внутренних заметок. Закрытие
всегда требует подтверждения. Изменения прав и закрытие выполняет фоновый
процесс: при временной ошибке Discord операция остаётся видимой и повторяется
автоматически, а не теряется.
Макросы быстрых ответов
Сотрудник с tickets.manage или tickets.settings может создать до 100
макросов: задать текст, видимость для одной команды и включить только
разрешённые действия — смену приоритета/ожидания, назначение команды или
внутреннюю заметку. Произвольного кода и скрытых Discord-действий в макросах
нет.
В карточке активного тикета выберите макрос и пройдите три явных шага:
«Вставить» → «Preview» → «Отправить». Кнопка Preview строит текст на
сервере из актуальных данных и показывает итоговый публичный текст. Отправка
устойчива к сбоям: повтор запроса с тем же идентификатором не создаёт второй
ответ. В Discord та же функция доступна через /ticket reply с
автодополнением вариантов.
Доступны переменные requester.name, requester.mention, ticket.id,
category, agent.name и form.1…form.5. Ответ формы можно подставить
только после явного включения поля в блоке «Приватность полей формы».
По умолчанию все поля запрещены. Рендерер нейтрализует @everyone, @here,
роли и произвольные user mentions; разрешено только контролируемое упоминание
автора через requester.mention. Итоговый ответ ограничен 2000 символами.
Ниже очереди находится аналитика за 7/30/90/365 дней: количество открытых и ожидающих обращений, сколько создано/закрыто/переоткрыто по дням, медиана и 95-й перцентиль времени ответа и решения, соблюдение SLA, распределение оценок CSAT (то самое «от 1 до 5 звёзд») и доля ответов. Таблицы по категориям и командам показывают количество обращений, объём открытых, соблюдение SLA, CSAT и возраст обращений. Вклад сотрудников показан без рейтингового места; автозакрытия не считаются работой, а личная оценка CSAT скрыта до пяти оценок.
В разделе «Состояние операций» видны зависшие переходы, упавшие фоновые
задачи, пропавшие каналы и ошибки сверки прав. С tickets.manage можно
открыть диагностику, вернуть упавшую задачу в очередь кнопкой «Повторить» или
запустить новую сверку прав.
Очередь и открытая карточка обновляются автоматически каждые 12 секунд. В скрытой вкладке опрос полностью приостанавливается и возобновляется при возвращении. Если два сотрудника одновременно меняют тикет, панель не перезаписывает чужую работу: она показывает уведомление и загружает актуальную версию.
Внутренние заметки хранятся отдельно от переписки и не видны автору обращения — ни в канале, ни в транскрипте. Ответ на
/ticket noteприходит только вам.
SLA и состояние ожидания
Очередь показывает, кто должен ответить: ждём поддержку или ждём пользователя. Сообщение автора/участника переводит тикет в первое состояние, а публичное сообщение сотрудника — во второе. Сообщения ботов, system/webhook и внутренние заметки ответом поддержки не считаются.
В настройках создайте SLA-политику: срок первого ответа, срок решения, порог предупреждения и опцию паузы, пока ждут ответа от пользователя. Политику можно назначить приоритету; политика категории имеет приоритет перед ней. В очереди видны обратный отсчёт, предупреждение, превышение срока и пауза. Карточки метрик показывают медиану и 95-й перцентиль реального времени первого ответа/решения, соблюдение сроков и разбивку по категориям, командам и приоритетам.
Автозакрытие по простою применяется только к тикетам, где уже ждут пользователя. Тикет не закроется из-за того, что поддержка не ответила; системное автозакрытие не начисляет KPI сотруднику.
Кто считается поддержкой
Доступ даёт любой из двух путей:
- Ранг Staff-системы уровня модератора и выше. Отстранённый сотрудник доступ теряет автоматически.
- Права ролей в разделе «Права ролей»:
tickets.work— очередь, работа с обращениями, добавление участников;tickets.manage— передача, приоритет, переоткрытие;tickets.notes— внутренние заметки.tickets.settings— просмотр и изменение настроек/маршрутизации; это право включает остальные.tickets.close— только закрытие тикета: ни очереди, ни взятия в работу, ни добавления участников оно не открывает. - Роль команды поддержки — даёт
tickets.workи доступ к её каналам без разрешения Discord Управлять сервером. В панели такая роль видит только тикеты, назначенные её команде; неназначенные и тикеты других команд скрыты. Право, выданное всем командам сразу, Staff-ранг, владелец и разрешение Discord Администратор сохраняют доступ ко всему серверу.
Второй путь удобен, если вы не заводите ранги: достаточно выдать роли
поддержки нужные права. Готовый набор — пресет support.
tickets.manage и tickets.notes подразумевают tickets.work. Отстранение или
активный отпуск временно снимают обычный доступ к тикетам; назначенный тикет
автоматически возвращается в очередь. Владелец сервера и участники с
разрешением Discord Администратор сохраняют полный доступ независимо от
этих ограничений.
Закрытие, оценка и история
Закрыть тикет может автор обращения, поддержка (Staff-ранг или tickets.work)
и держатель отдельного права tickets.close — как командой /ticket close,
так и кнопкой Закрыть в самом тикете.
При закрытии бот собирает переписку, отправляет её в канал транскриптов (если задан) и сохраняет в панели. Автору уходит личное сообщение с просьбой оценить работу от 1 до 5 звёзд.
Архив не ограничен последними 500 сообщениями: бот читает канал целиком и сохраняет текст, автора на момент отправки, ответы/ссылки, безопасное описание карточек и метаданные вложений. Сами файлы остаются в Discord CDN и в базу не копируются. Канал удаляется только после завершения записи архива.
Оценка учитывается в метриках раздела. Закрытие засчитывается в KPI назначенному модератору, а если тикет никто не брал — закрывшему. Самозакрытие автором не засчитывается никому.
Вкладка «История обращений» показывает все тикеты, включая закрытые, с приоритетом и оценкой. В карточке архива видны сохранённые ответы формы, активные/удалённые участники и сообщения с постраничной загрузкой; там же можно скачать Markdown или JSON. Переписка и заметки открываются раздельно: внутренние заметки не входят ни в один экспорт. История хранится в панели и переживает удаление канала в Discord. Для старых тикетов панель автоматически показывает прежний текстовый транскрипт без разметки.
История, хронология событий и сообщения архива загружаются отдельными страницами. Кнопка «Загрузить ещё» позволяет перейти дальше первых 50 тикетов и первых 200 событий — скрытого клиентского лимита у этих списков нет.
Если настроен срок хранения, бот очищает данные пакетами раз в час. Открытые тикеты и тикеты с активной операцией никогда не затрагиваются. После удаления структурированного транскрипта на его месте остаётся карточка-заглушка с датой очистки, исходным числом сообщений и размером; сам тикет, сессия и оценка сохраняются.
Автозакрытие
Если задать порог простоя, бот закроет обращения, в которых давно нет
сообщений. По умолчанию функция выключена (0 часов). Проверка идёт раз в полчаса.
Автоматизации Flow
Триггеры на события тикетов можно использовать в конструкторе команд. Для них разрешены только безопасные действия, специфичные для тикетов: приоритет, ожидание, команда/исполнитель, внутренняя системная заметка и уведомление в настроенный staff-канал. Закрытие, переоткрытие, произвольный код (Custom Code) и обычные Discord-действия (выдать роль, отправить сообщение и т. п.) внутри таких флоу недоступны.
Запуск, версия графа и результат каждого действия сохраняются в базе данных. После перезапуска бот продолжает ту же опубликованную версию графа и не повторяет уже выполненное изменение. Уведомления устойчивы к сбоям и не теряются при временной ошибке; окончательный отказ виден в разделе «Состояние операций».
Частые вопросы
Тикеты создаются не в той категории. Откройте предпросмотр итоговых настроек выбранной категории: рядом с каждым значением показан его источник.
Сотрудник не видит канал обращения. Проверьте роли команды категории и
предпросмотр итоговых настроек. Можно также выдать его роли tickets.work;
после изменения доступ к каналу будет исправлен при ближайшей автоматической
сверке прав.
Участник не может открыть второй тикет. Сработал лимит открытых обращений — увеличьте его в настройках.
Переоткрыл тикет, а канала нет. При закрытии канал удаляется. Переоткрытие надёжно создаёт новый канал — если попытка не удалась, её можно повторить. Проверьте раздел «Состояние операций»: неудачную попытку переоткрытия можно явно повторить, а старый закрытый канал намеренно не используется повторно.
В «Состоянии операций» появилась ошибка прав. Проверьте у бота права Управлять каналами и Управлять ролями именно в нужной категории/канале, а также положение его роли выше назначаемых ролей. После исправления нажмите «Повторить» или «Сверить права» — упавшая задача не считается успешно применённой сама по себе.
Макрос не появляется в списке. Проверьте, что он включён, относится к
команде текущего тикета и у роли сотрудника есть доступ к этой команде. Для
действий смены приоритета/команды требуется tickets.manage, для внутренней
заметки — tickets.notes.