Конфигурация¶
Эта страница перечисляет каждую настройку Helpdesk Pro, сгруппированную по вкладке, на которой она находится. Настройки лежат в user/config/plugins/helpdesk-pro.yaml, и почти все их можно редактировать на странице настроек плагина в Admin Next (кнопка Settings над рабочей областью открывает её). Значения по умолчанию поставляются в собственном helpdesk-pro.yaml плагина.
Секреты (секреты webhook, пароль IMAP, секрет S3, ключ API встраивания) никогда не отправляются браузеру ни одним эндпоинтом Helpdesk Pro. Где настройка принимает секрет, можно написать env:NAME, чтобы прочитать его из переменной окружения.
Некоторые вещи вообще не настройки: проекты, статусы, метки, пользовательские поля, правила, политики SLA и каналы уведомлений настраиваются в рабочей области и хранятся в базе данных.
Карта вкладок¶
| Вкладка | Что управляет |
|---|---|
| Desk | Первый экран рабочей области, виджет панели управления, доски |
| Portal & Access | Маршрут справочного центра, гостевые обращения, защита от спама, ссылки для входа |
| Email & Notifications | Исходящая почта, вид каждого письма, уведомления сотрудникам, входящая почта, IMAP, адреса ответа |
| Attachments | Ограничения загрузки, разрешённые типы, очистка, приватный бакет |
| Search | Синонимы, исправление опечаток, подсказки, семантический поиск |
| Live Updates | Обновления в реальном времени и присутствие |
| Advanced | База данных и фоновые задания |
| Help Center | Строка навигации портала, описания и значки тем |
| Rules | Правила включены или выключены, и встроенное автоматическое закрытие |
| SLA | Часы SLA и время предупреждения |
| Ratings | Оценки клиентов |
| Client Organizations | Дополнительные заблокированные домены электронной почты |
| Channels | Доставка в каналы уведомлений |
Два ключа только для YAML: privacy.ip_hashing и jobs.catch_up_exclude. enabled — переключатель состояния плагина над вкладками.
Общие¶
| Ключ | По умолчанию | Что делает |
|---|---|---|
enabled |
true |
Включает плагин. |
privacy.ip_hashing |
true |
Helpdesk Pro запоминает IP-адрес, с которого человека видели последним, чтобы сотрудники могли замечать злоупотребления. Когда включено, хранится только хеш SHA-256; когда выключено — сам адрес. |
Рабочая область¶
См. Рабочую область сотрудников.
| Ключ | По умолчанию | Что делает |
|---|---|---|
desk.default_view |
my-work |
Экран, на котором открывается рабочая область: my-work или tickets. |
admin2.dashboard |
true |
Виджет Helpdesk на панели управления Admin Next. |
desk.staff_groups |
[] |
Группы Grav, в которых состоит каждая учётная запись сотрудника (Staff Groups, выбираются из групп сайта). Сотрудника добавляют при следующем использовании рабочей области, и группы только добавляются, никогда не удаляются. Несуществующая группа пропускается. Клиенты получают portal.client_groups так же. |
desk.board |
true |
Доски для проектов, у которых включена настройка доски. false скрывает все доски, а маршрут доски отвечает 404. |
У сочетаний клавиш нет настройки сайта: каждый человек выключает или включает их для своего браузера в листе сочетаний (нажмите ? в рабочей области).
Portal & Access¶
См. Справочный центр и портал, Форму запроса и гостей и Ссылки для входа.
| Ключ | По умолчанию | Что делает |
|---|---|---|
portal.route |
/help |
Где находится справочный центр, когда ни одна страница не использует шаблон helpdesk. |
portal.guest_submissions |
true |
Могут ли гости отправлять форму обращения. Только проекты public принимают гостевые обращения. |
portal.client_groups |
[] |
Группы Grav, в которых состоит каждая учётная запись клиента. Клиента добавляют при входе или открытии справочного центра, и группы только добавляются, никогда не удаляются. Несуществующая группа или группа, дающая доступ к админке или рабочей области, пропускается. См. Справочный центр и портал. |
portal.client_store_groups |
[] |
Группы покупателей KahunaCart, в которых состоит покупатель магазина, пока он клиент службы поддержки (Client Store Groups, выбираются из групп покупателей KahunaCart; настройка появляется, только когда KahunaCart установлен и включён). Выдаются на лету и никогда не сохраняются: исчезают, когда человека отвязывают, блокируют или удаляют, а также когда вы убираете группу из списка. Сотрудники их никогда не получают. Группа покупателей также даёт групповые цены, скидки и доступ к страницам. См. Справочный центр и портал. |
portal.captcha |
cap |
none, cap, turnstile или recaptcha: провайдеры капчи плагина Form. |
portal.captcha_signed_in |
false |
Спрашивать капчу и у вошедших клиентов. |
portal.min_submit_seconds |
3 |
Гостевое обращение, отправленное раньше этого времени после открытия формы, получает баллы спама. |
portal.limits.ip_per_hour |
5 |
Гостевых обращений с одного IP-адреса в час. 0 отключает ограничение. |
portal.limits.email_per_hour |
5 |
Гостевых обращений с одного адреса электронной почты в час. |
portal.limits.guest_per_hour |
60 |
Гостевых обращений от всех вместе в час. |
portal.magic_links |
true |
Клиенты входят по присланной ссылке, а письма клиентам открывают обращение уже с выполненным входом. |
portal.magic_link_minutes |
30 |
Сколько работает ссылка для входа, запрошенная человеком. |
portal.email_link_days |
7 |
Сколько работает ссылка внутри письма клиенту. |
Email & Notifications¶
Email¶
См. Исходящую почту.
| Ключ | По умолчанию | Что делает |
|---|---|---|
email.support_address |
пусто | Адрес, на который пишут клиенты. С него отправляется почта, и на него приходят ответы. |
email.from_address |
пусто | Только когда почта должна уходить с другого адреса. Пусто использует адрес поддержки, затем From плагина Email. |
email.site_url |
пусто | Адрес, с которого начинаются ссылки в письмах, например https://example.com. Пусто использует адрес последнего посещения сайта. |
email.from_name_format |
{agent} at {site} |
Имя отправителя в ответах клиентам. |
email.subject_tag |
false |
Добавляет видимый [#123] в темы писем клиентам. |
email.acknowledge_web_tickets |
true |
Отправлять подтверждение для обращений из справочного центра. |
email.acknowledge_email_tickets |
true |
То же для обращений, пришедших по почте. |
email.attach_max_mb |
10 |
Сколько файлов ответа сотрудника письмо клиенту несёт само. 0 оставляет каждый файл ссылкой. |
Внешний вид и брендинг¶
См. Фирменное оформление почты.
| Ключ | По умолчанию | Что делает |
|---|---|---|
email.brand.name |
пусто | Название компании в шапке, подписях, имени отправителя и тегах тем для сотрудников. Пусто использует заголовок сайта. |
email.brand.logo |
пусто | Изображение шапки: путь на сайте или адрес https://. Пусто или none показывает название. |
email.brand.logo_dark |
пусто | Светлая версия логотипа для почтовых приложений в тёмном режиме. |
email.brand.logo_width |
140 |
Ширина отрисовки логотипа, 40–320px. |
email.brand.show_name |
false |
Печатать название рядом с логотипом тоже. |
email.brand.accent_color |
пусто (#1f6feb) |
Ссылки, темы заявок и линия вдоль верха карточки. |
email.brand.button_color |
пусто (#1f6feb) |
Каждая кнопка. |
email.brand.font |
system |
system, helvetica, verdana, trebuchet, georgia или custom. |
email.brand.font_custom |
пусто | Набор шрифтов, когда font равно custom. |
email.brand.footer |
пусто | Необязательная строка Markdown под каждым письмом. |
email.brand.appearance |
auto |
auto (следовать почтовому приложению читателя), light или dark. |
Уведомления¶
См. Уведомления.
| Ключ | По умолчанию | Что делает |
|---|---|---|
notifications.default_level |
aimed |
everything, aimed или nothing: уровень сотрудников, которые не выбрали свой. |
notifications.default_email |
fallback |
fallback, digest или off: режим почты сотрудников, которые не выбрали свой. |
notifications.grace_seconds |
60 |
Сколько срочное уведомление ждёт прочтения в приложении перед отправкой по почте. |
desk.batch_minutes |
10 |
Сколько ждут остальные уведомления, чтобы несколько изменений стали одним письмом. |
notifications.hold_while_active |
true |
Задерживать почту для людей, активных в рабочей области. |
notifications.hold_max_minutes |
60 |
Наибольшее время задержки уведомления. |
notifications.digest_hour |
7 |
Местный час отправки ежедневного дайджеста. |
notifications.keep_read_days |
90 |
Прочитанные уведомления старше этого удаляются. |
Входящая почта, ящик IMAP и адреса ответа¶
См. Входящую почту.
| Ключ | По умолчанию | Что делает |
|---|---|---|
inbound.enabled |
false |
Принимать почту: ответы на вашу почту и новые заявки по почте. |
inbound.receiver |
'' |
generic, cloudflare, imap или провайдер плагина Email (postmark, mailgun, sendgrid, ses, resend, mailersend). |
inbound.route |
/_helpdesk/inbound |
Начало адреса webhook, {site}{route}/{receiver}/{secret}. |
inbound.secret |
'' |
Секрет URL в адресе webhook, 32 или больше случайных символов. |
inbound.signing_secret |
'' |
Секрет HMAC, который проверяют приёмники generic и cloudflare. Пусто использует inbound.secret. |
inbound.default_project |
support |
Слаг проекта для новых заявок, которым не совпал ни один почтовый псевдоним. |
inbound.cc_join |
true |
Люди из To и Cc письма клиента становятся копиями новой заявки. |
inbound.max_bytes |
26214400 |
Наибольшее принимаемое письмо (25 МБ). |
inbound.max_attachments |
20 |
Сколько файлов сохраняется из одного письма. |
inbound.per_sender_per_hour |
20 |
Больше этого числа писем с одного адреса в час отклоняется. |
inbound.new_tickets_per_sender_per_hour |
5 |
Сколько новых заявок один адрес может открыть по почте в час. |
privacy.inbound_raw_days |
90 |
Сколько дней журнал входящей почты хранит исходную копию каждого письма. 0 хранит её. |
inbound.imap.host |
'' |
Сервер IMAP. |
inbound.imap.port |
993 |
993 для ssl, обычно 143 для starttls. |
inbound.imap.encryption |
ssl |
ssl, starttls или none. |
inbound.imap.username |
'' |
Имя пользователя ящика. |
inbound.imap.password |
'' |
Пароль приложения. |
inbound.imap.folder |
INBOX |
Папка, из которой читается новая почта. |
inbound.imap.processed_folder |
'' |
Перемещать сюда импортированную почту. Пусто помечает её прочитанной и оставляет. |
inbound.imap.interval_seconds |
120 |
Как часто читается ящик (не реже 60). |
inbound.address |
'' |
Куда идут ответы на вашу почту с добавленным токеном. Пусто использует почтовый псевдоним проекта, затем email.support_address, затем From. |
inbound.plus_addressing |
true |
Помещать токен ответа в адрес (support+t…@). Выключайте, когда ваша почтовая система отклоняет или удаляет +detail. |
Вложения¶
См. Вложения.
| Ключ | По умолчанию | Что делает |
|---|---|---|
attachments.enabled |
true |
Позволяет клиентам и сотрудникам добавлять файлы. При выключении существующие файлы остаются читаемыми. |
attachments.max_mb |
10 |
Наибольший принимаемый файл в мегабайтах. |
attachments.max_per_message |
10 |
Сколько файлов может нести одно сообщение. |
attachments.extensions |
[png, jpg, jpeg, gif, webp, pdf, txt, log, csv, zip, json, md] |
Расширения, которые можно загружать. Программы и скрипты отклоняются всегда. |
attachments.uploads_per_hour |
60 |
Загрузок на человека (или на гостевой адрес) в час. 0 отключает ограничение. |
attachments.draft_hours |
24 |
Загрузки, не отправленные с сообщением, удаляются через столько часов. |
attachments.grace_days |
7 |
Неиспользуемый сохранённый файл хранится столько дней перед удалением. |
attachments.storage.s3.enabled |
false |
Также хранить копию каждого файла в приватном S3-совместимом бакете. |
attachments.storage.s3.endpoint |
'' |
HTTPS-эндпоинт сервиса бакета без имени бакета. |
attachments.storage.s3.bucket |
'' |
Бакет. |
attachments.storage.s3.region |
auto |
auto для Cloudflare R2; регион бакета в остальных случаях. |
attachments.storage.s3.key |
'' |
Идентификатор ключа доступа. |
attachments.storage.s3.secret |
'' |
Секретный ключ доступа. |
attachments.storage.s3.prefix |
helpdesk |
Папка внутри бакета. |
Поиск¶
См. Поиск. Пустой семантический ключ берёт значение YetiSearch Pro, когда у этого плагина включён семантический поиск, иначе встроенное значение по умолчанию, указанное в скобках.
| Ключ | По умолчанию | Что делает |
|---|---|---|
search.fuzzy |
true |
Повторять поиск, не нашедший ничего, с исправлением опечаток. |
search.synonyms |
true |
Расширять поиск списком синонимов. |
portal.suggestions |
true |
Предлагать статьи, пока люди печатают в поле поиска и форме запроса. |
portal.kb_session_days |
30 |
Сколько cookie hd_kb объединяет поиски посетителя. |
privacy.kb_events_days |
90 |
Поиски, просмотры и ответы справочного центра удаляются через столько дней. |
search.semantic.enabled |
false |
Ранжировать по смыслу, а также по словам. |
search.semantic.provider |
openai_compatible |
Любой OpenAI-совместимый API встраивания. |
search.semantic.base_url |
пусто (https://api.openai.com/v1) |
Базовый URL API. |
search.semantic.api_key |
пусто | Ключ или env:NAME. |
search.semantic.model |
пусто (text-embedding-3-small) |
Модель встраивания. |
search.semantic.dimensions |
пусто (256) |
Длина вектора; 0 — собственная длина модели. |
search.semantic.weight |
пусто (0.5) |
Доля ранжирования, приходящаяся на смысл. |
search.semantic.min_similarity |
пусто (0.25) |
Документы менее похожие на это никогда не появляются только по смыслу. |
search.semantic.min_query_chars |
пусто (3) |
Более короткие запросы только по ключевым словам. |
search.semantic.query_prefix |
пусто | Текст перед запросами. |
search.semantic.document_prefix |
пусто | Текст перед документами. |
search.semantic.query_timeout |
пусто (5) |
Секунды ожидания встраивания запроса. |
search.semantic.timeout |
пусто (20) |
Секунды ожидания фонового процесса для пакета встраиваний документов. |
search.semantic.embed_after_indexing |
true |
Ставить встраивание в очередь при каждом изменении документов. |
search.semantic.batch_limit |
200 |
Документов на задание встраивания. |
search.semantic.notes |
false |
Также встраивать внутренние заметки (отправляет текст заметок в API). |
Обновления в реальном времени¶
См. Обновления в реальном времени.
| Ключ | По умолчанию | Что делает |
|---|---|---|
realtime.enabled |
true |
Отправлять обновления в реальном времени через плагин Sync, когда он установлен. Присутствие работает в любом случае. |
realtime.poll_idle_ms |
4000 |
При опросе — как часто открытая вкладка спрашивает новости (не реже 1000). |
realtime.presence_heartbeat_seconds |
15 |
Как часто открытая заявка отправляет сигнал присутствия (от 5 до 40). |
Advanced¶
См. Установку и Задания и cron.
| Ключ | По умолчанию | Что делает |
|---|---|---|
database.sqlite.path |
user-data://helpdesk-pro/db/helpdesk.sqlite |
Файл SQLite: потоковый путь или абсолютный путь. |
database.auto_migrate |
sqlite |
sqlite (или auto) применяет новые миграции при первом запросе после обновления; manual ждёт bin/plugin helpdesk-pro migrate. |
jobs.inline_drain |
true |
Выполнять собственные задания запроса сразу после его ответа. |
jobs.inline_budget_seconds |
3 |
Сколько один запрос может потратить на свои задания (не более 30). |
jobs.catch_up |
true |
Без cron веб-запросы выполняют несколько готовых заданий не чаще раза в минуту. |
jobs.catch_up_exclude |
[search.embed] |
Типы заданий, которые догоняющая обработка никогда не выполняет. Только YAML. |
jobs.job_timeout_seconds |
120 |
Задание, работающее дольше, завершается ошибкой и повторяется. 0 отключает ограничение. |
jobs.retention_days |
30 |
Завершённые и отменённые задания и строки отправленной почты удаляются через столько дней. |
Help Center¶
| Ключ | По умолчанию | Что делает |
|---|---|---|
portal.nav |
true |
Строка навигации на каждой странице портала и справочной статье. Выключение позволяет теме разместить helpdesk_nav() самостоятельно. |
kb.categories |
{} |
Однострочное описание и значок для каждой темы базы знаний по имени категории или слагу. См. Описания и значки тем. |
Rules¶
| Ключ | По умолчанию | Что делает |
|---|---|---|
rules.enabled |
true |
Выполняет правила, созданные в Automation → Rules. У автоматического закрытия свой переключатель. |
rules.auto_close.enabled |
false |
Напоминать о решённых заявках, чей клиент замолчал, затем закрывать их. |
rules.auto_close.nudge_days |
7 |
Сколько дней клиент решённой заявки молчит до напоминания. |
rules.auto_close.close_days |
3 |
Через сколько дней после напоминания заявка закрывается, если клиент не ответил. |
rules.auto_close.message |
'' |
Текст напоминания. {days} становится close_days. Пусто использует встроенный текст. |
SLA¶
См. SLA.
| Ключ | По умолчанию | Что делает |
|---|---|---|
sla.enabled |
true |
Вести часы SLA по заявкам. |
sla.warning_minutes |
60 |
За сколько до наступления срока отправляется предупреждение. 0 не отправляет предупреждений. |
Оценки¶
См. Оценки клиентов.
| Ключ | По умолчанию | Что делает |
|---|---|---|
csat.enabled |
false |
Спрашивать клиентов «How did we do?», когда их обращение решено. |
csat.projects |
[] |
Слаги проектов, в которых спрашивать. Пусто спрашивает в каждом проекте. |
csat.token_days |
14 |
Сколько работают ссылки на оценку и ответ можно изменить. |
csat.ask_comment_on_not_good |
true |
После «Not good» спрашивать, что можно было сделать лучше. |
csat.notify_not_good |
true |
«Not good» уведомляет сотрудника, которому засчитана оценка. |
Client Organizations¶
См. Организации.
| Ключ | По умолчанию | Что делает |
|---|---|---|
organizations.blocked_domains |
[] |
Ещё домены электронной почты, которые не может указать ни одна организация, сверх публичных провайдеров, уже отклоняемых Helpdesk Pro. |
Channels¶
См. Каналы уведомлений.
| Ключ | По умолчанию | Что делает |
|---|---|---|
channels.enabled |
true |
Отправлять в каналы Slack, Discord, webhook и email вообще. |
channels.timeout_seconds |
5 |
Сколько может занимать один запрос (от 1 до 30). |
channels.max_attempts |
4 |
Попыток на сообщение при таймауте, ограничении частоты или ошибке сервера. |
channels.pause_after_failures |
5 |
Ставить канал на паузу после стольких окончательно неудачных сообщений подряд. 0 никогда не ставит на паузу. |
channels.log_days |
14 |
Сколько хранится журнал доставок каждого канала. |