Тикеты поддержки

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

Как открыть и включить

Модуль включается в списке модулей переключателем 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.1form.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 сотруднику.

Кто считается поддержкой

Доступ даёт любой из двух путей:

  1. Ранг Staff-системы уровня модератора и выше. Отстранённый сотрудник доступ теряет автоматически.
  2. Права ролей в разделе «Права ролей»: tickets.work — очередь, работа с обращениями, добавление участников; tickets.manage — передача, приоритет, переоткрытие; tickets.notes — внутренние заметки. tickets.settings — просмотр и изменение настроек/маршрутизации; это право включает остальные. tickets.close — только закрытие тикета: ни очереди, ни взятия в работу, ни добавления участников оно не открывает.
  3. Роль команды поддержки — даёт 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.